相关疑难解决方法(0)

如何在Linux中反汇编二进制可执行文件以获取汇编代码?

我被告知要使用反汇编程序.是否gcc有建于什么?最简单的方法是什么?

c++ linux assembly executable disassembly

62
推荐指数
4
解决办法
12万
查看次数

GNU汇编程序x86指令后缀如"mov.s"中的".s"如何工作?

GNU汇编程序似乎有一些方法可以控制为某些指令发出的操作码的替代形式.例如

.intel_syntax noprefix
mov   eax, ecx
mov.s eax, ecx
Run Code Online (Sandbox Code Playgroud)

处理上面的代码as test.s -o test.o && objdump -d test.o -M intel给出了以下反汇编:

0:   89 c8                   mov    eax,ecx
2:   8b c1                   mov    eax,ecx
Run Code Online (Sandbox Code Playgroud)

我们可以看到.s后缀似乎将89操作码切换到8b版本(并适当地更改了ModRM字节).

这种语法在GAS中如何工作?我找不到任何相关文件.

x86 assembly gnu-assembler objdump intel-syntax

5
推荐指数
1
解决办法
369
查看次数

试图组装反汇编程序的输出(例如objdump)

可能重复:
反汇编,修改然后重新组装Linux可执行文件

我被告知装配和拆卸不是反转.显然,你不能解组程序,将输出直接放入汇编程序,并期望它能够正确运行,因为信息丢失了.

我的问题是,为什么信息会丢失?还有什么信息丢失了?

assembly objdump

3
推荐指数
1
解决办法
2253
查看次数