逆向代码注入三方app(九)

如何改变第三方app代码

  1. 动态库(FrameWork,Dylib)(工程和动态库有关联,动态库加载进app中)
  2. 静态注入
  3. 修改MachO文件的Load Commans

比如一些简单的代码注入,hook第三方app上的函数去改成自己的

framework注入

  1. 在xcode TARGETS增加一个framework
  2. 点击项目TARGETS/Build Phases 添加New Copy Files Phases (Destination选择Frameworks, 点击+进刚才新建的framework,然后勾选Copy only when installing(编译,主要是把刚才新建的framework加载到Products/app 的Frameworks,打包进app里面,可以用image list查看)) (不用勾选Copy only when installing)
  3. 在刚才新建的Framework下新加类文件, 在+load方法中加进你的代码
  4. 上面的frame只是加载进.app/FrameWorks下,但是在.app的macho并没有把rongframework加载进macho中
  5. 然后可以通过yololib把rongframework的macho加载到app的macho中  (链接:https://pan.baidu.com/s/1JWQzPvi7ufMb5sKwNW2w2Q 密码:y6wg)(把yololib文件放在usr/local/bin 中就行,可以直接调用)
  6. yololib用法(后面的路径是.app/Frameworks下载rongframework)(也就是加载二进制 规则修改)(注意:Wechat修改的不是编译后的Products的Wechat 是要被替换的ipa下的Wechat执行yololib 然后在打包成ipa,然后在替换)然后看下wechat包含了rongframework,然后运行就执行你的代码了(这里主要看上一遍签名文章有写)(把Payload打包成ipa  zip -ry WeChat.ipa Payload)
  7. 打包成新的ipa放在App下就行了 (这里主要看上一遍签名文章有写 App这些是有脚本在执行)

 

注意:

1. 第6步最容易犯错,在找到App下的WeChatMacho文件执行(找到rongframework的macho文件对.app/相对路径

yololib 就是告诉WeChat要加载Frameworks/RongFramework.framework/RongFramework的macho文件,注意路径一定不要错,否则代码注入失败

2.然后勾选Copy only when installing作用?

就是把framework打包进app中,可以展示包文件在FrameWorks/下有你的framework,(这一步并没有在可执行文件中包含 第6步做就行)


Dylib注入

  1. 在xcode TARGETS增加一个Libary(mac)
  2. 点击项目TARGETS/Build Phases 添加New Copy Files Phases (Destination选择Frameworks, 点击+进刚才新建的Dylib,然后勾选Copy only when installing(编译,主要是把刚才新建的Dylib加载到Products/app 的Dylib,打包进app里面,可以用image list查看))和上面framework那步一样的
  3. 然后编译可以会出错dylib路径不对(dylib路径没有在Debug-iphoneos,在Debug路径下,把Debug下copy到Debug-iphoneos下就行了)(target/Build Setting搜Per-configuration Intermediate Build Files Path), 注意:在target下的Debug路径复制后copy到2个地方一个是target和dylib路径下,但是不同的target下同一变量名路径不一样,所以在dylib强制改下路径,这样就是把Debug下的lib放到Debug-iphoneos下


  4. 出现这个错误是dylib是x86,所以在TARGETS/RongHook/ 改下架构。看最下面

注意:很容易出现错误,检查app/frameworks是否包含了dylib,然后在检查macho是否加载进dylib


问题:

1. 自定义动态库打包到macho中,需要注意点

出现这个错误是dylib是x86,所以在TARGETS/RongHook/ 改下架构如图

但是这里改这么多太麻烦。有简单办法就是

  1. 直接改Base SDk位iOS的,它会自动把上面的一些mac改为iOS
  2. 然后把Signing选iphone 证书就好

在 “逆向代码注入三方app(九)” 上有一个观点

发表回复

电子邮件地址不会被公开。 必填项已用*标注

Protected with IP Blacklist CloudIP Blacklist Cloud