DocumentCode
425442
Title
Abstracting stack to detect obfuscated calls in binaries
Author
Lakhotia, Arun ; Kumar, Eric Uday
Author_Institution
Center for Adv. Comput. Studies, Louisiana Univ., Lafayette, LA
fYear
2004
fDate
16-16 Sept. 2004
Firstpage
17
Lastpage
26
Abstract
Information about calls to the operating system (or kernel libraries) made by a binary executable may be used to determine whether the binary is malicious. Being aware of this approach, malicious programmers hide this information by making such calls without using the call instruction. For instance, the `call addr´ instruction may be replaced by two push instructions and a return instruction, the first push pushes the address of the instruction after the return instruction, and the second push pushes the address addr. The code may be further obfuscated by spreading the three instructions and by splitting each instruction into multiple instructions. This paper presents a method to statically detect obfuscated calls in binary code. The notion of abstract stack is introduced to associate each element in the stack to the instruction that pushes the element. An abstract stack graph is a concise representation of all abstract stacks at every point in the program. An abstract stack graph, created by abstract interpretation of the binary executables, may be used to detect obfuscated calls and other stack related obfuscations
Keywords
binary codes; program compilers; binary codes; call addr instruction; call instruction; kernel libraries; malicious programmers; obfuscated call detection; operating system; Binary codes; Delay; Kernel; Laboratories; Libraries; Operating systems; Performance analysis; Programming profession; Protection; Viruses (medical);
fLanguage
English
Publisher
ieee
Conference_Titel
Source Code Analysis and Manipulation, 2004. Fourth IEEE International Workshop on
Conference_Location
Chicago, IL
Print_ISBN
0-7695-2144-4
Type
conf
DOI
10.1109/SCAM.2004.2
Filename
1386155
Link To Document