小红书反调试保护绕不过

请问小红书的反调试要如何才能绕过?这个比抖音的反调试绕起来还难。

我用过MonkeyDev中的四种反调试,都没法拦截到ptrace。小红书是上线调试时报异常:Bad Access xxxxx。
后来在AntiAntiDebug中的方法: attribute ((constructor)) static void entry()首句加断点,开启汇编调试。
一步一步的找到了ptrace调用的地方。修改了0x1f的值为0,继续运行,程序没有奔溃。但是后来准备跳出来时,直接就抛出了异常。下面附上我调试的细节图:
第一步:常规绕ptrace:


第二步:遇到异常:

第三步:跳过第二步,出现:

也用过debugserver方式,给ptrace 下断点,也断不住。

请问大佬们有啥高见没有?

这看着不像是调试报错,你可以尝试直接挂lldb,而不是重打包

我使用lldb连接,尝试拦截ptrace,但是没有成功。执行:c,之后就直接断开了。lldb窗口显示如下:

tcprelay 端口转接窗口显示如下:

debugserver窗口显示如下:

Xnip2021-03-22_15-16-59

修改了w23的值为0后,svc就不会走。对应的伪代码:那个w23是if条件,svc是if里面的执行代码。不走if的话,svc是不会执行的。另外我也试过了修改变量x0的值,也是一样的结果。

肯定不止一处的,其他线程里也许也有检测.
可以试试lldb插件(xiaoLLDB)的debugme

我的猜想也是不止这一处,开篇的svc #0x80,应该是第一层门户。之后应该有多层调试检查,然后通过异常的形式来中断调试。只是有什么办法能够快速定位到这些地方呢?

你说的这个插件,百度搜索不到?

这年头还有人用百度搜索学术技术?

2 Likes

谷歌打不开 :sweat_smile:

这年头还有人不会打开谷歌?

2 Likes

4ch12dy/xia0LLDB: LLDB python scripts for iOS arm64 reversing by xia0 (github.com)

Pure Gold

是我哪里做得不对吗?怎么报错了。后面也还是自然断开了(捂脸,英语不是太好。)

执行命令:c,之后,还是connect closed.debugserver也自然断开了。

提示:
XNUSpy

看上去是debugme失败了,先执行 croc

你这个英语水平和解决问题能力,暂时不适合搞这么难的东西,先拿简单app练练手吧

多谢,你这个意见,几乎完美的解决了我的问题。目前已经可以绕过反调试了。

没关系,我又不是从接触逆向的第二天就要成为这个行业的佼佼者。无数先辈都是彷徨过、迷茫过、挣扎过、痛苦过、求知过,如今只是多我一个罢了。有的时候,解决问题的办法,其实就是只差一条新手不知道的指令罢了,至于指令的背后藏着多少玄机,试问又有多少骨灰大佬在新手时就刨根问底了呢。其实我也想从简单做起,但是我原本做iOS开发,领导却硬是拉我来搞这逆向,我也很无奈,时间不允许啊。我很早就绕过了某音的反调试,但是这某红书的反调试,看上去一样,绕过之后就报异常,我也一头雾水啊,只好求教大佬们了。

1 Like