WitchCraft
November 28th, 2008, 11:19 PM
Hi, I'm currently testing distrom disassembler...
Now, it seems like the output is incorrect, or is that wrong:
If I disassemble VM_Create with gdb, i get a correct disassembly:
disas VM_Create
Dump of assembler code for function VM_Create:
0x080b95d8 <VM_Create+0>: sub $0x2c,%esp
0x080b95db <VM_Create+3>: mov %esi,0x20(%esp)
0x080b95df <VM_Create+7>: mov 0x30(%esp),%esi
0x080b95e3 <VM_Create+11>: mov %edi,0x24(%esp)
0x080b95e7 <VM_Create+15>: mov 0x38(%esp),%edi
0x080b95eb <VM_Create+19>: test %esi,%esi
0x080b95ed <VM_Create+21>: mov %ebx,0x1c(%esp)
0x080b95f1 <VM_Create+25>: mov %ebp,0x28(%esp)
0x080b95f5 <VM_Create+29>: je 0x80b981e <VM_Create+582>
0x080b95fb <VM_Create+35>: cmpb $0x0,(%esi)
0x080b95fe <VM_Create+38>: je 0x80b981e <VM_Create+582>
0x080b9604 <VM_Create+44>: mov 0x34(%esp),%eax
0x080b9608 <VM_Create+48>: test %eax,%eax
0x080b960a <VM_Create+50>: je 0x80b981e <VM_Create+582>
0x080b9610 <VM_Create+56>: call 0x807d750 <Hunk_MemoryRemaining>
0x080b9615 <VM_Create+61>: mov %esi,0x4(%esp)
0x080b9619 <VM_Create+65>: mov %eax,%ebp
if I use distorm:
./disasm openarena.i386 80b95d8 >> te.txt
diStorm version: 1.7.30
bits: 32
filename: openarena.i386
origin: 080b95d8
080b95d8 (02) 7f 45 JG 0x80b961f
080b95da (01) 4c DEC ESP
080b95db (01) 46 INC ESI
080b95dc (02) 0101 ADD [ECX], EAX
080b95de (02) 0100 ADD [EAX], EAX
080b95e0 (02) 0000 ADD [EAX], AL
080b95e2 (02) 0000 ADD [EAX], AL
080b95e4 (02) 0000 ADD [EAX], AL
080b95e6 (02) 0000 ADD [EAX], AL
080b95e8 (02) 0200 ADD AL, [EAX]
080b95ea (02) 0300 ADD EAX, [EAX]
080b95ec (02) 0100 ADD [EAX], EAX
080b95ee (02) 0000 ADD [EAX], AL
080b95f0 (07) 80ba 04083400 00 CMP BYTE [EDX+0x340804], 0x0
080b95f7 (03) 0068 58 ADD [EAX+0x58], CH
080b95fa (01) 16 PUSH SS
080b95fb (02) 0000 ADD [EAX], AL
080b95fd (02) 0000 ADD [EAX], AL
080b95ff (03) 003400 ADD [EAX+EAX], DH
080b9602 (02) 2000 AND [EAX], AL
080b9604 (01) 07 POP ES
080b9605 (02) 0028 ADD [EAX], CH
080b9607 (02) 0021 ADD [ECX], AH
080b9609 (02) 001e ADD [ESI], BL
080b960b (02) 0006 ADD [ESI], AL
080b960d (02) 0000 ADD [EAX], AL
080b960f (03) 003400 ADD [EAX+EAX], DH
080b9612 (02) 0000 ADD [EAX], AL
080b9614 (02) 34 80 XOR AL, 0x80
080b9616 (02) 04 08 ADD AL, 0x8
Doesn't look correct, or not?
Now, it seems like the output is incorrect, or is that wrong:
If I disassemble VM_Create with gdb, i get a correct disassembly:
disas VM_Create
Dump of assembler code for function VM_Create:
0x080b95d8 <VM_Create+0>: sub $0x2c,%esp
0x080b95db <VM_Create+3>: mov %esi,0x20(%esp)
0x080b95df <VM_Create+7>: mov 0x30(%esp),%esi
0x080b95e3 <VM_Create+11>: mov %edi,0x24(%esp)
0x080b95e7 <VM_Create+15>: mov 0x38(%esp),%edi
0x080b95eb <VM_Create+19>: test %esi,%esi
0x080b95ed <VM_Create+21>: mov %ebx,0x1c(%esp)
0x080b95f1 <VM_Create+25>: mov %ebp,0x28(%esp)
0x080b95f5 <VM_Create+29>: je 0x80b981e <VM_Create+582>
0x080b95fb <VM_Create+35>: cmpb $0x0,(%esi)
0x080b95fe <VM_Create+38>: je 0x80b981e <VM_Create+582>
0x080b9604 <VM_Create+44>: mov 0x34(%esp),%eax
0x080b9608 <VM_Create+48>: test %eax,%eax
0x080b960a <VM_Create+50>: je 0x80b981e <VM_Create+582>
0x080b9610 <VM_Create+56>: call 0x807d750 <Hunk_MemoryRemaining>
0x080b9615 <VM_Create+61>: mov %esi,0x4(%esp)
0x080b9619 <VM_Create+65>: mov %eax,%ebp
if I use distorm:
./disasm openarena.i386 80b95d8 >> te.txt
diStorm version: 1.7.30
bits: 32
filename: openarena.i386
origin: 080b95d8
080b95d8 (02) 7f 45 JG 0x80b961f
080b95da (01) 4c DEC ESP
080b95db (01) 46 INC ESI
080b95dc (02) 0101 ADD [ECX], EAX
080b95de (02) 0100 ADD [EAX], EAX
080b95e0 (02) 0000 ADD [EAX], AL
080b95e2 (02) 0000 ADD [EAX], AL
080b95e4 (02) 0000 ADD [EAX], AL
080b95e6 (02) 0000 ADD [EAX], AL
080b95e8 (02) 0200 ADD AL, [EAX]
080b95ea (02) 0300 ADD EAX, [EAX]
080b95ec (02) 0100 ADD [EAX], EAX
080b95ee (02) 0000 ADD [EAX], AL
080b95f0 (07) 80ba 04083400 00 CMP BYTE [EDX+0x340804], 0x0
080b95f7 (03) 0068 58 ADD [EAX+0x58], CH
080b95fa (01) 16 PUSH SS
080b95fb (02) 0000 ADD [EAX], AL
080b95fd (02) 0000 ADD [EAX], AL
080b95ff (03) 003400 ADD [EAX+EAX], DH
080b9602 (02) 2000 AND [EAX], AL
080b9604 (01) 07 POP ES
080b9605 (02) 0028 ADD [EAX], CH
080b9607 (02) 0021 ADD [ECX], AH
080b9609 (02) 001e ADD [ESI], BL
080b960b (02) 0006 ADD [ESI], AL
080b960d (02) 0000 ADD [EAX], AL
080b960f (03) 003400 ADD [EAX+EAX], DH
080b9612 (02) 0000 ADD [EAX], AL
080b9614 (02) 34 80 XOR AL, 0x80
080b9616 (02) 04 08 ADD AL, 0x8
Doesn't look correct, or not?