反汇编:OllyDBG/objdump分析

一、OllyDBG

1、

2、可以通过file->open的方法打开需要查看的程序 或者是 dll文件

3.jpg

3、反汇编窗口中:各列的含义;

反汇编中的第一列:是指令在内存中存放的地址;

反汇编中的第二列:是所谓的汇编语言中的操作码;

反汇编中的第三列:是我们研读的目标了,它是我们需要学习型的汇编语言;

反汇编中的第四列:是强大的od反汇编工具为我们提供的注释功能,能看到一些windows api,或是一些可读的信息。也可以自己写注释。

第2列:

第3列:

第4列:

4. 基本操作

F2:在光标处设置断点,再按一次删除光标处的断点。

F4:运行到光标所在位置。

F7:单步步过,遇到CALL等函数会进入。

F8:单步步过,遇到CALL等函数会跳过,不进入。

F9:运行程序。

CTR+F9:执行到返回,会在第一个遇到的RET指令暂停。

ALT+F9:执行到用户代码,可以快速地从系统领空返回到程序领空。

二、原文链接:https://blog.csdn.net/yuri5151/article/details/134580991

1、objdump可以对可执行文件进行反汇编
其常用参数为:

objdump -d <file(s)>: 将代码段反汇编;
objdump -S <file(s)>: 将代码段反汇编的同时,将反汇编代码与源代码交替显示,编译时需要使用-g参数,即需要调试信息;
objdump -C <file(s)>: 将C++符号名逆向解析
objdump -l <file(s)>: 反汇编代码中插入文件名和行号
objdump -j section <file(s)>: 仅反汇编指定的section

2、使用objdump进行反汇编后的输出结果通常包含多个段,每个段对应于可执行文件或共享库的不同部分
一些常见段:

.text:包含程序的机器码指令,即可执行代码.反汇编结果中大部分内容来自于这个段
.data:程序的初始化数据.可能包含全局变量和静态变量
.rodata:只读数据,如常量字符串.这些数据是只读的,不允许被修改
.bss:未初始化的全局和静态变量.只包含变量的大小和位置信息,不包含实际的数据
.plt:过程链接表(Procedure Linkage Table),包含用于进行动态链接的代码
.got:全局偏移标(Global Offset Table),包含全局变量和函数的地址
.eh_frame:异常处理框架信息,用于处理异常可展开栈
.comment:包含于目标架构/编译器版本等相关的注释信息
.fini:包含在程序退出时执行的代码,用于清理和收尾工作
.init:通常包含在程序启动时执行的代码,用于初始化和准备运行时环境。

3、如一个简单的文件读取C代码,编译后为可执行文件hi,进行反编译后用objdump -h hi查看段信息为
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值