IOS逆向--使用IDA的Patch更改汇编或二进制码并写入项目和deb重新打包

来源:互联网 发布:湖南软件测试 编辑:程序博客网 时间:2024/06/01 22:39

本次遇到一个项目,因为是逆向 不能拿到项目的源码,需要改的也是很简单的判断语句,但是也把我这个菜逼弄懵逼了。还好有个如师长的逆向大佬指导,我才去了解这个Patch的功能。接下来我以一个小案例来实现。

小案例需求

加我们有这样一个判断

int i = 4;if(i == 3){    // 做一些事情}

我们想要把 ==号换为 >=号。当然如果你有源码的话改起来很方便,但是可惜我们没有源码。我写了一个实例deb 进行这样的操作。

//上面的省略CMP x1 #4; // 比较 B.NQ Local_1658     //不相等的话跳到对应地址块 不反回

那么我们会要做的就是讲B.NQ改为B.CC让他做大于等于操作,接下来我们介绍如何进行修改。

  • . 第一步:
    我们需要了解Patch是如何进行使用的。Edit —> Patch program 如下所示

这里写图片描述

  • . 我看看他们都有什么

这里写图片描述

  1. change byte … 就是直接修改二进制数值
  2. change word.. 就是直接改地址
  3. Assemble 没用过: 欢迎补充
  4. Apply patches to input file: 使我们patch 成功并修改后要写回原文件中此处是我的dylib

    • 如何进行改数值呢?好 我们现在开始
      这里写图片描述
      点击你定位的程序位置,如图 此处是我修改后的内容。 点击这段地址后可以点击Edit —> Patch program –> Change byte 进行更改当前的内容 如图:
      这里写图片描述
      可以看到我画框的8位数就是我们需要修改的 汇编指令。更改为你想要操作的指令的16进制数值 即可。

当你修改成功后,就可以按之前介绍的内容进行写入文件中。 后面会讲到如何进行重新打包。


Debian 进行重新打包

Debian Linux系统解压和重新打包.deb文件方法,iplaypy.com在网络上搜索问题的答案,找到了类似这样解释:

mkdir -p extract/DEBIANdpkg-deb -x package.deb extract/dpkg-deb -e package.deb extract/DEBIAN [...do something, e.g. edit the control file...]mkdir builddpkg-deb -b extract/ build/

以上这五打命令的解释如下:
第一条命令创建了一个名为“extract”文件夹和一个名为“DEBIAN”的子文件夹;
第二条命令会从你的.deb包提取一些文件到“extract”文件夹;
第三条命令会解压.deb包的内容到“DEBIAN”子文件夹,在那里你就可以修改/补丁你想要的文件;
第四条命令建立一个名为“build”的文件夹;
而第五条命令会将修改后的文件重新构建到一个新的.deb包中,并在 “build” 文件夹中生成。
在你执行第三条命令后,可以通过你的默认文件管理器,用一个图形化的文本编辑器可视化地修改文件。

原创粉丝点击