文档章节

反汇编学习笔记

大明沈拙言
 大明沈拙言
发布于 2014/08/12 22:10
字数 584
阅读 76
收藏 0
disassembly

由于项目的需要,笔者最近开始学习C++反汇编技术,使用的教材是IDA Pro代码破解揭秘,工具是IDA Pro。

今天主要看了一下反汇编的简介,主要讲了线性扫描算法和递归下降算法这两种反汇编工具主要使用的方法。其中,线性扫描算法的主要算法步骤有五步:

1.位置指针指向代码段开始处;

2.从指针所指位置开始尝试匹配指令,并得到指令长度n;

3.若2成功,则反汇编从指针所指位置向后n个长度的数据,若2失败则退出;

4.位置指针赋值为+n,j即上条指令的结尾;

5.判断位置指针是否超过代码段结尾处,若超出则结束;否则转入2;

线性扫描算法中最重要的是确定位置指针的开始位置,否则会分不清指令和数据。在Windows平台下,可使用PE文件中的可选头标准域的DataBaseofCode结合DataDirectary中相关信息计算开始位置;

SizeofCode得到代码段的长度n,从而确定结尾位置。

而递归下降算伐则更看重控制流的概念,控制流根据一条指令是否被另一条指令引用来决定是否对其进行反汇编。它把指令分为顺序流、条件分支、无条件分支、函数调用、返回五大类从而对其进行反汇编。

但是递归下降算法也有一个缺陷便是可能无法覆盖全部代码从而得不到完整的汇编代码,在分支语句的情况下可能有的分支语句永远不会执行。在这个角度来说,递归下降算法显然做不到完整正确的反汇编程序的每一段代码。

好了,就说这么多。每周写一篇工作日志,回顾一下上一周的工作也是对自己所学知识的一个复习。加油!

© 著作权归作者所有

大明沈拙言
粉丝 0
博文 1
码字总数 584
作品 0
德国
程序员
私信 提问
[网络安全自学篇] 六.OllyDbg动态分析工具基础用法及Crakeme逆向破解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/Eastmount/article/details/99088681 这是作者的系列网络安全自学教程...

Eastmount
08/13
0
0
《深入理解计算机系统》3.38题解——缓冲区溢出攻击实例

本博客(http://blog.csdn.net/livelylittlefish)贴出作者(三二一@小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正! 《深入理解计算机系统》3.38题解——缓冲区溢出攻击实例 1. 问...

晨曦之光
2012/03/09
535
0
IDA Pro 逆向速参(链接)

IDA Pro 逆向速参(链接) 整理:PeterDocter 【 IDA】使用IDA load file功能,导入JNI.h解析【JNI 函数】 - CSDN博客 IDA Pro 导入jni.h头文件定义 - CSDN博客 [讨论]IDA中F5功能反编译安卓...

2018/01/14
0
0
探讨“临时对象”(temporary object)

MSDN中对VS2012版本的临时对象的说明如下: 在某些情况下,编译器有必要产生临时对象。 当初始化一个常量引用(const reference)时,如果给定的初始化对象类型与目标引用类型不同(但是两者...

zssure_thu
2012/07/01
235
0
发现汇编语言也很有意思啊

用了一个月时间把王爽的《汇编语言》第二版看完了。 不管用来写程序的感觉怎么样,我觉得“学习”汇编也挺有意思的。 做练习题,写完程序编译运行,然后用debug反汇编,发现反汇编的结果和自...

四彩
2013/03/19
1K
12

没有更多内容

加载失败,请刷新页面

加载更多

代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
今天
5
0
学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
今天
8
0
VMware vSphere的两种RDM磁盘

在VMware vSphere vCenter中创建虚拟机时,可以添加一种叫RDM的磁盘。 RDM - Raw Device Mapping,原始设备映射,那么,RDM磁盘是不是就可以称作为“原始设备映射磁盘”呢?这也是一种可以热...

大别阿郎
今天
12
0
【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
16
0
Linux 内核的五大创新

在科技行业,创新这个词几乎和革命一样到处泛滥,所以很难将那些夸张的东西与真正令人振奋的东西区分开来。Linux内核被称为创新,但它又被称为现代计算中最大的奇迹,一个微观世界中的庞然大...

阮鹏
昨天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部