资源描述:
《混合编码模式下的静态反汇编算法.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第12卷第3期信息工程大学学报Vol12No32011年6月JournalofInformationEngineeringUniversityJun2011混合编码模式下的静态反汇编算法胡刚,张翠艳,赵远,崔晨(信息工程大学信息工程学院,河南郑州450002)摘要:反汇编是程序分析与理解的基础,也是软件逆向工程的起点和关键。目前关于静态反汇编的研究解决了许多诸如代码和数据的区分、间接跳转指令的目标地址的计算、跳转表恢复等问题,但这些研究都局限于单一编码模式下的二进制程序,并没有涉及混合编码模式下的反汇编问题,文章以混合编码模式的二进制代码为研究对象,提
2、出一种混合编码模式下的静态控制流反汇编复算法并对算法进行了性能分析。关键词:混合编码;二进制程序;反汇编中图分类号:TP313文献标识码:A文章编号:1671-0673(2011)03-0358-05StaticDisassemblyAlgorithmforHybridEncodingCodeHUGang,ZHANGCuiyan,ZHAOYuan,CUIChen(InstituteofInformationEngineering,InformationEngineeringUniversity,Zhengzhou450002,China)Abstract:
3、Disassemblyisthebasisofprogramanalysisandunderstanding,andisalsothestartingpointforsoftwarereverseengineering.Currentresearchesonthestaticdisassemblyhassolvedmanyissuessuchasthedistinctionbetweencodeanddata,indirectjumptargetaddresscalculationinstruction,ajumptablerecoveryandsoon.How
4、ever,thesestudiesarelimitedtoasingleencodingcodeanddontinvolvedisassemblyproblemofhybridencodingmode.Thepaperproposesastaticalgorithmforthehybridencodingcodeandanalyzesitsperformance.Keywords:mixedcodecmode;binarycode;disassemble反汇编是程序分析与理解的基础,也是软件逆向工程的起点和关键。按照在反汇编的过程中是否需要执行目标程序,
5、可以将反汇编算法分为动态反汇编和静态反汇编。目前有两种主要的静态反汇编算法:[1][2][3]线性反汇编和递归反汇编。现有大部分反汇编算法都在致力于消除间接跳转指令和跳转表对控[4]制流恢复的完整性的影响,由于跳转指令和跳转表的存在,完全正确的反汇编算法是不存在的,但仍有[5][6]一些启发式的反汇编算法和混合算法使反汇编结果更加接近完全正确的情况。这些算法在一定程序上提高了反汇编结果的精度,但都局限于单一编码模式下的二进制程序,并没有涉及混合编码模式下的反汇编问题。[6]编码模式是关于机器指令编码规范的总称,编码模式指定了指令中操作数的默认大小,规范了指令如何处
6、理等信息。通常编码模式包括8位编码、16位编码、32位编码以及现在的64位编码。混合编码是指在同一个二进制程序中同时使用了多种不同的编码模式进行编码的情况。混合编码模式在二进制程序尤其是固件代码中极为常见,例如X86机器的BIOS程序中经常出现实模式和虚拟模式相互切换的情况,而ARM的BOOTLOADER程序里也有ARM模式和Thumb模式的混合收稿日期:2010-11-10;修回日期:2011-03-09基金项目:国家863计划资助项目(2009AA01Z434)作者简介:胡刚(1984-),男,硕士生,主要研究方向为固件逆向,Emai:lmyn
7、ameishugang@yahoo.com.cn;张翠艳(1983-),女,硕士生,主要研究方向为固件代码陷分析。第3期胡刚等:混合编码模式下的静态反汇编算法359编码的问题。本文分析了混合编码对反汇编结果的影响,并在此基础上提出了一种混合编码模式下的二进制程序静态反汇编算法。1混合编码对反汇编的影响混合编码模式在固件代码中极为常见,I386结构的计算机在开机时处于实模式,为了利用保护模式提供的优异功能,系统在经过初始化后切换至保护模式;ARM处理器在提供32ARM模式的同时为了支持特殊的应用也提供了向下兼容的16位Thumb模式,ARM处理器在开机时处于
8、ARM模式