-
-
[原创]某自研短视频app的sig13-ios算法Chomper黑盒调用
-
发表于:
2025-2-20 18:07
9443
-
[原创]某自研短视频app的sig13-ios算法Chomper黑盒调用
这是自研的一个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.py
handle_sys_gettimeofday
chomper/os/ios/hooks.py
hook_srandom
、hook_time
、hook_random
如下即可。其他复杂的操作,可以看下作者的仓库。
除了文章主动调用sig13的案例外,还有如下:
目前作者官方还没支持上,不过作者也给了一份代码。后续应该有,也有下断点debug,
trace开启代码如下:
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2025-4-1 09:01
被mb_aoooaosd编辑
,原因: