这是自研的一个app 也仅用来展示Chomper能力。文章仅用来展示Chomper的能力,请勿用于非法用途
Chomper-iOS界的Unidbg最近在学习中发现一个Chomper框架,Chomper 是一个模拟执行iOS可执行文件的框架,类似于安卓端大名鼎鼎的Unidbg。这篇文章使用Chomper模拟执行王得发的签名sig13,初步熟悉该框架。这里只熟悉模拟执行步骤以及一些常见的hook操作、读取操作等。chomper 使用python开发,这里直接使用pip安装 pip install chomper (mac的m系列芯片,可能需要再自己电脑编译unicorn并安装)下载chomper中rootfs 放在项目录下 如下: 基础代码如下:这里不再分析sig13怎么来的,以及如何构造的,如果需要请看兔哥公众号文章。算法加载流程如下:根据frida-trace得王得发的算法核心是在wdfwork库中。砸壳拿到ipa,从framework中拿到该dylib,开始加载,如下代码就加载完了,是不是感觉很简单。如下代码,模拟调用oc的方法调用。安全SDK进行初始化,通过getInstance之后获取该地址,并使用该地址进行调用initSDK。这块还有一个hook操作。根据frida-trace代码可得。atlasSignPlus传递的是wangdeifa createParamContextWithAppKey 之后的地址。这里wangdeifa createParamContextWithApp的方法是+,那便可以直接调用。这里也仅仅是设置好需要加密的一些参数。这里最后其实是出不了具体的结果的,这里还要感谢兔哥的trace代码,从trace代码中发现了如下图。hook 之后直接返回0 使对比结果正确。output其实返回的是一个nsdata类型。根据frida-trace的代码。这里就是bytes为最后需要的这里主要是说 随机数 时间戳等 chomper/os/ios/syscall.pyhandle_sys_gettimeofdaychomper/os/ios/hooks.pyhook_srandom、hook_time、hook_random如下即可。其他复杂的操作,可以看下作者的仓库。除了文章主动调用sig13的案例外,还有如下:目前作者官方还没支持上,不过作者也给了一份代码。后续应该有,也有下断点debug,trace开启代码如下:
回复或点赞可查看完整内容
---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-285666.htm