最新版某音去绕调试详细步骤

可以参考下面这个文章:
https://bbs.pediy.com/thread-261587.htm
但是即使参考了这个还是有人不会,那就把详细的步骤写一下吧。
这里写下关键点就可以了,也就是在文章上面没有写明白的地方。

现在的问题是XCode根本没办法挂上app。
问题是你挂不上app,那说明app里面做了检测,既然做了检测,那就在做检测之前下个断点先断下来,然后看反汇编代码里面的地址,再下你的地址断点,然后对应修改寄存器的值,这样就绕过去了。

MonkeyDev里面有一个sysctl的hook,将这个hook打开,如下:

rebind_symbols((struct rebinding[1]){{"sysctl", my_sysctl, (void*)&orig_sysctl}},1);

然后在my_sysctl中下断点就可以了。

然后你MonkeyDev跑起来。
那这下就断住了,然后你再看模块的ASLR地址:

(lldb) im list -o -f Aweme
[  0] 0x0000000002b30000 /Users/dbgw_ebeez/Library/Developer/Xcode/DerivedData/com.ss.iphone.ugc.Aweme-foalqmpaaknsfadlsmzavrycodfb/Build/Products/Debug-iphoneos/com.ss.iphone.ugc.Aweme.app/Aweme
(lldb) 

你再看下对应的svc 80前面调用的写入寄存器的地址:

__text:000000010438E3FC loc_10438E3FC                           ; CODE XREF: start+48↑j
__text:000000010438E3FC                 MOV             X0, #0x1A
__text:000000010438E400                 MOV             X1, #0x1F
__text:000000010438E404                 MOV             X2, #0
__text:000000010438E408                 MOV             X3, #0
__text:000000010438E40C                 MOV             X16, #0
__text:000000010438E410                 SVC             0x80

那这就简单了:

(lldb) dis -s "0x000000010438E404 + 0x0000000002b30000"
Aweme`___lldb_unnamed_symbol594499$$Aweme:
    0x106ebe404 <+92>:  mov    x2, #0x0
    0x106ebe408 <+96>:  mov    x3, #0x0
    0x106ebe40c <+100>: mov    x16, #0x0
    0x106ebe410 <+104>: svc    #0x80
    0x106ebe414 <+108>: adrp   x8, 18127
    0x106ebe418 <+112>: ldr    x0, [x8, #0x4d0]
    0x106ebe41c <+116>: adrp   x8, 17821
    0x106ebe420 <+120>: ldr    x1, [x8, #0x3b0]
(lldb) br set -a "0x000000010438E404 + 0x0000000002b30000"
Breakpoint 4: where = Aweme`___lldb_unnamed_symbol594499$$Aweme + 92, address = 0x0000000106ebe404
(lldb) 

然后你去掉my_sysctl的断点跑起来,断下来了,然后你再写寄存器的值:

(lldb) register write $x1 0
(lldb) po $x1
<nil>

(lldb) 

这不就可以调试了么?
或者简单点你直接patch下bin文件呗,下次还不用这么麻烦的改来改去了。

改bin文件也是一门艺术,有几个小技巧和注意的点分享下:

  1. 只能改bytes,arm指令不能改汇编代码。。。(如果有人知道咋改还请不吝赐教)
  2. 保存文件的时候可以设置偏移,不然就像我第一次那样傻等好久好久。。。
    具体步骤可参考:
    https://blog.csdn.net/youshaoduo/article/details/83688732
    最后附一个: 最后附一个直接137022版本的改过以后的bin文件,自己放进去直接可以调了。

https://cowtransfer.com/s/2338a42d59fd45

532759

2 Likes

我有个公众号求关注下:makdbb
平时自己记笔记,发一些服务端+逆向的东西,有兴趣的可以关注下。 :smile:

Keystone的IDA插件,请

非常感谢 笔芯

支持一下,看了几篇文章了。

好。下个版本就换个方法~