9. Approaches
- Logging functions
- Specific strings
- Meta information
- Context
- Function
- Relationship of functions
- Program
- …
Defcon Russia (DCG #7812) 9
10. A1: logging functions
- Need to find a logging function
- Backtrace
- Decompile (hex-rays)
Defcon Russia (DCG #7812) 10
Function
String
17. A1: logging functions
(+) good results
(-) Function log has to be identified
(-) need backtrace
(-) platform dependent
Defcon Russia (DCG #7812) 17
Function
String
19. A2: strings
- Code template
Defcon Russia (DCG #7812) 19
Function
String
20. A2: strings
(+) platform independent
(+) forget about the log function
(+) general approach (relatively)
(+) small, simple, flexible
(-) need regexp (I hate them)
(-) may need to customize
(-) false positives
Defcon Russia (DCG #7812) 20
Function
String
21. A2: strings
- It works!
Defcon Russia (DCG #7812) 21
Function
String
22. Defcon Russia (DCG #7812)
A3: Meta information
Function
RTTI
- RTTI (Run-Time Type Identification)
- RTCI (Run Time Class Information)
23. Defcon Russia (DCG #7812)
A3: IDA Plugins
- http://sourceforge.net/projects/classinformer
- Only PE32, C++ RTTI
Function
RTTI
28. A3.2: Relationship of functions
‒ Renaming subroutine blocks
Defcon Russia (DCG #7812) 28
http://hooked-on-mnemonics.blogspot.ru/2012/07/renaming-subroutine-blocks-and.html
29. A3.3: context of program
- xN the most complex function
- CC - Cyclomatic complexity
- xN the largest function
- Parsers, etc.
- Four most frequently called functions, etc.
- Runtime identification
- …
Defcon Russia (DCG #7812) 29
30. Extra
‒ Binaries share the same codebase
(pdb) —> idb —> pat —> sig —> idb
‒ IDA plugin ida2pat.py
Defcon Russia (DCG #7812) 30
http://www.idapro.ru/description/flirt
31. Plan
- Take all techniques
- Prioritize
- Launch
- Profit!
Defcon Russia (DCG #7812) 31
32. Conclusions
- All borders are in your head
- Invent your own heuristics depending on the
program traits and functions
Defcon Russia (DCG #7812) 32