IDA逆向修改值和字符串

逆向分析主要有2个过程:

  1. 静态分析:查看段、字符串、函数,反汇编(看汇编程序),反编译(看c/c++程序)
  2. 动态调试

1. 工具

工具主要分以下几类:

  • 系统监控工具:监控网络活动,文件访问,注册表访问等
  • IDA Pro,强大的静态分析工具,方便查看汇编和反编译后的源码
  • Ollydbg,动态调试器
  • GDB,如果无法使用Ollydbg,在linux上使用GDB也是个不错的方式,尤其是开发板上
  • Windbg,windows上的调试工具
  • Win32Dasml,反编译工具,它可以将应用程序静态反编译为WIN 32汇编代码,用于静态分析

2. 开始

2.1 写一个简单的c++程序

#include <stdio.h>

int main(int argc, char **argv)
{
    int a = 2;
    if (argc > a)
    {
        printf("haha %d", a);
    }
    else
    {
        printf("heihei 2");
    }
    return 0;
}

编译:

g++ -o ida_test ./main.cpp

2.2 目标

  1. 修改a的值
  2. 修改输出的字符串

2.3 使用IDA打开编译后的文件

2.3.1 框图显示(Graph View)

在这里插入图片描述

2.3.2 文本显示(Text View)

在框图中点击右键,再点击 Text View显示文本。然后在 Options => Generas 设置 Number of opcode bytes 为 16。

在这里插入图片描述

2.3.3 显示文本二进制

在这里插入图片描述
在这里插入图片描述

2.3.4 逆向代码显示

在文本或框图显示界面下按F5,逆向代码
在这里插入图片描述

2.3.5 16进制显示

在这里插入图片描述

2.3.6 字符串窗口(Strings window)

Views => Open subviews => Strings
在这里插入图片描述

2.4 修改数值(text段)

  1. 选中要修改的汇编行,右键选择【Keypatch】=> Patcher
    在这里插入图片描述
    在这里插入图片描述

  2. 修改Assembly

  3. 点击Patch

  4. 保存文件
    Edit = > Patch program => Apply patches to input file
    在这里插入图片描述

2.5 修改字符串(rodata段)

在Strings window找到字符串,然后在Text View中定位到:
在这里插入图片描述
Edit => Patch Program => Change byte :
在这里插入图片描述
修改二进制值。

保存:
Edit => Patch Program => Apply patches to input file :

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值