【问题标题】:How to convert machine code to readable assembly (IDA free)如何将机器代码转换为可读的程序集(无 IDA)
【发布时间】:2015-09-05 18:16:51
【问题描述】:

我需要将很多机器代码十六进制转换为汇编。我正在使用 IDA 的免费版本。我相信它可以做到这一点,但是每当我以 raw、bin、hex、exe、dmp 格式输入机器代码时,它都会像这样打开:

seg000:00010  32 34 35 32 20 33 31 35  30 20 65...      2452 3150 e0ff 3

但我想要类似的东西:

seg000:00010   2452 3150 e0ff 3...moreHex           f..b...%..3k..

这些问题很接近,但对我来说不够具体。 How to convert machine code to assembly code?
How might I convert Intel 80386 Machine Code to Assembly Language?

【问题讨论】:

  • 您是否在 IDA 中输入字节?还是加载文件?你不需要 IDA 只是为了拆解东西。如果你有一个常规的 Windows exe,你可以使用 objdump,在 Linux 上可以使用 apt-get binutils,在 Windows 上可以使用 cygwin。如果你有一个带有 x86 代码的原始 bin 文件,你可以使用 ndisasm,在 Linux 上使用 apt-get ndisasm 或在 Windows 上使用 cygwin。
  • 你想要的样本输出不是“汇编”,所以你的问题不清楚。

标签: assembly ida machine-code


【解决方案1】:

您的问题含糊不清,我不确定您使用的是什么操作系统,但我会尽力而为。

下载适用于 Windows 的十六进制编辑器。一个不错的免费工具是HxD

创建一个新文件并在左侧区域键入您的字节。 ASCII 表示将显示在右侧,这可能意味着也可能没有任何意义。将文件另存为 code.bin 之类的文件。然后在 IDA Free 中打开该文件,并指定“二进制文件”作为文件类型并选择处理器类型,我假设它是 Intel x86 变体之一,例如 Intel Pentium 4。一旦加载文件,IDA 将不会因为这是一个原始文件,所以实际上不能做任何事情,因此您必须通过选择地址 0 然后按“c”键将字节转换为代码来指定代码的位置。

【讨论】:

  • 好答案。我真的需要整个程序吗?只显示一个功能的缺点是什么?原谅我的无知,我对这个低级的东西很陌生。 (我之前试图用 txt 编辑器将它保存为 bin)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 2011-04-07
  • 2015-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多