书上微信的动态调试的例子,无法附加debugsever动态调试

可以用debugserver启动,但是直接依附会报Segmentation fault: 11的错误。
然后看了那个干掉高德的例子,估计是加了ptrace反动态调试
在ptrace上下了断点,
然后c过去,看了偏移后地址
最后算出最终的偏移前基地址在hopper里面却发现已经超出整个可执行文件的范围了
求解,是不是我操作的姿势不对?

信息能提供的多点么

我首先用debugsever启动wechat完成


然后一直输入n到所有加载命令完成
这个时候输入image list -o -f查看偏移

0x00000000000dc000 /var/mobile/Containers/Bundle/Application/89B96636-E2A0-4539-B45A-CA82B49D5CF5/WeChat.app/WeChat(0x00000001000dc000)
0x00000000000dc000
得到偏移:0x00000000000dc000

然后是在ptrace下断点,并且continue


到了这里,然后我输入p/x $lr 得到当前的偏移后基地址

偏移后基地址:0x000000010333a5e0

然后算出最终偏移前基地址=0x000000010333a5e0 - 0x00000000000dc000 = 0x10325E5E0
然后打开hopper查看ARM64的wechat的可执行文件(从机器上用ifuncbox拷贝过来的)。
起始偏移前基地址


末尾偏移前基地址:0000000102fc7637

0x10325E5E0远大于0x102fc7637
无法找到调用ptrace的位置

上面就是我所有的操作流程,恳请指教一下

我调试微信时,貌似没有碰到反调试啊?新版本加的?谁来确认一下

原来我是我这个微信版本的问题,我这个是修改过的微信。。被加了ptrace反调试
换了原版微信,可以正常调试了

求你这个微信版本怎么来的?

他自己弄的,你自己看下上面他自己发的话 ,,,,请理解下,谢谢

愚笨的我还是没看出来……:sob:

原来我是我这个微信版本的问题,我这个是修改过的微信。。被加了ptrace反调试
换了原版微信,可以正常调试了 (这是原话,哥哥,请看他自己加了ptrace反调试 啦,我,还要怎么解释)

我这个是修改过的微信。。被加了ptrace反调试
我的意思是,谁加的ptrace。。。修改过的微信,并没有说是他修改过的微信呀

不过我就随口问问哈

1 个赞