美文网首页
iOS逆向之代码注入

iOS逆向之代码注入

作者: 崔希羽 | 来源:发表于2021-01-05 13:44 被阅读0次

准备工作

  • 已去壳ipa,重签运行,可参照iOS逆向之砸壳与重签
  • 下载yololib,往MachO文件的Load_Commonds中注入一个LC_LOAD_DYLIB
  • 下载class-dump,并编译,将编译好的二进制文件放到电脑/usr/bin,若没有权限,放置其他目录请配置~/.base_profile环境,如放置目录/Users/somebody/mybin中,那么profile中添加
export PATH=/Users/somebody/mybin:$PATH

或定义一个别名

alias class-dump=/Users/somebody/mybin

代码注入一:使用Framework

  • 在工程TARGETS点击+添加一个Framework,命名随意,如CPYHook
  • build会自动将生成的framework存放在app文件的Frameworks文件夹中
image.png

因为在xcode中,会自动添加配置,如下图所示

image.png

虽然现在将framework放入到app包内,但是运行时并没有加载它,我们知道app在启动后会根据Load Commonds中的命令执行,所有动态库的加载都在这里,接下来就是通过yololib将我们自己创建的这个framework在Load Commonds中插入一条LC_LOAD_DYLD,使用方式为在RunScript脚本最后添加命令

yololib "$BUILT_PRODUCTS_DIR/D_WeChat.app/WeChat" "Frameworks/CPYHook.framework/CPYHook"

请注意我的app包名与里面的可执行文件不一致,是替换过的,千万不要写错了,执行完之后查看WeChat可执行文件,可以使用MatchOView,或者直接使用终端命令otool。


注入成功截图

好了,下面可以试一试,在Framework中随便添加一个分类+(void)load,运行

image.png

假如想继续玩,可以通过MethodSwizzle对它原来的方法进行hook做一些事情,在debug分析过程中需要先将它的头文件导出来,使用class-dump,终端命令

class-dump -H MachO文件路径 -o 导出的头文件存放目录

代码注入二:使用dylib

这种方式其实原理和framework是一样的,只是需要手动修改一些配置,这里只说几个需要注意的地方,具体可参数后面的截图

1.dylib是mac使用的,创建之后需要将dylib的build Settings里面的Base SDK改为iOS
2.Signing改为iOS
3.手动添加Copy Files选项,这个xcode不会自动生成

image.png
image.png
image.png

常见错误
在将framework/dylib挎贝到app/Frameworks目录过程中经常会发生没有成功的现象,运行完提示image not found,可以多试几次,另外也可以直接在脚本中执行挎贝,更加有效
修改脚本示例:

image.png

PS:再次申明,本人只是出于学习和研究,请不要使用于它途~

相关文章

  • iOS逆向 代码注入+Hook

    iOS逆向 代码注入+HookiOS逆向 代码注入+Hook

  • iOS逆向之 代码注入

    一 framework注入 新建工程001--Demo,根据我上一篇文章的重签名方式之三 脚本重签名的xcodeC...

  • iOS逆向之代码注入

    准备工作 已去壳ipa,重签运行,可参照iOS逆向之砸壳与重签[https://www.jianshu.com/p...

  • iOS逆向-代码注入

    代码注入 一般修改原始的程序,是利用代码注入的方式,注入代码就会选择利用FrameWork或者Dylib等三方库的...

  • iOS逆向之代码注入(framework)

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

  • iOS逆向之代码注入(十)

    代码注入过程 1、新建一个工程;2、将微信Payload文件夹放入新建的工程中的APP文件夹里面; 3、在Buil...

  • iOS逆向之代码注入(dylib)

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

  • iOS逆向安全之代码注入

    在我们通过将代码重新签名(如果对第三方app重签名不太熟悉的,请参考iOS逆向安全之代码重签名)能够让我们在本地通...

  • iOS逆向之代码注入!(下)

    本文主要是以WeChat为例,讲解如何破坏WeChat注册、以及如何获取登录密码 引子 在进行WeChat实践操作...

  • iOS开发逆向之代码注入(上)

    本文主要讲解代码注入的两种方式:FrameWork注入、dylib注入 代码注入 一般修改原始的程序,是利用代码注...

网友评论

      本文标题:iOS逆向之代码注入

      本文链接:https://www.haomeiwen.com/subject/uabioktx.html