iOS程序 防止动态调试和代码注入
2016-12-13 15:28
465 查看
http://ruixiazun.blog.163.com/blog/static/9068791820141173588694/
iPhone真实的运行环境是没有sys/ptrace.h抛出。ptrace 方法没有被抛出, 可以通过dlopen拿到它。
dlopen: 当path 参数为0是,他会自动查找 $LD_LIBRARY_PATH,$DYLD_LIBRARY_PATH, $DYLD_FALLBACK_LIBRARY_PATH 和 当前工作目录中的动态链接库.
#import <dlfcn.h>
#import <sys/types.h>
typedef int (*ptrace_ptr_t)(int _request, pid_t _pid, caddr_t _addr, int _data);
#if !defined(PT_DENY_ATTACH)
#define PT_DENY_ATTACH 31
#endif // !defined(PT_DENY_ATTACH)
void disable_gdb() {
void* handle = dlopen(0, RTLD_GLOBAL | RTLD_NOW);
ptrace_ptr_t ptrace_ptr = dlsym(handle, "ptrace");
ptrace_ptr(PT_DENY_ATTACH, 0, 0, 0);
dlclose(handle);
}
int main(int argc, charchar *argv[])
{
#ifndef DEBUG
disable_gdb();
#endif
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([WQMainPageAppDelegate class]));
}
}
iPhone真实的运行环境是没有sys/ptrace.h抛出。ptrace 方法没有被抛出, 可以通过dlopen拿到它。
dlopen: 当path 参数为0是,他会自动查找 $LD_LIBRARY_PATH,$DYLD_LIBRARY_PATH, $DYLD_FALLBACK_LIBRARY_PATH 和 当前工作目录中的动态链接库.
#import <dlfcn.h>
#import <sys/types.h>
typedef int (*ptrace_ptr_t)(int _request, pid_t _pid, caddr_t _addr, int _data);
#if !defined(PT_DENY_ATTACH)
#define PT_DENY_ATTACH 31
#endif // !defined(PT_DENY_ATTACH)
void disable_gdb() {
void* handle = dlopen(0, RTLD_GLOBAL | RTLD_NOW);
ptrace_ptr_t ptrace_ptr = dlsym(handle, "ptrace");
ptrace_ptr(PT_DENY_ATTACH, 0, 0, 0);
dlclose(handle);
}
int main(int argc, charchar *argv[])
{
#ifndef DEBUG
disable_gdb();
#endif
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([WQMainPageAppDelegate class]));
}
}
相关文章推荐
- iOS程序 防止动态调试
- .Net程序防止被注入代码(整站通用)分享
- xcode反汇编调试iOS模拟器程序(八)反汇编自己的代码来掌握规则
- xcode反汇编调试iOS模拟器程序(八)反汇编自己的代码来掌握规则
- OD提示 "为了执行系统不支持的动作, OllyICE 在这个被调试的程序中注入了一点代码, 但是经过5秒仍未收到响应..." 解决办法
- 怎么防止别人动态在你程序生成代码(怎么防止别人反编译你的app)
- xcode反汇编调试iOS模拟器程序(八)反汇编自己的代码来掌握规则
- Android逆向系列之动态调试5–代码注入(JDB调试)
- OD提示 "为了执行系统不支持的动作, OllyICE 在这个被调试的程序中注入了一点代码, 但是经过5秒仍未收到响应..." 解决办法
- .Net程序防止被注入代码(整站通用)分享
- iOS 利用腾讯 Bugly 程序调试 测试代码bug 卡顿等情况
- 集成Ajax的调试ASP语句的小程序(内嵌可移动+可滚动跟随+可隐藏、显示的输入小窗口,可输入asp语句动态运行可)
- .Net程序如何防止被注入(整站通用)
- 调试程序时总会提示代码过期的处理办法....
- Net程序如何防止被注入(整站通用)
- 防止注入的代码
- .Net程序如何防止被注入(整站通用)
- 经过测试的 可以使用的远程注入代码!!!!!我的VC里面缺少一个stdafx.h需要拷贝一个到程序
- Visual C# 2005 - 如何利用程序代码动态存取设定文件
- 使用javassist动态注入代码