请问小红书的反调试要如何才能绕过?这个比抖音的反调试绕起来还难。
我用过MonkeyDev中的四种反调试,都没法拦截到ptrace。小红书是上线调试时报异常:Bad Access xxxxx。
后来在AntiAntiDebug中的方法: attribute ((constructor)) static void entry()首句加断点,开启汇编调试。
一步一步的找到了ptrace调用的地方。修改了0x1f的值为0,继续运行,程序没有奔溃。但是后来准备跳出来时,直接就抛出了异常。下面附上我调试的细节图:
第一步:常规绕ptrace:
第二步:遇到异常:
第三步:跳过第二步,出现:
也用过debugserver方式,给ptrace 下断点,也断不住。
请问大佬们有啥高见没有?
1 个赞
这看着不像是调试报错,你可以尝试直接挂lldb,而不是重打包
我使用lldb连接,尝试拦截ptrace,但是没有成功。执行:c,之后就直接断开了。lldb窗口显示如下:
tcprelay 端口转接窗口显示如下:
debugserver窗口显示如下:
1 个赞
修改了w23的值为0后,svc就不会走。对应的伪代码:那个w23是if条件,svc是if里面的执行代码。不走if的话,svc是不会执行的。另外我也试过了修改变量x0的值,也是一样的结果。
gofmt
(DbgMan)
6
肯定不止一处的,其他线程里也许也有检测.
可以试试lldb插件(xiaoLLDB)的debugme
我的猜想也是不止这一处,开篇的svc #0x80,应该是第一层门户。之后应该有多层调试检查,然后通过异常的形式来中断调试。只是有什么办法能够快速定位到这些地方呢?
gofmt
(DbgMan)
12
是我哪里做得不对吗?怎么报错了。后面也还是自然断开了(捂脸,英语不是太好。)
执行命令:c,之后,还是connect closed.debugserver也自然断开了。
你这个英语水平和解决问题能力,暂时不适合搞这么难的东西,先拿简单app练练手吧
多谢,你这个意见,几乎完美的解决了我的问题。目前已经可以绕过反调试了。
没关系,我又不是从接触逆向的第二天就要成为这个行业的佼佼者。无数先辈都是彷徨过、迷茫过、挣扎过、痛苦过、求知过,如今只是多我一个罢了。有的时候,解决问题的办法,其实就是只差一条新手不知道的指令罢了,至于指令的背后藏着多少玄机,试问又有多少骨灰大佬在新手时就刨根问底了呢。其实我也想从简单做起,但是我原本做iOS开发,领导却硬是拉我来搞这逆向,我也很无奈,时间不允许啊。我很早就绕过了某音的反调试,但是这某红书的反调试,看上去一样,绕过之后就报异常,我也一头雾水啊,只好求教大佬们了。
1 个赞