一般修改原始的程序,是利用代码注入的方式,注入代码就会选择利用Framework或者Dylib等三方库的方式注入。
一、准备工作
下面是关于微信重签名的辅助示意图。
介绍一下 yololib 的使用:将 yololib 放到 /usr/local/bin/ 目录下。千万不要路径弄错了,我在实践过程中把路径使用错误,寻找问题花了一个小时。
二、添加Framework。
三、在Framework中添加检测的入口,如果其中的代码执行表示Framework注入成功,反之表示没有。
四、添加创建的Framework添加到工程的执行文件MachO当中去。这是最复杂的一步,通过分析微信的WeChat.app中的Frameworks可以看到,他的第三方库都会在Frameworks中。
通过MachOView工具查看,可以发现这些都被DYLIB加载了,所以可以进行执行。
所以,我们的目标就是使得自建的Framework,能够被DYLIB加载就行了。
按照第二步中的操作,我们通过MachOView发现,DYLIB是不能够加载JGHook.framework的。
关键步骤
因为脚本中运行的步骤是将APP中的 WeChat.ipa copy 到 Temp 目录中,然后使用Temp中的IPA进行重签名。所以我们为了达到目的需要直接修改APP中的 WeChat.ipa。
根据下图中路径,找到 WeChat.ipa 显示包内容,进到 Iterm。
执行命令:$ yololib WeChat
Frameworks/JGHook.framework/JGHook
当然命令中的路径需要根据工程目录中的实际情况来。
这就表示我们已经利用完 yololib 使得 JGHook.framework 能够被 DYLIB 进行加载了,同样可以通过 MachOView 进行查看。
接下来把 Payload 文件夹移动到 APP 中,执行 $zip -ry WeChat.ipa Payload
打包完成后,删除掉 Payload 文件夹,此时 APP 中又存放的一个 .ipa 文件了。
完成。现在你可以在这个方法中干你想干的事儿!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!