逆向防护

简单的查看项目是否被调试之 sysctl函数

1.资料准备,破解的ipa 包

2.创建与ipa 同名的空工程,ipa 放到根目录下

3.先运行空工程,然后打开脚本,执行脚本,重新运行即可,调试ipa


查看系统是否被调试

调用系统库,必须导入该头文件

逆向防护_第1张图片


根路径,执行脚本

逆向防护_第2张图片



查看是否有调试

逆向防护_第3张图片


反调试,1.下符号断点

逆向防护_第4张图片
逆向防护_第5张图片


2. 主线程 调用NSThread exit  会退出子线程,不会影响其他进程

逆向防护_第6张图片

2. 符号断点 定位到了exit 函数,需要查找调用的地方

逆向防护_第7张图片


3. LLDB

bt 命令

逆向防护_第8张图片


3. image list 查看模块对应的地址 ,物理地址,内存地址,获取偏移地址,???

逆向防护_第9张图片

4. hopper 查找地址,找到调用的函数地址

查看进程是否附加

逆向防护_第10张图片


1.重签名     其实更改描述文件 


1.1动态调试, 通过ui

1.2静态分析 ,静态代码分析


LLDB  debugServer 真机调试 附加到进程

防护思路:通过系统内核,检测当前进程是否是附加状态

1.sysctl 函数

主线程中调用 退出线程,并不会导致进程退出,只是子线程退出

你可能感兴趣的:(逆向防护)