527得票17回答
如何在GCC中从C/C++源代码获取汇编输出?

如何做到这一点? 如果我想分析某个东西的编译过程,我该如何获取生成的汇编代码?

172得票8回答
如何在安卓平台上反编译APK或DEX文件?

在Android平台上,是否有可能反编译APK包或DEX文件?是否有工具可以对APK文件进行反编译?

158得票14回答
如何查看C++程序的汇编代码?

如何查看C++程序的汇编代码? 有哪些常用的工具可以实现这一功能?

136得票10回答
在Linux中如何拆解二进制可执行文件以获取汇编代码?

有人告诉我要使用反汇编器。 gcc 有内置的工具吗?最简单的方法是什么? 有人建议我使用反汇编器。请问是否 gcc 内置了相关工具?如何实现最简单的方法?

117得票11回答
如何使用objdump分解单个函数?

我在我的系统上安装了一个二进制文件,并想查看给定函数的反汇编代码。最好使用objdump,但其他解决方案也可以接受。 从这个问题中,我了解到如果我只知道边界地址,就可以对代码的一部分进行反汇编。从这个答案中,我了解到如何将我的拆分调试符号转换回单个文件。 但是,即使在单个文件上操作,即使反...

102得票2回答
这里的@plt是什么意思?

0x00000000004004b6 <main+30>: callq 0x400398 <printf@plt> 有人知道吗? 更新 为什么两个disas printf会给我不同的结果?(gdb) disas printf Dump of assembler...

72得票5回答
如何编写反汇编器?

我有兴趣编写一个x86反汇编器作为教育项目。 我找到的唯一真正的资源是Spiral Space的"如何编写反汇编器"。虽然它提供了关于反汇编器各个组件的良好高层级描述,但我对更详细的资源感兴趣。我还快速查看了NASM的源代码,但这有点难以学习。 我意识到这个项目的主要挑战之一是我将要处理相...

72得票11回答
如何使用GDB分解内存范围?

我尝试使用GDB反汇编程序以查看系统调用的汇编指令(我认为是INT指令)和处理程序。我编写了一个小程序(见下文),用于打开和关闭文件。 我能够通过GDB跟踪到fopen的调用,直到它执行了一个call指令。 但是当我尝试告诉GDB“disassemble 0x....”(调用地址)时,它回...

68得票8回答
如何拆解、修改并重新组装Linux可执行文件?

有没有办法实现这个?我尝试使用了objdump,但是它无法产生任何汇编输出,并且也不被我知道的任何汇编器接受。我想能够更改可执行文件中的指令,然后进行测试。

64得票2回答
GCC如何优化循环中未使用的变量递增?

我写了这个简单的C程序:int main() { int i; int count = 0; for(i = 0; i < 2000000000; i++){ count = count + 1; } } 我想查看gcc编译器如何优化这个循...