Intel XED(反汇编程序)-as [开始反汇编的地址]选项不起作用

问题描述 投票:0回答:1

此功能正常,但提供了所有从零开始的机器地址:

xed -i Halt7.obj

我真的需要机器地址以其COFF目标文件的偏移量开始。

这是我尝试过的:他们给我帮助信息(选项列表),该信息指示我的选项规范中存在语法错误。

xed -i -as 0xb4 Halt7.objxed -ir -as 0xb4 Halt7.objxed -i -as 0xb4 -ae 0x121 Halt7.objxed -ir -as 0xb4 -ae 0x121 Halt7.obj

以下一项是必需的:

-i input_file(解码pecoff格式的文件)-ir raw_input_file(解码未格式化的原始二进制文件)

可选参数:

-as addr(开始拆卸的地址。使用0x作为十六进制地址)-ae addr(结束拆卸的地址。使用0x作为十六进制地址)

下面由彼得·科德斯提供的正确答案

此选项正确地反汇编了文件,但显示了从零偏移量开始的地址。xed -i Halt7.obj

XDIS 0:PUSH BASE 55推送ebpXDIS 1:DATAXFER BASE 8BEC mov ebp,espXDIS 3:PUSH BASE 51推ecxXDIS 4:DATAXFER BASE C745FC00000000 mov dword ptr [ebp-0x4],0x0XDIS b:DATAXFER BASE 8B45FC mov eax,dword ptr [ebp-0x4]XDIS e:PUSH BASE 50推式eaxXDIS f:CALL BASE E80C000000调用0x20XDIS 14:BINARY BASE 83C404添加esp,0x4XDIS 17:DATAXFER BASE B801000000 mov eax,0x1XDIS 1c:DATAXFER BASE 8BE5 mov esp,ebpXDIS 1e:POP BASE 5D pop ebpXDIS 1f:RET BASE C3退出

这是我想要实现的,语法由下面的Peter Cordes提供xed -i Halt7.obj -b 0xb4

XDIS b4:PUSH BASE 55推送ebpXDIS b5:DATAXFER BASE 8BEC mov ebp,espXDIS b7:PUSH BASE 51 push ecxXDIS b8:DATAXFER BASE C745FC00000000 mov dword ptr [ebp-0x4],0x0XDIS bf:DATAXFER BASE 8B45FC mov eax,dword ptr [ebp-0x4]XDIS c2:PUSH BASE 50推式eaxXDIS c3:CALL BASE E80C000000调用0xd4XDIS c8:BINARY BASE 83C404添加esp,0x4XDIS cb:DATAXFER BASE B801000000 mov eax,0x1XDIS d0:DATAXFER BASE 8BE5 mov esp,ebpXDIS d2:POP BASE 5D pop ebpXDIS d3:RET BASE C3 ret
intel disassembly xed
1个回答
1
投票

-i -as告诉它输入文件是-as。然后还有杂散参数0xb4Halt7.obj,它们不是任何选项的参数。

您必须在-i-ir之后保留文件名作为下一个选项。

xed -as 0xb4 -ae 0x121  -i Halt7.obj

我认为-as-ae仅限制了反汇编指令的范围。 他们不更改反汇编的任何指令旁边打印的地址

我认为您真正想要的是使用-b设置base地址:

xed -i a.out  -b 0x55000

为Linux PIE可执行文件产生这种反汇编。

# SECTION 13                     .text addr 10e0 offset 10e0 size 1541
XDIS 560e0: WIDENOP   BASE       F30F1EFA                 nop edx, edi
XDIS 560e4: LOGICAL   BASE       31ED                     xor ebp, ebp
XDIS 560e6: DATAXFER  BASE       4989D1                   mov r9, rdx
XDIS 560e9: POP       BASE       5E                       pop rsi
XDIS 560ea: DATAXFER  BASE       4889E2                   mov rdx, rsp
XDIS 560ed: LOGICAL   BASE       4883E4F0                 and rsp, 0xfffffffffffffff0
XDIS 560f1: PUSH      BASE       50                       push rax
XDIS 560f2: PUSH      BASE       54                       push rsp
XDIS 560f3: MISC      BASE       4C8D05E6050000           lea r8, ptr [rip+0x5e6] <__libc_csu_fini+0x55000>
XDIS 560fa: MISC      BASE       488D0D6F050000           lea rcx, ptr [rip+0x56f] <__libc_csu_fini+0x54f90>
XDIS 56101: MISC      BASE       488D3D62010000           lea rdi, ptr [rip+0x162] <__libc_csu_fini+0x54b8a>
XDIS 56108: CALL      BASE       FF15D22E0000             call qword ptr [rip+0x2ed2] <__libc_csu_fini+0x57900>
XDIS 5610e: SYSTEM    BASE       F4                       hlt

...

[没有-b选项,图像基是0(并且.text节将0x10e0开始到文件中,因此我们得到]]

# SECTION 13                     .text addr 10e0 offset 10e0 size 1541

SYM _start:
XDIS 10e0: WIDENOP   BASE       F30F1EFA                 nop edx, edi
XDIS 10e4: LOGICAL   BASE       31ED                     xor ebp, ebp
XDIS 10e6: DATAXFER  BASE       4989D1                   mov r9, rdx
XDIS 10e9: POP       BASE       5E                       pop rsi
XDIS 10ea: DATAXFER  BASE       4889E2                   mov rdx, rsp
XDIS 10ed: LOGICAL   BASE       4883E4F0                 and rsp, 0xfffffffffffffff0
XDIS 10f1: PUSH      BASE       50                       push rax
XDIS 10f2: PUSH      BASE       54                       push rsp
XDIS 10f3: MISC      BASE       4C8D05E6050000           lea r8, ptr [rip+0x5e6] <__libc_csu_fini>
XDIS 10fa: MISC      BASE       488D0D6F050000           lea rcx, ptr [rip+0x56f] <__libc_csu_init>
XDIS 1101: MISC      BASE       488D3D62010000           lea rdi, ptr [rip+0x162] <main>
XDIS 1108: CALL      BASE       FF15D22E0000             call qword ptr [rip+0x2ed2] <__libc_csu_fini+0x2900>
XDIS 110e: SYSTEM    BASE       F4                       hlt
XDIS 110f: NOP       BASE       90                       nop

...

似乎-b选项弄乱了符号信息。没有它,输出将分解为功能。

但是使用-b,它只是平坦的,在函数顶部没有标记。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.