Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

29
Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Transcript of Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Page 1: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Reassembleable Disassembly

Shuai Wang, Pei Wang, Dinghao Wu

Presented by Chuong Ngo

Page 2: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

What’s in Your Dependency?

Page 3: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

What’s in Your Dependency?

Page 4: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

What’s in Your Dependency?

Page 5: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Identifying Bugs, Flaws, and Exploits

Study the specifications/papers detailing the techniques and algorithms.

Penetration test the implementation.

Study the implementation.

Get lucky.

Page 6: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Identifying Bugs, Flaws, and Exploits

Study the specifications/papers detailing the techniques and algorithms.

Penetration test the implementation.

Study the implementation.

Get lucky.

Page 7: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Identifying Bugs, Flaws, and Exploits

Study the specifications/papers detailing the techniques and algorithms.

Penetration test the implementation.

Study the implementation.

Get lucky.

But what if you don’t have the source code?

Page 8: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Back to the Source

Page 9: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Review of Compilation Process

Stripped Binary

Page 10: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Disassemblers

IDA Pro-best commercial

EXE to assembly to C.

Not reassembleable.

MC-Semantics

Object to binary only

Reassembleable

Lower performance

Page 11: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Binary Rewriting Tools

Specific compiler or non-stripped binary.

Re-compiled binary bloat.

Large execution overhead.

Not reassembleable.

Page 12: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Code Relocatability is Key to Reassembility

Page 13: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Problem of Relocatability - Data or Reference?

Page 14: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Problem of Relocatability - Data or Reference?

Disassembler needs to symbolize references

Page 15: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Types of Symbol References

Page 16: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Methodology

Simple filter for c2X.4/8 byte aligned.d2d irrelevant.Find jump tables.

Page 17: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Enter Oroboros

Page 18: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Architecture of Uroboros

Page 19: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Architecture of Uroboros

Page 20: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Architecture of Uroboros

Page 21: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Oroboros Evaluation

Page 22: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Evaluation Corpora

Page 23: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Evaluation Corpora

224 total

A1: Coreutils (103)

A2: Real (7)

A3: SPEC2006 C

Page 24: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

32-bit Binary Accuracies

Page 25: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

64-bit Binary Accuracies

Page 26: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

32-bit Binary Execution Overhead

Page 27: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

32-bit Binary Processing Times

Page 28: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Summary

Reassembeable disassembly needed

Symbolization solves code relocatability

Uroboros comprised of Disassembly and Analysis module

Compiler independent

No C++ support

Page 29: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo.

Questions

Why did the authors choose to report false positives and false negatives?

Was reporting on the first and last 10 programs, arranged alphabetically, a good idea?

What could explain the outliers in the reported processing times and execution overhead?