期刊文献+

IA-64代码翻译中的跳转表恢复技术 被引量:2

Jump Table Recovery Technique in IA-64 Binary Code Translation
下载PDF
导出
摘要 在对IA-64二进制代码进行翻译的过程中,一个重要的问题就是识别和恢复通过跳转表实现的switch语句。分析了编译器生成跳转表时采用的策略,提出了前向预取同反向切片及表达式置换相结合以识别和恢复switch语句的技术,归纳了用于获取跳转表地址的规格化形式,给出了跳转表分支目标地址恢复方法,从而可将包含跳转表的IA-64二进制代码恢复为高级switch语句。该技术已经在二进制翻译框架I2A上进行了测试,可以处理编译器gcc 2.96及gcc 3.2.3在多种优化级别下生成的IA-64代码。 In the translation of IA-64 binary code, one of the important problems is that of recognizing the switch statements implemented via jump table, The paper first analyzes the compiler's strategies when creating jump table, then presents a technique for recognizing and recovering switch statements by combination of forward prefetch and backwards slicing plus expression substitution, reduces to a normal form which allows people to determine where the jump table is located, proposes a method to recovery the target addresses of jump table. Using such a technique, it can translate the IA-64 binary code that contains jump table into high level switch statements. The presented technique is tested in a binary translation framework I2A. The test shows that the technique is suitable for IA-64 binary code generated by compiler gcc 2.96 and gcc 3.2.3 with multi optimization options.
作者 齐宁 赵荣彩
出处 《计算机工程》 EI CAS CSCD 北大核心 2006年第23期49-51,共3页 Computer Engineering
基金 国防科研基金资助重点项目
关键词 IA-64 跳转表 切片 表达式置换 IA-64 Jump table Slicing Expression substitution
  • 相关文献

参考文献4

  • 1Cifutens C,Emmerik M.Recovery of Jump Table Case Statements from Binary Code[R].Technical Report:444,School of Information Technology and Electrical Engineering,The University of Queensland,1998.
  • 2Cifuentes C,Sendall S.Specifying the Semantics of Machine Instructions[M].IEEE CS Press,1998.
  • 3Intel IA-64 Architecture Software Developer's Manual[Z].Intel Corporation,2000.
  • 4Gallagher K B,Lyle J R.Using Program Slicing in Software Maintenance[J].IEEE Transations on Software Engineering,1991,17(8):751-761.

同被引文献12

  • 1CIFUENTES C, EMMERIK Mvan. Recovery of jump table case statements from binary code[ J]. Science of Computer Programming, 2001,40(2-3) :171- 188.
  • 2EILAM E.Recovering:逆向工程揭秘[M].韩琪,杨艳,王玉英,等译.北京:电子工程出版社,2007:499-504.
  • 3WEISER M. Program slicing[ J]. IEEE Trans on Software Engineering, 1984,10 (4) :352- 357.
  • 4Wirth N, Hoare C A R. A Contribution to the Development of ALGOL[J]. Communications of ACM. 1966, 9(6): 413-432.
  • 5Wrandle C. Notes on the Case Statement[J]. Software-Practice and Experience, 1974, 4(3): 289-298.
  • 6Cifuentes C, Emmerik M. Recovery of Jump Table Case Statements from Binary Code[J]. Science of Computer Programming, 2001. 40(2): 171-188.
  • 7Kaspersky K.黑客反汇编揭秘[M].谭明金,译北京:电子工业出版社,2004.
  • 8Eilam E Recovering.逆向工程揭秘[M].韩琪,译.北京:电子工程出版社,2007.
  • 9Amotoft T. Slicing for Modem Program Structures: A Theory for Eliminating Irrelevant Loops[J].Infomlation Processing Letters, 2008, 106(2): 45-51.
  • 10Ranganath V E Amtoft T, Banerjee A. et al. A New Foundation for Control Dependence and Slicing for Modern Program Structures[J]. ACM Transactions on Programming Languages and Systems, 2007, 29(5): 215-216.

引证文献2

二级引证文献1

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部