逆向工程地基篇-动态分析方法

学习了OllyDbg工具动态调试的基础使用方法,并使用OllyDbg工具对一个简单的应用程序做了修改,主要是在空白位置新建两个字符串,并将函数中原有字符串的地址用新的字符串地址替换掉,从而达到修改程序的目的,难度较简单,主要学习工具的使用和逆向的基础原理。

一、逆向基本概念

(1)逆向工程

逆向工程是指通过分析物体、设备或系统掌握其内部结构、功能、行为等。代码逆向工程简称 RE或RCE,是一种研究应用程序内部组成结构和工作原理的技术,通过阅读反汇编后的代码,使用调试器分析软件行为等工作。逆向工程常常被用于恶意软件分析,软件破解等领域。

(2)逆向分析方法

  1. 静态分析方法

    静态分析是指在不运行代码文件的情况下,对代码分析的一种方法。可以获得文件类型、大小、PE头信息,注册信息、调试信息、数字证书等信息。

  2. 动态分析方法、

    动态分析是指程序的执行过程中对代码动态分析的一种方法。通过调试分析代码流、获得内存状态等。可以分析注册表、网络、软件程序的行为等。

    逆向分析时可以先使用静态分析收集程序的有关信息,为动态分析提供参考信息,采用动静结合的分析方法,可以提高代码的分析效率,增加准确性,缩短分析的时间。

二、动态分析Hello word程序

(1)安装 Visual Studio 2019

image-20210803121601648

image-20210803121922792

image-20210803122031912

开始 下载安装

image-20210803122050913

安装完后启动 VS2019

(2)OllyDbg工具介绍

OllyDbg是功能强大的Win32动态调试工具,简洁直观,体积小,运行速度快支持拓展。

image-20210803133620126

常用快捷键:

  • 打开一个新的可执行程序 (F3)
  • 设置/取消 断点 F2
  • 运行到选定程序暂停 F4
  • 重新运行当前调试的程序 (Ctrl+F2)
  • 当前调试的程序 (Alt+F2)
  • 运行选定的程序进行调试 (F9)
  • 暂时停止被调试程序的执行 (F12)
  • 单步进入被调试程序的 Call 中 (F7)
  • 步过被调试程序的 Call (F8)
  • 跟入被调试程序的 Call 中 (Ctrl+F11)
  • 跟踪时跳过被调试程序的 Call (Ctrl+F12)
  • 执行直到返回 (Ctrl+F9)
  • 显示记录窗口 (Alt+L)
  • 显示模块窗口 (Alt+E)
  • 显示内存窗口 (Alt+M)
  • 显示 CPU 窗口 (Alt+C)
  • 显示补丁窗口 (Ctrl+P)
  • 显示呼叫堆栈 (Alt+K)
  • 显示断点窗口 (Alt+B)
  • 打开调试选项窗口 (Alt+O)

(3)分析Hello word程序

image-20210803130330241

使用VS2019 打开 HelloWord文件夹

image-20210803130409931

调试

image-20210803131404435

生成HelloWord.exe

image-20210803131753679

使用OllyDbg调试 HelloWord.exe

image-20210803233507125

点击运行按钮

image-20210803233556611

程序运行,并弹出窗口,显示文本Hello word!

image-20210803233625260

在OllyDbg窗口,右键搜索 UNICODE

image-20210803233740610

搜索到了窗口标题 www.reversecore.com 和文本内容 Hello World!地址分别是 00401002,00401007

image-20210803233845625

快捷键 Ctrl + G 输入地址跳转

image-20210803235636916

如果在原地址上直接修改数据,有可能覆盖后面地址的数据造成数据损坏。这里我们直接在空地址新建一个字符串,用新字符串的地址替换原有地址,从而防止数据被破坏。

在空地址004070EF上,快捷键CTRL + E 编辑一个字符串

image-20210804000438398

在空地址0040710B上,快捷键CTRL + E 编辑一个字符串

image-20210804000601125

回到地址00401002,00401007,双击 修改push 后的值,改为刚才编辑字符串的地址

image-20210804000808195

image-20210804000843278

然后执行,试试结果

image-20210804000915885

修改成功

image-20210804000941719

这样修改只是临时的,直接保存为一个新的exe文件。

选中修改的地方,右键复制到可执行文件

image-20210804002103803

右键在新窗口,保存文件

image-20210804002856335

重命名biu.exe 保存

image-20210804001343287

双击运行

image-20210804002919380

修改成功。

三、总结

学习OllyDbg工具动态调试的基础使用方法,并使用OllyDbg工具对一个简单的应用程序做了修改,主要是在空白位置新建两个字符串,并将函数中原有字符串的地址用新的字符串地址替换掉,从而达到修改程序的目的,难度较简单,主要学习工具的使用和逆向的基础原理。

  • 发表于 2021-08-19 10:45:04
  • 阅读 ( 6239 )
  • 分类:漏洞分析

0 条评论

请先 登录 后评论
飞神剑
飞神剑

一个起早贪黑的保安

2 篇文章

站长统计