Overview
Syllabus
Intro
Securing Software (is hard!) Software bugs
Exploits and Payloads Initial stage gains program counter control
Loading the Payload
Breaking the Payload
Remove unused Functionality
"Modern" Software
Adobe Reader DLL Dependencies
Adobe Reader DLL Usage
Viber DLL Usage
Control Flow Graph (CFG)
Code Stripping: DLL CFGS
Code Stripping: mark used code
Code Stripping: remove unused code
Control Flow Recovery
Control Flow Graph Recovery
Kill Files
Kill Node (example 1)
DLL Injection
DLL Preloading . Strip code from dynamically loaded DLLS
Image Freezing
Hook Mem API in User Space
Function Whitelisting Static analysis is not sufficient
Whitelisting Functions...
CodeFreeze at Runtime
DemoServer.exe: Memory Overhead Unprotected
CodeFreeze Advantages
Current Limitations
Future Work: CFG from the Compiler
Taught by
Black Hat