Reversing : The Hacker's Guide to Reverse Engineering

(ff) #1
Figure A.12 demonstrates how the preceding switch block can be viewed as
a tree by the compiler and presents the compiler-generated assembly code that
implements each tree node.

Figure A.12 Tree-implementation of a switch block including assembly language code.

Case^120

Case^140

Case^501

Case^1001

Case^1100

Case^1400

Case 2000

Case^3400

Case 4100

Above1100

501_Or_Below

1100_Or_Below

cmp eax,1100jg Above1100Proceed to 1100_Or_Below

Cmp eax, 1100je Case_1100cmp eax, 501jg Case_1001Proceed to 501_Or

_Below

cmp

eax, 501

je Case_501sub eax, 120je Case_120sub eax, 20jne AfterSwBlockCase120:...

cmp eax, 3400jg Case_4100je Case_3400cmp eax, 1400je Case_1400cmp eax, 2000jne AfterSwBlockCase_2000:...

Beginning

Deciphering Code Structures 503

21_574817 appa.qxd 3/16/05 8:54 PM Page 503

Free download pdf