逆向工具使用介绍

在逆向分析的时候有静态分析和动态分析两种,静态分析即为不运行程序,直接分析程序文件中的机器指令,去分析程序的底层

运行逻辑和算法。而动态分析是将程序运行起来,在程序运行的同时,对程序进行下断点,查看内存等一系列操作去动态的查看

程序运行中的一些数据的变化,去发现在静态调试时所遗漏或难以分析的问题,

在实际应用中通常是动态分析和静态分析两者结合或单独运用,用最快的速度达到我们的目的

静态分析时使用到的是ida,动态分析的时候用的是ollydbg,接下来就对这两种工具的功能及作用进行基本的介绍

一、ida

打开后进入主界面有一行色带,不同颜色代表程序代码的不同的区间

在这里插入图片描述
在这里插入图片描述
库函数
在这里插入图片描述
常规函数
在这里插入图片描述
指令
在这里插入图片描述
数据

在这里插入图片描述
未知
在这里插入图片描述
外部符号

在下面左侧有一栏函数列表,该程序所用的函数名称会列在其中,一般程序入口为main()函数(按ctrl+e键可以通过工具的功能快

速找到main函数,省下手动寻找的时间)
在这里插入图片描述
按ctrl+F键可以在函数列表中进行搜索

在右侧有不同的功能视图

打开ida是默认打开以下窗口
在这里插入图片描述
这些窗口依次为反汇编窗口、十六进制窗口,结构体、枚举、导入(使用的模块、函数)、导出

在第一个反汇编窗口上有两种呈现方式文本形式,与图形形式(可以按下ctrl键加鼠标滚轮调节大小),可按空格进行切换
在这里插入图片描述
在这里插入图片描述
这里开始呈现的是反汇编代码,按下F5可以打开其对应的伪代码界面(伪c代码),方便阅读,将一些汇编语言编写的代码转变为

容易读懂的代码,但有时会将一些代码转变的比较难以读懂

下边提供一些ida中的一些宏定义字符

https://blog.csdn.net/bluestar628/article/details/78428868

第二个为十六进制窗口,可查看该文件不同地址的十六进制数,及其对应的字符,之后的结构体和枚举暂时用不到,先不做介绍

后面的导入界面,中会列出本文件所引用的计算机函数,在逆向工程的初学阶段,只需知道有这个界面就行,学到一定程度,这

个窗口将发挥作用,这个工具中还有许多的工具窗口,为逆向分析提供极大便利
在这里插入图片描述
中文名称如下
在这里插入图片描述
初学阶段经常用到string窗口,即字符串窗口,在一些简单的ctf的reverse(逆向)题中,可以通过查找flag字符串直接找到,亦可以使用alt+T快捷键去搜索字符串main

二、ollydbg

ollydbg是一个动态调试软件,可以在程序运行的同时对程序进行分析,逐步跟随,分析程序运行的过程,先看这个工具的主界面
在这里插入图片描述
这个是CPU界面,也是最常使用的界面

反汇编窗口,有四列,分别为地址列,机器码(可用鼠标左键双击设置断点,或快捷键F2),汇编指令,注释(当工具加上自动注释的插件,会附带一些注释,快捷键;)

信息窗口,会显示与执行指令相关的寄存器的值,api函数,跳转提示

数据窗口,可以以十六进制显示文件在内存中的数据,可以通过快捷键 ctrl+G 跟随某个函数,在这个窗口右键可以更改显示方式
在这里插入图片描述,这里进入软件具体查看

寄存器窗口,可以显示CPU中的寄存器在执行某一条指令时的值

堆栈窗口,显示了堆栈里的内容,即ESP指向的地址的内容,各种API函数和子程序利用它传递参数和变量

下面说一下ollydbg中的一些功能键

ctrl+F2重新运行该程序

F2: 设置断点或双击HEX数据列

F7: 单步步入,遇到CALL指令会进入其中,进入后会停在子程序第一条指令前,加上Ctrl键可以进行自动运行,F8相同,按下F7或F8停止

F8: 单步步过,遇到CALL指令会直接跳过,而不进入调用的地址

F4: 运行到选定位置,直接运行到光标所在位置暂停

F9: 运行,按下这个件如果没有设置相应断点的话,被调式的程序将直接开始运行

Ctrl+F9: 执行到返回,此命令在执行到一个ret指令时暂停,

Alt+F9: 执行到用户代码,可用于从系统领空快速返回到我们调试的程序领空

前面提到了断点,然后在这个工具中存在内存断点,硬件断点,int 3断点(就是按F2设置的断点)

同样像ida一样ollydbg也可以搜索字符串来找到我们所需要找到的内存地址

在反汇编窗口右键在这里插入图片描述
这里可以查看程序中的字符在这里插入图片描述
双击会自动定位到字符出现的地址

通过这个程序可以对调试程序的运行逻辑进行修改,就可以达到做外挂的目的,或简单修改一些程序的数据,

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值