Outline
- Concepts
- T
aint analysis on the x86 architecture
- T
aint objects and instructions
- Advanced tainting
- References
Outline Concepts T aint analysis on the x86 architecture T aint - - PowerPoint PPT Presentation
Outline Concepts T aint analysis on the x86 architecture T aint objects and instructions Advanced tainting References Motivation The motivation for this research came from the following questions: Is it possible to
T aint Analysis
Object X Object Y Operation
Object X Untrustworthy Source TAINTED
Untrusted source #2 K L M X W Z Untrusted source #1 Merge of two different tainted sources
T aint Analysis
T aint Analysis
T aintChecker)
Range = [6..7]
Register AL tainted
Range = [0..4]
tainted Memory tainted area
Size
Memory
tainted EAX tainted
Range = [0..31]
MOV
Range = [4c000000- 4c002000]
A B A and B 1 1 1 1 1
A B A or B 1 1 1 1 1 1 1
A B A or B 1 1 1 1 1 1 1
A B A xor B 1 1 1 1 1 1
AL tainted
Range = [0..7]
AND 0xDF
Range = [6..7]
0xDF = 11011111 AL tainted
Range = [0..4]
AL tainted
Range = [0..7]
AND AL UNTAINTED AL tainted
Range = [0..7]
A XOR A 0 (constant)
T aint Analysis
T arget if not zero T arget if zero
Jump if TRUE 085h: cmp eax, ebx 088h: jnz 100h 08ch: mov ecx, edx ... 100h: xchg ecx, eax Jump if FALSE
Next instruction after jnz
TT 085h: cmp eax, ebx 088h: jnz 100h 08ch: mov ecx, edx ... 100h: xchg ecx, eax FT
NIA
DELTA = abs( 100h – 88h) = 13h NIA = 100 EIP 8Ch + ZF * 13h