Abstract
Program equivalence refers to the mapping between equivalent codes written in different languages – including high-level and low-level languages. In the present work, we propose a novel approach for correlating program codes of different languages using artificial neural networks and program characteristics derived from control flow graphs and call graphs. Our approach correlates the program codes of different languages by feeding the neural network with logical flow characteristics. Our evaluation using real code examples shows a typical correspondence rate between 62% and 100% with the very low rate of 4% false positives.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Thompson, K.: Reflections on trusting trust. Commun. ACM 27(8), 761–763 (1984)
McDonald, J.: Delphi falls prey (2009), http://www.symantec.com/connect/blogs/delphi-falls-prey (last accessed October 2009)
Quinlan, D., Panas, T.: Source code and binary analysis of software defects. In: CSIIRW 2009: Proceedings of the 5th Annual Workshop on Cyber Security and Information Intelligence Research, pp. 1–4. ACM, New York (2009)
Hassan, A.E., Jiang, Z.M., Holt, R.C.: Source versus object code extraction for recovering software architecture. In: WCRE 2005: Proceedings of the 12th Working Conference on Reverse Engineering, pp. 67–76. IEEE Computer Society, Washington, DC (1995)
Hatton, L.: Estimating source lines of code from object code. In: Windows and Embedded Control Systems (2005), http://www.leshatton.org/Documents/LOC2005.pdf
Buttle, D.L.: Verification of Compiled Code. PhD thesis, University of York, UK (2001)
Wang, Z., Pierce, K., McFarling, S.: Bmat - a binary matching tool for stale profile propagation. The Journal of Instruction-Level Parallelism (2002)
Flake, H.: Structural comparison of executable objects. In: Proc. of the Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA). IEEE Computer Society (2004)
Oh, J.: Fight against 1-day exploits: Diffing binaries vs anti-diffing binaries. In: Blackhat Technical Security Conference (2009)
Zhenga, J.: A digital image encryption algorithm based on hyper-chaotic cellular neural network. Journal Fundamenta Informaticae (2009)
Zeng, H., Rine, D.: A neural network approach for software defects fix effort estimation. In: IASTED Conf. on Software Engineering and Applications, pp. 513–517 (2004)
Zhenga, J.: Predicting software reliability with neural network ensembles. Expert Systems with Applications (36), 2116–2122 (2007)
Reddy, C.S., Raju, K.V.S.V.N., Kumari, V.V., Devi, G.L.: Fault-prone module prediction of a web application using artificial neural networks. In: Proceeding (591) Software Engineering and Applications (2007)
Lenic, M., Povalej, P., Kokol, P., Cardoso, A.I.: Using cellular automata to predict reliability of modules. In: Proceeding (436) Software Engineering and Applications (2004)
Boccardo, D.R., Nascimento, T.M., Machado, R.C., Prado, C.B., Carmo, L.F.R.C.: Traceability of executable codes using neural networks. In: Proceedings of the Information Security Conference (2010) (to appear)
Moretti, E., Chanteperdrix, G., Osorio, A.: New algorithms for control-flow graph structuring. In: CSMR 2001: Proceedings of the Fifth European Conference on Software Maintenance and Reengineering, p. 184. IEEE Computer Society, Washington, DC (2001)
IdaPro: Ida pro - disassembler (2010), http://www.hex-rays.com/idapro/ (last accessed January 2010)
Poznyakoff, S.: Gnu cflow (2010), http://savannah.gnu.org/projects/cflow (last accessed January 2010)
Ciocoiu, I.B.: Hybrid feedforward neural networks for solving classification problems. Neural Processing Letters 16(1), 81–91 (2002)
Asadi, R., Mustapha, N., Sulaiman, N.: New supervisioned multi layer feed forward neural network model to accelerate classification with high accuracy. European Journal of Scientific Research 33(1), 163–178 (2009)
Haykin, S.: Neural Networks: A Comprehensive Foundation. Prentice Hall (1998)
Hertz, J.A., Krogh, A.S., Palmer, R.G.: Introduction to the Theory of Neural Computation. Addison-Wesley, Redwood City (1991)
Moler, C.B.: MATLAB — an interactive matrix laboratory. Technical Report 369, University of New Mexico. Dept. of Computer Science (1980)
Men, H., Wu, Y., Gao, Y., Kou, Z., Xu, Z., Yang, S.: Application of support vector machine to heterotrophic bacteria colony recognition. In: CSSE (1), pp. 830–833 (2008)
Angulo, C., Ruiz, F., González, L., Ortega, J.A.: Multi-classification by using tri-class svm. Neural Processing Letters 23(1), 89–101 (2006)
Burkard, J.: C software (2010), http://people.sc.fsu.edu/~burkardt/ (Last accessed January 2010)
Oliveira Cruz, A.J.: C software (2010), http://equipe.nce.ufrj.br/adriano/c/exemplos.htm (last accessed January 2010)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 ICST Institute for Computer Science, Social Informatics and Telecommunications Engineering
About this paper
Cite this paper
Nascimento, T.M., Prado, C.B., Boccardo, D.R., Carmo, L.F.R.C., Machado, R.C.S. (2012). Program Equivalence Using Neural Networks. In: Suzuki, J., Nakano, T. (eds) Bio-Inspired Models of Network, Information, and Computing Systems. BIONETICS 2010. Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering, vol 87. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-32615-8_63
Download citation
DOI: https://doi.org/10.1007/978-3-642-32615-8_63
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-32614-1
Online ISBN: 978-3-642-32615-8
eBook Packages: Computer ScienceComputer Science (R0)