网络安全攻防:软件逆向之反汇编
****
1. 逆向工程
逆向工程(RE,ReverseEngineering)是一种技术过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产品的处理流程、组织结构、功能性能规格等设计要素,以制作出功能相近,但又不完全一样的产品。逆向工程源于商业及军事领域中的硬件分析。其主要目的是,在不能轻易获得必要的生产信息下,直接从成品的分析,推导出产品的设计原理。
2. 基本概念
机器码(Machine Code): 电脑CPU可直接解读的数据,也被称为原生码(Native Code),与运行平台有关。
汇编语言(Assembly Language):用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址,方便程序员编写代码。汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。主流的有ARM汇编和x86汇编。
CPU寄存器:用来暂时存储指令、数据和地址,包括通用寄存器、专用寄存器和控制寄存器。逆向分析时需要注意特殊寄存器的变化。
WinAPI: Windows 操作系统中可用的内核应用程序编程接口,在 Windows 平台研究学习逆向工程需要了解一些WinAPI编程。
3. 反汇编
反汇编是把目标代码转化为汇编代码、将低级代码转化为高级代码的过程。
以最著名的HelloWorld为例,先在Visual Studio中新建一个HelloWorld项目如下所示。
在生成→配置管理器→活动解决方案配置选择Release。选择Release模式生成可执行文件,程序代码会更简洁,方便调试,如图1所示。
图1 Release模式
此时生成的是HelloWorld.exe的可执行文件,已经不能直接看到程序的源码。通过该可执行文件还原出汇编代码的过程就是反汇编。我们用OllyDbg加载该程序可以轻松地看到反汇编代码,如图2所示。
图2 反汇编代码
4. 常见的工具
OllyDbg是一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring3级调试器,非常容易上手,已代替SoftICE成为当今最为流行的调试解密工具。同时还支持插件扩展功能,是目前最强大的调试工具。运行界面如图3所示。
图3 OllyDbg运行界面
IDA Pro 32/64:IDA Pro简称IDA(InteractiveDisassembler),是一个世界顶级的交互式反汇编工具,有两种可用版本。标准版(Standard)支持20多种处理器,高级版(Advanced)支持50多种处理器,运行界面如图4所示。
图4 IDA Pro运行界面
SoftIce:SoftIce是CompuwareNuMega公司的产品,是Windows2000及之前的内核级调试工具,兼容性和稳定性极好,可在源代码级调试各种应用程序和设备驱动程序,也可使用TCP/IP连接进行远程调试。但目前微软的Windbg方便性、可靠性及可用性远远超出SoftICE,且免费使用。所以SoftIce并没有推后续版本。
WinDbg:WinDbg 是在 Windows 平台下,强大的用户态和内核态调试工具。相比较于VisualStudio,它是一个轻量级的调试工具,所谓轻量级指的是它的安装文件大小较小,但是其调试功能,却比VisualStudio更为强大。它的另外一个用途是可以用来分析Dump数据,程序运行如图5所示。
图5 WinDbg运行界面
5. 分类识别工具
在第一次拿到一个文件时,我们需要确定这是一个什么类型的文件。通常可以通过文件扩展名确定。有时候文件扩展名并没有什么实际意义,所以不能通过扩展名来确定文件类型。
(1)file
在大多数 Linux 系统中都带有这个实用工具。file 通过检查某些特定字段来确定文件类型,如下。
常见命令:file[-bchikLnNprsvz][-f namefile][-Fseparator][-mmagicfiles]file。命令参数及描述如表1所示。
表1 file命令参数及描述
(2)PE tools
PE tools用于分析Windows系统中正在运行的进程和可执行文件,主界面如图6所示,列出了所有活动进程和每个进程调用的动态链接库。
图6 PE tools主界面
(3)PEiD
PEiD 是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470种PE文档的加壳类型和签名,运行界面如图7所示。
图7 PEiD运行界面
6. 摘要工具
一般情况下,我们可以获得的都是二进制程序文件,所有也只能对二进制程序进行逆向。在对文件有了初步的了解和分类后,需要对特定的文件格式进行解析。
(1)nm
nm是names的缩写。nm命令主要是用来列出某些文件中的符号,如一些函数和全局变量。在Linux下面重新编译生成了Helloworld,用nm命令分别查看效果,命令:nmHelloworld,运行如下。
输出字符含义如表2所示。
表2 输出字符含义
(2)ldd
ldd(List Dynamic Dependencies)是Linux上自带的脚本,用来列出可执行文件所需的动态库。命令:ldd Helloworld。
(3)Objdump
Objdump 是一个十分强大的工具,可以灵活地查询文件的各种信息,有大概 30个可选项,可以通过objdump–help查询。简单查看反汇编代码使用如下:Objdump-d helloworld,运行部分如下。
(4)Otool
可以获取OS X二进制文件的相关信息。类似objdump的实用工具。
(5)Dumpbin
微软VisualStudio工具套件里的一个命令行工具。主要用于Windows PE文件相关信息的获取。用法类似Objdump。
7. 深度检测工具
strings实用工具专门用于提取文件中的字符串内容,通常使用该工具不会受到文件格式的限制。使用strings的默认设置(至少包含4个字符的7位ASCII序列)。用strings对Helloworld进行检测,部分代码如下。
推荐系统
雨林木风 winxp下载 纯净版 永久激活 winxp ghost系统 sp3 系统下载
系统大小:0MB系统类型:WinXP雨林木风在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业知名品牌,雨林木风WindowsXP其系统口碑得到许多人认可,积累了广大的用户群体,是一款稳定流畅的系统,雨林木风 winxp下载 纯净版 永久激活 winxp ghost系统 sp3 系统下载,有需要的朋友速度下载吧。
系统等级:进入下载 >萝卜家园win7纯净版 ghost系统下载 x64 联想电脑专用
系统大小:0MB系统类型:Win7萝卜家园win7纯净版是款非常纯净的win7系统,此版本优化更新了大量的驱动,帮助用户们进行舒适的使用,更加的适合家庭办公的使用,方便用户,有需要的用户们快来下载安装吧。
系统等级:进入下载 >雨林木风xp系统 xp系统纯净版 winXP ghost xp sp3 纯净版系统下载
系统大小:1.01GB系统类型:WinXP雨林木风xp系统 xp系统纯净版 winXP ghost xp sp3 纯净版系统下载,雨林木风WinXP系统技术积累雄厚深耕多年,采用了新的系统功能和硬件驱动,可以更好的发挥系统的性能,优化了系统、驱动对硬件的加速,加固了系统安全策略,运行环境安全可靠稳定。
系统等级:进入下载 >萝卜家园win10企业版 免激活密钥 激活工具 V2023 X64位系统下载
系统大小:0MB系统类型:Win10萝卜家园在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的萝卜家园品牌,(win10企业版,win10 ghost,win10镜像),萝卜家园win10企业版 免激活密钥 激活工具 ghost镜像 X64位系统下载,其系统口碑得到许多人认可,积累了广大的用户群体,萝卜家园win10纯净版是一款稳定流畅的系统,一直以来都以用户为中心,是由萝卜家园win10团队推出的萝卜家园
系统等级:进入下载 >萝卜家园windows10游戏版 win10游戏专业版 V2023 X64位系统下载
系统大小:0MB系统类型:Win10萝卜家园windows10游戏版 win10游戏专业版 ghost X64位 系统下载,萝卜家园在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的萝卜家园品牌,其系统口碑得到许多人认可,积累了广大的用户群体,萝卜家园win10纯净版是一款稳定流畅的系统,一直以来都以用户为中心,是由萝卜家园win10团队推出的萝卜家园win10国内镜像版,基于国内用户的习惯,做
系统等级:进入下载 >windows11下载 萝卜家园win11专业版 X64位 V2023官网下载
系统大小:0MB系统类型:Win11萝卜家园在系统方面技术积累雄厚深耕多年,windows11下载 萝卜家园win11专业版 X64位 官网正式版可以更好的发挥系统的性能,优化了系统、驱动对硬件的加速,使得软件在WINDOWS11系统中运行得更加流畅,加固了系统安全策略,WINDOWS11系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。
系统等级:进入下载 >
相关文章
- 如何解决锐龙2200g死机蓝屏
- Win8.1本地搜索为什么无法使用
- Win8.1无线网络不稳定/掉线怎么办
- 电脑机箱漏电怎么消除?电脑机箱漏电是哪里的问题?
- 电脑开不了机怎么办?电脑无法开机怎么解决?
- 硬盘双击无法打开的问题该怎么办
- 风行下载速度慢甚至是为0怎么办?风行播放器下载问题及解决方法汇总
- 苹果回应新的iOS恶意软件YiSpector:已在iOS8.4中解决该问题
- 没有路由器怎么连无线 160wifi 解决没有路由器连接无线问题
- 维棠FLV下载视频失败问题汇总及解决方法
- Word2016 出现“此功能看似已中断 并需要修复”问题解决方案(图文)
- Cisco管理的35个常见问题及解答
- NanoStudio怎么用?NanoStudio使用方法及常见问题
- IE浏览器登录网上银行时出现崩溃问题的解决办法
热门系统
推荐软件
推荐应用
推荐游戏
热门文章
常用系统
- 1win11最新娱乐版下载 技术员联盟x64位 ghost系统 ISO镜像 v2023
- 2电脑公司windows7纯净版 ghost x64位 v2022.05 官网镜像下载
- 3外星人系统Win11稳定版系统下载 windows11 64位稳定版Ghost V2022
- 4win11一键装机小白版下载 外星人系统 x64位纯净版下载 笔记本专用
- 5萝卜家园Ghost win10 64位中文版专业版系统下载 windows10纯净专业版下载
- 6【国庆特别版】番茄花园Windows11高性能专业版ghost系统 ISO镜像下载
- 7青苹果系统 GHOST WIN7 SP1 X64 专业优化版 V2024
- 8深度技术ghost win7纯净版最新下载 大神装机版 ISO镜像下载
- 9雨林木风windows11中文版免激活 ghost镜像 V2022.04下载