美文网首页
iOS 附加进程问题处理

iOS 附加进程问题处理

作者: HotPotCat | 来源:发表于2021-05-29 15:31 被阅读0次

一、附加失败排查

在越狱手机上附加支付宝进程时失败了,不论是使用Xcode附加还是手机端的debugserver附加都不行。

  1. Xcode端直接报错Could not attach to pid lost connection
    image.png
    相信信息如下:
Details

Could not attach to pid : “25022”
Domain: IDEDebugSessionErrorDomain
Code: 3
Failure Reason: lost connection
User Info: {
    DVTRadarComponentKey = 855031;
    RawLLDBErrorMessage = "lost connection";
}
--

System Information

macOS Version 10.15.7 (Build 19H2)
Xcode 12.4 (17801) (Build 12D4e)
Timestamp: 2021-05-28T18:02:58+08:00
  1. 手机端使用debugserver尝试
zaizai:/usr/bin root# ./debugserver localhost:12346 -a AlipayWallet
debugserver-@(#)PROGRAM:LLDB  PROJECT:lldb-1200.2.12
 for arm64.
Attaching to process AlipayWallet...
Segmentation fault: 11

直接报错Segmentation fault: 11。这不就是支付宝防止调试了么。找到原因就简单了。
手机端使用debugserver参考:iOS 越狱环境debugserver

二、问题处理

既然支付宝做了防护那么只要绕过检测就能解决问题了。

现在的问题就变成了tweak项目(tweak的使用参考iOS Theos & 动态调试(获取支付宝账户密码))绕过防护。那么要做到的就是:

  1. tweak工程引入fishhook
  2. Hook反调试代码。

2.1 tweak工程引入fishhook

直接将fishhook源文件引入tweak目录:

image.png

Makefile文件配置FILES增加fishhook.c

AlipayHook_FILES = src/Tweak.xm src/CSeries/*.c

这样fishhook代码就引入了。

2.2 Hook支付宝防护代码

为了方便直接将monkey生成的AntiAntiDebug.m文件拷贝到根目录并且配置FILES

AlipayHook_FILES = src/Tweak.xm src/CSeries/*.c src/CSeries/*.m

AntiAntiDebug.m中打开sysctl的防护并增加exitHook

//some app will crash with _dyld_debugger_notification
rebind_symbols((struct rebinding[1]){{"sysctl", my_sysctl, (void*)&orig_sysctl}},1);
rebind_symbols((struct rebinding[1]){{"exit", my_exit, (void*)&origin_exit}},1);

typedef void (*sys_exit_ptr)(int);
static sys_exit_ptr origin_exit = NULL;

void my_exit(int code) {
    NSLog(@"my_exit Hook");
}

然后在Tweak.xm中增加:

#import <UIKit/UIKit.h>

%hook AAAPBootStartPoint

+ (void)load {
//    %log; 干掉sysctl调用逻辑
}

%end

这样整个配置就完成了。

具体的分析在iOS逆向支付宝调试:修改余额(Monkey)

2.3 编译安装插件

2.3.1 Xcode附加进程

Xcode附加进程

2.3.2 手机debug server附加

debug server附加进程

这样整个流程就验证通过了。
⚠️:仅用于学习交流。
demo:alipayhook

相关文章

  • iOS 附加进程问题处理

    一、附加失败排查 在越狱手机上附加支付宝进程时失败了,不论是使用Xcode附加还是手机端的debugserver附...

  • 驱动小程序2

    附加进程 =====================枚举线程 =========================I...

  • 逆向防护

    1. 禁止附加进程Ptrace ptrace是在iOS项目中不能直接使用,需要去命令行项目下拷贝出头文件,才能使...

  • 动态更改APP 图标

    iOS 10.3后开放 plist 附加

  • iOS问题处理

    "xxx was built without full bitcode" 编译错误 因为引入了第三方编译时候提示的...

  • 现代操作系统

    进程间通信 进程间通信的三个问题 信息传递 关键活动不交叉,抢火车票问题 处理顺序问题,进程间相互依赖,生产者消费...

  • iOS逆向1024-防护进阶

    001--反调试sysctl(代码防护) // sysctl:检测app进程是否被附加 (防护进程被调试) 《程...

  • linux 常见命令

    1.查找进程并杀掉该进程 2.awkawk行处理器,在处理大文件时不会出现内存溢出或者处理缓慢的问题。语法:awk...

  • iOS多线程之GCD

    在讲iOS多线程之前,先讲讲线程和进程的概念; 进程 是一个应用程序在处理机上的一次执行过程,每个进程之间是独立的...

  • 即时通讯

    iOS即时通讯,从入门到“放弃”?socket的半包,粘包与分包的问题iOS 处理socket粘包问题iOS___...

网友评论

      本文标题:iOS 附加进程问题处理

      本文链接:https://www.haomeiwen.com/subject/xonssltx.html