简单的查看项目是否被调试之 sysctl函数
1.资料准备,破解的ipa 包
2.创建与ipa 同名的空工程,ipa 放到根目录下
3.先运行空工程,然后打开脚本,执行脚本,重新运行即可,调试ipa
查看系统是否被调试
调用系统库,必须导入该头文件
![](https://img.haomeiwen.com/i1205304/fcdaa64fdf961940.png)
根路径,执行脚本
![](https://img.haomeiwen.com/i1205304/c74a88fb11773ae5.png)
查看是否有调试
![](https://img.haomeiwen.com/i1205304/5da805b34c9a1cf9.png)
反调试,1.下符号断点
![](https://img.haomeiwen.com/i1205304/84ed368e2f0409bb.png)
![](https://img.haomeiwen.com/i1205304/08e716abba10d49d.png)
2. 主线程 调用NSThread exit 会退出子线程,不会影响其他进程
![](https://img.haomeiwen.com/i1205304/0cfb08a5cf7a9750.png)
2. 符号断点 定位到了exit 函数,需要查找调用的地方
![](https://img.haomeiwen.com/i1205304/46a26cf377720d54.png)
3. LLDB
bt 命令
![](https://img.haomeiwen.com/i1205304/349bc173d5d1e544.png)
3. image list 查看模块对应的地址 ,物理地址,内存地址,获取偏移地址,???
![](https://img.haomeiwen.com/i1205304/3d4e90c810bb6d99.png)
4. hopper 查找地址,找到调用的函数地址
![](https://img.haomeiwen.com/i1205304/a95f7732db9d12fa.png)
查看进程是否附加
![](https://img.haomeiwen.com/i1205304/5eac0af9addb1b8d.png)
1.重签名 其实更改描述文件
1.1动态调试, 通过ui
1.2静态分析 ,静态代码分析
LLDB debugServer 真机调试 附加到进程
防护思路:通过系统内核,检测当前进程是否是附加状态
1.sysctl 函数
主线程中调用 退出线程,并不会导致进程退出,只是子线程退出
网友评论