• DocumentCode
    756245
  • Title

    A method for detecting obfuscated calls in malicious binaries

  • Author

    Lakhotia, Arun ; Kumar, Eric Uday ; Venable, Michael

  • Author_Institution
    Louisiana State Univ., Baton Rouge, LA, USA
  • Volume
    31
  • Issue
    11
  • fYear
    2005
  • Firstpage
    955
  • Lastpage
    968
  • 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 ret instruction, the first push pushes the address of instruction after the ret 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 work presents a method to statically detect obfuscated calls in binary code. The idea is to use abstract interpretation to detect where the normal call-ret convention is violated. These violations can be detected by what is called an abstract stack graph. An abstract stack graph is a concise representation of all potential abstract stacks at every point in a program. An abstract stack is used to associate each element in the stack to the instruction that pushes the element. An algorithm for constructing the abstract stack graph is also presented. Methods for using the abstract stack graph are shown to detect eight different obfuscations. The technique is demonstrated by implementing a prototype tool called DOC (detector for obfuscated calls).
  • Keywords
    binary codes; graph theory; operating system kernels; resource allocation; security of data; software prototyping; abstract stack graph; binary code; call instruction; detector for obfuscated calls; kernel libraries; malicious binaries information; operating system; prototype tool DOC; Binary codes; Detectors; Kernel; Laboratories; Libraries; Operating systems; Performance analysis; Programming profession; Prototypes; Software prototyping; Index Terms- Invasive software (viruses; abstract stack.; obfuscation; program analysis; validation; worms);
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2005.120
  • Filename
    1556554