草庐IT

disassembly

全部标签

linux - 如何反汇编、修改然后重新组装 Linux 可执行文件?

无论如何,这可以做到吗?我使用了objdump,但这不会产生我所知道的任何汇编程序都可以接受的汇编输出。我希望能够更改可执行文件中的指令,然后再对其进行测试。 最佳答案 我认为没有任何可靠的方法可以做到这一点。机器码格式非常复杂,比汇编文件更复杂。实际上不可能获取已编译的二进制文件(例如,ELF格式)并生成将编译为相同(或足够相似)二进制文件的源汇编程序。要了解这些差异,请将GCC直接编译到汇编器的输出(gcc-S)与objdump在可执行文件上的输出(objdump-D)进行比较。我能想到两个主要的并发症。首先,由于指针偏移等原因

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

有人告诉我使用反汇编程序。gcc有内置的东西吗?最简单的方法是什么? 最佳答案 我不认为gcc有它的标志,因为它主要是一个编译器,但另一个GNU开发工具有。objdump采用-d/--disassemble标志:$objdump-d/path/to/binary反汇编如下:080483b4:80483b4:8d4c2404lea0x4(%esp),%ecx80483b8:83e4f0and$0xfffffff0,%esp80483bb:ff71fcpushl-0x4(%ecx)80483be:55push%ebp80483bf:89

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

有人告诉我使用反汇编程序。gcc有内置的东西吗?最简单的方法是什么? 最佳答案 我不认为gcc有它的标志,因为它主要是一个编译器,但另一个GNU开发工具有。objdump采用-d/--disassemble标志:$objdump-d/path/to/binary反汇编如下:080483b4:80483b4:8d4c2404lea0x4(%esp),%ecx80483b8:83e4f0and$0xfffffff0,%esp80483bb:ff71fcpushl-0x4(%ecx)80483be:55push%ebp80483bf:89