码迷,mamicode.com
首页 > 移动开发 > 详细

iOS逆向之代码注入

时间:2018-05-13 17:59:02      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:mac   原来   一个   权限   lin   img   选择   rac   关系   

题外话:此教程是一篇严肃的学术探讨类文章,仅仅用于学习研究,也请读者不要用于商业或其他非法途径上,笔者一概不负责哟~~

准备工作

代码注入思路:

dylb会加载Frameworks中所有的动态库,那么在Frameworks中加一个自己的动态库,然后在自己动态库中hook和注入代码

动态库存放的位置:Frameworks

技术分享图片

找到可执行文件WeChat

技术分享图片

用MachOView打开可执行文件WeChat,在Load Commands里可以查看到动态库
技术分享图片
技术分享图片

技术分享图片

步骤:

1、新建Framework

TARGETS添加:
技术分享图片
技术分享图片

2、新建一个WJHook类

技术分享图片

3、想实现刚加载就要运行,代码就要写在load方法里

技术分享图片

4、为工程添加依赖关系

  • 在代码注入targets的Build Phases中添加Copy Files
    技术分享图片
  • 在Copy Files中选择Frameworks
    技术分享图片
  • 添加WJHookFrameWork
    技术分享图片

    5、编译一下,在app包的位置查看

    技术分享图片
    显示包内容,在Frameworks中查看
    技术分享图片
    由上可知,WJHookFrameWork已经加入成功

6、运行,并没有成功,没有执行load里的代码

原因:用MachOView打开可执行文件WeChat,在Load Commands找不到WJHookFrameWork

7、将WJHookFrameWork写入MachO文件

需要用到工具:yololib
因为经常会用到这个工具,建议将它放到 /usr/local/bin
技术分享图片

显示隐藏文件,可以使用
$defaults write com.apple.finder AppleShowAllFiles -bool true
$KillAll Finder
这条命令来显示。同时,将 true 改成 false, 就可恢复隐藏状态。

  • 解压微信越狱包
    技术分享图片
  • 将WeChat.app显示包内容,找到WeChat可执行文件
    增加执行权限:chmod +x WeChat

  • 写入WeChat可执行文件:
    yololib WeChat Frameworks/WJHookFrameWork.framework/WJHookFrameWork

    "Frameworks/WJHookFrameWork.framework/WJHookFrameWork"路径是指WJHookFrameWork可执行文件的路径
    技术分享图片

  • 检查MachO文件的Load Commands里是否有WJHookFrameWork
    技术分享图片
    如图,加入成功。
  • 删除原来的微信-6.6.5(越狱应用).ipa,打包Payload
    zip -ry WeChat.ipa Payload
    将WeChat.ipa放入APP目录,删除其他文件夹
    技术分享图片

    8、运行,成功!

    技术分享图片

iOS逆向之代码注入

标签:mac   原来   一个   权限   lin   img   选择   rac   关系   

原文地址:https://www.cnblogs.com/WinJayQ/p/9032739.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!