美文网首页
iOS 应用代码注入

iOS 应用代码注入

作者: 裸奔的蜗牛z | 来源:发表于2019-10-21 20:00 被阅读0次
本文需要参考之前的文章

本节所需要的工具

   我们知道一个应用执行代码的部分包括MachO、Framework以及系统库,首先我们不能更改系统库,而且MachO修改的话需要写二进制比较麻烦,我们首先从Framework入手。

一个应用是如何知道我需要加载哪些Framework的呢?

我们借助一个工具去看一下可执行文件到底包含了哪些内容,打开MacOView,将微信的可执行文件拖到MacOView打开。

Load Commands
我们可以看到他有一个叫做Load Commands的列表,这个列表标示了,如果要加载这个可执行文件,需要注意的事项,比如我的代码段有哪些,数据段有多大以及我所依赖的三方库有哪些,dyld会按照这个顺序去将不再内存中framework加载到我们的内存中,我们看到了其中微信所需要的OpenSSL,ProtobufLife等等,所以是不是我们在这个列表里面添加一条我们自己的LC_LOAD_DYLIB命令,让他去加载我们自己的写Framework是不是就能成功注入了呢?

实施我们的想法

  1. 创建一个自己的Framework。
  2. 修改Macho文件中Load Commands。

首先第一步,我们创建一个自己的Framework。


点击+号 选择创建Framework

在自己创建的Framework中创建一个类,并实现里面的+(void)load方法,用以检测我们的Framework是否加载成功。


随便创建一个类
实现load

编译一下工程,目的是让我们自己的Framework放到Frameworks中。


编译后的Frameworks

然后我们准备开始第二步,第二步我们借用一个工具去修改MachO文件,叫做yololib。
解压我们的微信ipa,找到可执行文件,cd到可执行文件的文件夹
然后执行

yololib命令
由于我将yololib放到了usr/local/bin下,所以可以直接调用,大家也可以放到该目录下。
执行结果
我们再分析一下修改完后的MachO文件
加完后
由于我们之前使用的脚本第一步是解压,所以我们先把我们刚刚解压的ipa压缩,cd到之前存放ipa包的位置,然后使用zip -ry WeChat *进行压缩,最终保证是这样子的,删除或将没必要文件移动到其他文件夹。
最终结果

然后连接手机运行项目


断点

确实是进入了我们自己写的Framework中的load方法。

后续我们将讲解如何Hook微信的事件。

相关文章

  • iOS应用代码注入防护

    iOS应用代码注入防护 iOS应用代码注入防护

  • iOS 应用代码注入

    本文需要参考之前的文章 本节所需要的工具 yololib MachOView    我们知道一个应用执行代码的部分...

  • iOS逆向 代码注入+Hook

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

  • iOS应用代码注入防护

    在应用开发过程中,我们不仅仅需要完成正常的业务逻辑,考虑应用性能、代码健壮相关的问题,我们有时还需要考虑到应用安全...

  • iOS应用代码注入防护

    在应用开发过程中,我们不仅仅需要完成正常的业务逻辑,考虑应用性能、代码健壮相关的问题,我们有时还需要考虑到应用安全...

  • IOS代码注入APP&重签实战

    代码地址: github地址 如何预防此类代码注入[IOS端监测APP被代码注入点击查看 ] 本文介绍的是ios的...

  • iOS应用安全之代码混淆

    iOS应用安全之代码混淆iOS应用安全之代码混淆

  • iOS代码保护,数据加密,反调试,反注入,代码混淆

    iOS代码保护 数据加密 反调试,反注入 代码混淆 明天继续写。。。。。。

  • iOS代码注入

    1.空工程安装 目的:让设备接收你安装工程的描述文件,为了重签名应用能够成功. 2.将砸壳后微信的ipa包放入工程...

  • iOS代码注入

    上一片文章通过脚本对iOS应用进行重签名,我们已经知道了如何对应用进行重签名,那么如何才能让别人的app执行我们自...

网友评论

      本文标题:iOS 应用代码注入

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