Mac sysctl 反调试 && Mac sysctl 反反调试求解。

第一处不解之处。
是Mac sysctl 反调试:
在Mac在创建一个command line程序。内容如图:


然后Command+R运行。一切如期被退出了。

到目前为止一切似乎都正常。然而当取出编译好的test.app 到桌面运行。然后用lldb调试则诡异的可以调试了。

第二处不解之处:
是 Mac sysctl 反反调试:
【使用rd_route这个在Mac上hook C函数的库】编写了如下代码用于解除sysctl的反调试:


先上一个图证明要hook的程序是加了sysctl反调试的

然后如下图附加生成的动态想去解开sysctl,然而切奔溃了。

请问大家这两个问题该如何解决呢?

1 个赞

第一个问题:问题我自己发现了。程序没有问题。

第二个,不是反调试的地方被当成反调试hook了

如图:lldb附加不上去,设置断点b sysctl停住了,如果真不是sysctl的反调试,那么这是一种新的反调试方法? 【加了b ptrace b syscall bsysctl了】?

原来试过的,就是ptrace和sysctl好像,原来用这个脚本可以过https://github.com/AloneMonkey/AntiAntiDebug

过完后要删掉断点

用了你的脚本试了下也不行。


这就比较尴尬了。我用MachOView看了下也是没有__RESTRICT的。

哦,我那个是放https://github.com/facebook/chisel里面的,而且要主动调用下

抱歉。是我使用方式错误了。你的脚本很强大。感谢。
这边写个使用方式吧。
brew install chisel
vim ~/.lldbinit
command script import /usr/local/opt/chisel/libexec/fblldb.py
cp /path/to/AntiAntiDebug /usr/local/Cellar/chisel/1.5.0/libexec/commands/
lldb
希望可以帮到其他人。

请问第一个问题,你添加了代码反调试,但是可以调试,最后怎么解决的?