Disassembler

A disassemblerek olyan programok, melyek a gépi kódot assembly nyelvre fordítják, azaz az assemblerekkel ellentétes feladatot látnak el. A disassemblert az különbözteti meg a decompilertől, hogy alacsony szintű kódot képez, míg az utóbbi magas szintűt.

A disassembly, vagyis a disassembler kimenete ember által olvasható formában jelenik meg, ezért a disassembler egy reverse-engineering, avagy kódvisszafejtő eszköznek tekinthető.

Példák disassembler működésére

   lp = (unsigned char *)(addr);
 52:   8b 45 0c                mov    0xc(%ebp),%eax
 55:   89 45 f4                mov    %eax,0xfffffff4(%ebp)
   hp = (unsigned char *)(addr + length - 1);
 58:   8b 45 08                mov    0x8(%ebp),%eax
 5b:   03 45 0c                add    0xc(%ebp),%eax
 5e:   48                      dec    %eax
 5f:   89 45 f0                mov    %eax,0xfffffff0(%ebp)
EDT001+0          BALR  R10,R0                 05 A0
EDT001+2          BC    B'1111',E(R0,R10)      47 F0 A00E
...
EDT001+10         BAL   R1,2E(R0,R10)          45 10 A02E
...
EDT001+30         SVC   1                      0A 01
EDT001+32         CLM   R15,B'0001',2F2(R10)   BD F1 A2F2
EDT001+36         BC    B'0111',150(R0,R10)    47 70 A150
EDT001+3A         LR    R4,R1                  18 41
EDT001+3C         XR    R1,R1                  17 11
EDT001+3E         SVC   172                    0A AC
0x100003d0 <main+0>:    mflr    r0
0x100003d4 <main+4>:    stw     r31,-4(r1)
0x100003d8 <main+8>:    stw     r0,8(r1)
0x100003dc <main+12>:   stwu    r1,-80(r1)
0x100003e0 <main+16>:   mr      r31,r1
0x100003e4 <main+20>:   li      r0,4
0x100003e8 <main+24>:   stw     r0,56(r1)
0x100003ec <main+28>:   lwz     r3,72(r2)
0x100003f0 <main+32>:   li      r4,1
0x100003f4 <main+36>:   li      r5,2
0x100003f8 <main+40>:   li      r6,4
0x100003fc <main+44>:   li      r7,4
0x10000400 <main+48>:   li      r8,8
0x10000404 <main+52>:   li      r9,4
0x10000408 <main+56>:   li      r10,4
0x1000040c <main+60>:   bl      0x10000470 <printf>

Irodalom

Lásd még

További információk