期刊文献+

一种用于反编译代码与源代码的比较算法 被引量:3

Differencing Algorithm for Decompilation Code and Source Code
下载PDF
导出
摘要 现有反编译器产生的代码与对应的源代码之间存在差异,找到并理解差异有助于改进并完善反编译器的设计。该文给出一种适用于C语言反编译代码与源代码的比较算法。该算法以语法树匹配方法为基础,定义新的C语言中间代码表示形式并对表达式进行动态匹配,提高了语法树匹配的准确性。实验结果表明,该算法能有效计算出反编译代码与源代码之间的多数差异。 There are many differences between the codes produced by existing decompilers and the corresponding source codes. To find and understand these differences can help to improve and refine the design of decompiler. This paper presents a differencing algorithm for decompilation code and source code of a C program. This algorithm is based on syntax tree matching method. A new C program intermediate representation is defined and a dynamic expression matching method is proposed to improve the accuracy of the syntax tree matching method. Experimental results show that this algorithm is able to find out most differences between decompilation code and source code.
出处 《计算机工程》 CAS CSCD 北大核心 2009年第4期38-40,共3页 Computer Engineering
基金 国家自然科学基金资助项目(60573140)
关键词 反编译代码 源代码 比较算法 中间代码 动态表达式匹配 decompilation code source code differencing algorithm intermediate code dynamic expression matching
  • 相关文献

参考文献9

  • 1Sites R L, Chemoff A, Kirk M B, et al. Binary Translation[J]. Digital Technical Journal, 1992, 4(4): 69-81.
  • 2Cifuentes C, Waddington T, Emmerik M V. Computer Security Analysis Through Decompilation and High-level Debugging[C]// Proceedings of WCRE'01. Stuttgart, Germany: IEEE Computer Society Press, 2001 : 375-380.
  • 3Emmerik M V, Waddinton T. Using a Decompiler for Real-world Source Recovery[C]//Proceedings of WCRE'04. Delft, Netherlands: IEEE Computer Society Press, 2004: 27-36.
  • 4Horwitz S. Identifying the Semantic and Textual Differences Between Two Version of a Program[C]//Proceedings of PLDI'90. New York, USA: ACM Press, 1990: 234-245.
  • 5Kim M, Notkin D. Program Element Matching for Multi-version Program Analysis[C]//Proceedings of the 3rd International Workshop on Mining Software Repositories. Shanghai, China: ACM Press, 2006: 58-64.
  • 6Necula G C, McPeak S, Rahul S R et al. CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs[J]. Lecture Notes in Computer Science, 2002, 2304: 213-228.
  • 7Cifuentes C, Gough K J. Decompilation of Binary Programs[J]. Software-Practice & Experience, 1995, 25(7): 811-829.
  • 8刘宗田.C语言反编译系统DECLER[J].微电子学与计算机,1997,14(5):1-3. 被引量:5
  • 9Emmerik M V, Krol G, Waddington T. Boomerang Decompiler[Z]. (2006-11-03). http://boomerang.sourceforge.net.

二级参考文献3

共引文献4

同被引文献32

  • 1曾鸣,赵荣彩,姚京松,王小芹.基于特征提取的二进制代码比较技术[J].计算机工程与应用,2006,42(22):8-11. 被引量:6
  • 2Baker B S, Giancarlo R. Sparse Dynamic Programming for Lon- gest Common Subsequence from Fragments[J]. Journal of Algorithms, 2002, 42(2): 231-254.
  • 3Kamiya T, Kusumoto S, Inoue K. CCFinder: A Multilinguistic Token-based Code Clone Detection System for Large Scale Source Code[J]. IEEE Trans. on Software Engineering, 2002, 28(7): 654-670.
  • 4Schleimer S, Wilkerson D S, Aiken A. Winnowing: Local Algo- rithms for Document Fingerprinting[C]//Proc. of ACM SIGMOD International Conference on Management of Data. San Diego, California, USA: [s. n.], 2003.
  • 5Jones E L. Metrics Based Plagiarism Monitoring[J]. Journal of Computing Sciences in Colleges, 2001, 16(4): 253-261.
  • 6Chilowicz M, Duris E, Roussel G. Syntax Tree Fingerprinting for Source Code Similarity Detection[C]//Proc. of ICPC'09. Vancouver, Canada: [s. n.], 2009.
  • 7Yang Suying, Wang Xin. A Visual Domain Recognition Method Based on Function Mode for SourceCode Plagiarism[C]//Proc. of the 3rd Internatioaai Symposium on Intelligent Information Technology and Security Informatics. Jinggangshan, China: [s. n.], 2010.
  • 8Karp R M, Rabin M O. Efficient Randomized Pattern-matching Algorithms[J]. IBM Journal of Research and Development, 1987, 31 (2): 249-260.
  • 9陈忠义,黄武忠.基于GIS平台的配电网规划优化方法综述[J].电力信息化,2008,6(12):94-97. 被引量:2
  • 10卓先德,赵菲,曾德明.非对称加密技术研究[J].四川理工学院学报(自然科学版),2010,23(5):562-564. 被引量:17

引证文献3

二级引证文献15

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

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