Professional Documents
Culture Documents
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
Outline
1
What is DBI
Tools and related work
What is DBI
How it works
Full control without emulation
How to achieve full control
Pros and cons
Demo: Javascript Deobfuscation
Building a Javascript DBI engine
Adding deobfuscation
Problems
Demo: x86 unpacking (and stu)
Jean-Yves Marion, Daniel Reynaud
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
What is DBI
Denition
(informal) Dynamic Binary Instrumentation is
a program transformation
that gives you full control over the execution of a program
with no need for architectural support
Note that:
virtualization does not provide full control
emulation (== interpretation) is not a program transformation
debugging requires architectural support
dynamic binary translation matches this denition, so QEMU
can be seen as a whole-system DBI engine
Jean-Yves Marion, Daniel Reynaud
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
Overview
Prog
Prog
Dbg
Emu
Int
Int
Debugging
Emulation
Prog
Int
Soft interpreter
or
virtualization
Prog
Int
DBI
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
Outline
1
What is DBI
Tools and related work
What is DBI
How it works
Full control without emulation
How to achieve full control
Pros and cons
Demo: Javascript Deobfuscation
Building a Javascript DBI engine
Adding deobfuscation
Problems
Demo: x86 unpacking (and stu)
Jean-Yves Marion, Daniel Reynaud
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
instrumented_code:
1 parse code
2
3
4
f(new_code)
run f(code)
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
Pros:
it is a program transformation
performance
Cons:
it is a program transformation
performance
...huh?
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
Outline
1
What is DBI
Tools and related work
What is DBI
How it works
Full control without emulation
How to achieve full control
Pros and cons
Demo: Javascript Deobfuscation
Building a Javascript DBI engine
Adding deobfuscation
Problems
Demo: x86 unpacking (and stu)
Jean-Yves Marion, Daniel Reynaud
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
Adding deobfuscation
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
Problems
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
Outline
1
What is DBI
Tools and related work
What is DBI
How it works
Full control without emulation
How to achieve full control
Pros and cons
Demo: Javascript Deobfuscation
Building a Javascript DBI engine
Adding deobfuscation
Problems
Demo: x86 unpacking (and stu)
Jean-Yves Marion, Daniel Reynaud
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
x86 unpacking
What happens when you extract a run trace with DBI and import it
in a disassembler?
Packer
Packed
prog.
Dis.
Packer
...
Packer
Packed
prog.
DBI
Trace
...
Dis.
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
Malware analysis
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
Conclusion
What is DBI
How it works
Demo: Javascript Deobfuscation
Demo: x86 unpacking (and stu)
Conclusion
Conclusion Bis