59得票2回答
在Mac OS X中,你最喜欢的反汇编工具是什么?

我正在使用otool、nm和Fraise文本编辑器来反汇编Mach-o二进制文件。此时我的工作流程非常简单: 列出已存在的符号。 nm -g 2. 获取反汇编代码。 otool -vt 3. 将此输出复制并粘贴到文本文件中。 4. 在文本编辑器中阅读并注释代码 :) 我正在寻找简化...

55得票3回答
为什么这个内存地址 %fs:0x28 ( fs[0x28] ) 有一个随机值?

我写了一段C代码,然后我反汇编它并阅读寄存器,以便理解程序在汇编中的工作方式。int test(char *this){ char sum_buf[6]; strncpy(sum_buf,this,32); return 0; } 我一直在检查的代码片段是测试函数。当我...

55得票2回答
使用objdump反汇编扁平二进制文件

我能否使用objdump来反汇编一个扁平的二进制文件? 我熟悉如何使用以下命令来反汇编结构化的二进制可执行文件,例如ELF文件:objdump -d file.elf 但是,如果我有一个扁平的二进制文件,我知道它应该加载在例如0xabcd1000地址处,我能要求objdump将其反汇编吗?我...

45得票1回答
长的多字节NOP:通常理解为宏或其他符号表示法。

众所周知,x86(和x86_64)处理器不仅具有单字节的NOP指令,还具有各种类型的多字节NOP类指令。 以下是我找到的: 推荐使用AMD,参考AMD家族15h处理器软件优化指南,文档#47414,第5.8节“使用操作数大小覆盖和多字节NOP进行代码填充”,第94页)90 ...

40得票2回答
找出一个静态C库有哪些函数。

我有一个静态的C库(比如说 mylib.a),我想知道里面实现了哪些函数。我没有相应的头文件。我需要的是像Java中javap的等效工具。

38得票4回答
如何拆解一个裁剪过的应用程序的主函数?

假设我编译了下面的应用程序并剥离了它的符号。#include <stdio.h> int main() { printf("Hello\n"); } 构建过程:gcc -o hello hello.c strip --strip-unneeded hello 如果应用程序...

36得票2回答
在汇编语言中,"DS:[40207A]"是什么意思?

0040103A CALL DWORD PTR DS:[40207A] USER32.MessageBoxA 什么是DS:的含义?

36得票1回答
如何从文件中读取和执行GDB命令?

我在目标文件(例如exeFile)上运行GDB,想根据几个命令来对其进行检查。如何按照文件中的每一行执行这些命令(而不是每次输入这些命令在GDN中运行)? 例如 - 我想在以下位置设置断点 - break *0x8048e19 break *0x8048e32 break *0x8048e6...

33得票3回答
objdump如何通过-S选项显示源代码?

二进制文件中是否有源文件的引用?我尝试在二进制文件上运行strings命令,但没有找到任何列出源文件的引用...

32得票3回答
我如何在编译过程中查看解析树、中间代码、优化代码和汇编代码?

我正在学习编译器课程,程序的编译分为以下步骤: 词法分析 语法分析 语义分析 中间代码生成 代码优化 目标代码生成 如何查看每个步骤的输出?例如,我想在语法分析后查看解析树。 我正在Linux机器上使用GCC编译器编译程序。 我们可以通过在 GCC 中使用 -Wa 编译器选项来查看...