完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
恶意代码通常都是以二进制代码形式发布的,利用这种形式的代码来 分析程序的逻辑功能是非常困难的,而如果利用反汇编器将二进制代码转化为较容易理解的汇编代码将更利于对恶意代码的分析,因而研究二进制代码的反汇编算法显得极为重要,两种传统的静态反汇编算法有:线性遍历和递归遍历算法。【解密专家+V信:icpojie】 学习反汇编算法? [size=10.5000pt]1.确定进行反汇编代码区域,这并不像那么简单。通常,指令与数据混杂在一起,区分它们就显得非常重要。反汇编可执行文件:该文件必须符合可执行文件的某种通用格式,如Windows所使用的可移植可执行(Portable Executable, PE)格式或许多Unix系统常用的可执行和链接格式(ELF)。 [size=10.5000pt]2.知道指令的起始地址后,下一步就是读该地址(或文件偏移量)所包含的值,并执行一次表查找,将二进制操作码的值与它的汇编语言助记符对应起来。根据被反汇编的指令集的复杂程度,这个过程可能非常简单,也可能需要几个额外的操作,如查明任何可以修改指令行为的前缀以及确定指令所需的操作数。对于指令长度可变的指令集,如Intel x86,要完全反汇编一条指令,可能需要检索额外的指令字节。 [size=10.5000pt]3.获取指令并解码任何所需的操作数后,需要对它的汇编语言等价形式进行格式化,并将其在反汇编代码中输出。有多种汇编语言输出格式可供选择。如X86所使用的两种主要格式为Intel格式和AT&T格式。 [size=10.5000pt]4.输出一条指令后,继续反汇编下一条指令,并重复上述过程,直到反汇编文件中的所有指令。 5.有大量的算法可用于确定从何处开始反汇编,如何选择下一条反汇编的指令,如何区分代码与数据,以及如何确定何时完成对最后一条指令的反汇编。线性扫描和递归下降是两种最主要的反汇编算法。 反汇编技术是静态分析二进制程序的基础,目前广为采用的反汇编算法是线性扫描和递归行进算法。【解密专家+V信:icpojie】 |
|
相关推荐
|
|
417 浏览 0 评论
430 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
393 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
974 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1055 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11779 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 00:19 , Processed in 0.518600 second(s), Total 69, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号