代码之家  ›  专栏  ›  技术社区  ›  Adam Haile

ARMV4i(Windows Mobile 6)本机代码反汇编程序

  •  2
  • Adam Haile  · 技术社区  · 17 年前

    有人知道反汇编程序吗 ARMV4i 可执行文件和DLL?

    我有一个插件DLL,我正在用一个非常罕见的DLL编写 data abort (<5%的时间),我已经缩小到一个特定的函数(通过垃圾箱和地址输出 数据中止 ).然而,这是一个相当大的功能,我想把它缩小一点。我知道这发生在 memset() 调用,但该特定函数大约有35个,所以我希望通过查看反汇编,我能找出问题的实际所在。

    4 回复  |  直到 12 年前
        1
  •  3
  •   Will Dean    17 年前

    IDA Pro肯定会进行ARM拆卸。他们(Datarescue)曾在当地时间晚上11点左右为我安排了一个许可证,所以我想推荐他们。..

    我明白了 http://www.datarescue.com/idabase/ 公司进行了一些重组,但我想这仍然是一个好产品。

    以下是新出版商的链接: http://www.hex-rays.com/idapro/

        2
  •  4
  •   Brian Lyttle    17 年前

    我相信 IDA Pro 会做你想做的事。O'Reilly的《安全战士》一书中提到了它,我在Windows Mobile开发者论坛上看到过它的推荐。

        3
  •  1
  •   Adam Davis    17 年前

    ChARMeD 是Windows Mobile/Pocket PC/Win CE(适用于ARM CPU)的拆装器

    你也可以看看BDASM,一个共享软件反汇编程序——更高版本有ARM插件。该网站似乎已关闭,但如果你搜索它,你会找到共享软件分发版。

    简单ARM反汇编程序的源代码, DISARM ,也可用。

    binutils(linux编译器工具)objdump可用于生成反汇编,“objdump-b binary-m arm7tdmi-D file_name”

    -亚当

        4
  •  0
  •   Greg Hewgill    17 年前

    几年前,我发现了一个我在做一些嵌入式工作时使用的ARM反汇编程序。然而,我不记得它的名字了——尽管我认为它是一个更大的软件包的一部分,比如模拟器之类的。

    在您的情况下,您能否要求编译器生成已编译代码的程序集列表?这可能会给你一些空间。

    如果做不到这一点,你可以将你的函数分解为一个或多个新函数,如果你只能得到堆栈跟踪。然后再次将新函数分解为一个或多个。这就是久经考验的“分而治之”方法。如果你在一个函数中有35次调用memset(),从设计的角度来看,这可能也是一个好主意!

    更新:我找到了我使用的软件包: ARMphetamine 。它适用于我正在开发的ARM9代码,但看起来它已经有一段时间没有更新了。