实战:干掉高德地图7.2.0版iOS客户端的反动态调试保护

:smile:,感谢分享,我来了。

这个真猛,授人以渔啊

你好,我用相同的方法调试支付宝,地址相减到了7495这个地址,可是这里什么都没有是怎么回事啊,谢谢
00007491 db 0x00 ; ‘.’
00007492 db 0x00 ; ‘.’
00007493 db 0x00 ; ‘.’
00007494 db 0x00 ; ‘.’
00007495 db 0x00 ; ‘.’
00007496 db 0x00 ; ‘.’
00007497 db 0x00 ; ‘.’
00007498 db 0x00 ; ‘.’
00007499 db 0x00 ; ‘.’

我用的是hopper

可能是支付宝做了保护,也可能是你自己的操作问题。建议把你的操作流程描述一下,让大家看看有没有问题

仔细看了下的确是我的问题,减的时候减错了

第二步还是报Segmentation fault: 11

debugserver -x backboard *:1234 /var/mobile/......
把这个backboard改成posix试试

不错啊,有空再介绍几个例子呗!

基本知识
操作系统提供了一种标准的服务来让程序员实现对底层硬件和服务的控制(比如文件系统),叫做系统调用(system calls)。当一个程序需要作系统调用的时候,它将相关参数放进系统调用相关的寄存器,然后调用软中断0x80,这个中断就像一个让程序得以接触到内核模式的窗口,程序将参数和系统调用号交给内核,内核来完成系统调用的执行。

http://blog.csdn.net/edonlii/article/details/8717029

(lldb) b ptrace
Breakpoint 4: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
(lldb) c
Process 62692 resuming
Process 62692 exited with status = 0 (0x00000000) Terminated due to signal 9

我用上面的方法报上面的错误,用的是最新的高德地图(8.0.2)估计有更新新的技术了。这个怎么解决
刚才网站崩了,吓死我了。。。:fearful:

@snakeninny

我还尝试了 b sysctl.
也是报同样的错误

有没有人遇到这个问题啊。help。。。这个为什么一直被禁止啊。:scream:
Yyy:~ root# debugserver -x posix *:1234 /var/containers/Bundle/Application/73094EEE-F303-48B4-A8A8-D924D1B849BC/AlipayWallet.app/AlipayWallet

狗神可以帮我看下吗?

这里为什么不可以直接勾ptrace呢

一般这种旧版本的app要到哪里下

Cydia上好像有插件,可以选择AppStore里的旧版本下载,google一下

也可以自己上传个app,自己■■着玩

狗神好,按照此教程方法检测到sysctl反动态调试,并且位于入口函数 int main(),
int main(int argc, char * argv[]) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//sysctl反动态调试
});
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
不在一个单独的方法里,该如何hook它呢?

直接hook sysctl本身

嗯嗯 试了张总WTFJH的工具集 里面的init_sysctl_hook() 安装后app打开就闪退。。报错如下

May 5 18:31:04 ahahaha JCB[448]: MS:Notice: Loading: /Library/MobileSubstrate/DynamicLibraries/antisys.dylib
May 5 18:31:05 ahahaha ReportCrash[449]: MS:Notice: Injecting: (null) [ReportCrash] (847.21)

May 5 18:31:05 ahahaha ReportCrash[449]: ReportCrash acting against PID 448
难道是反反反动态调试?哈哈