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

时间:2008-08-22 13:17:48

标签: windows-mobile arm disassembly

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

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

4 个答案:

答案 0 :(得分:3)

我相信IDA Pro会做你想做的事。在O'Reilly Security Warrior一书中提到过,我已经在Windows Mobile开发者论坛上看到了它。

答案 1 :(得分:3)

IDA Pro肯定会进行ARM反汇编。他们(Datarescue)曾在当地时间晚上11点左右安排了我的执照,所以我想推荐他们......

我从http://www.datarescue.com/idabase/看到公司有一些重组,但我想这仍然是一个很好的产品。

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

答案 2 :(得分:1)

ChARMeD是Windows Mobile / Pocket PC / Win CE(适用于ARM CPU)反汇编程序和汇编程序

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

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

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

- 亚当

答案 3 :(得分:0)

几年前,我发现了一个我在进行嵌入式工作时使用的ARM反汇编程序。但是,我不记得它的名字 - 虽然我认为它是像模拟器之类的更大包的一部分。

在您的情况下,您是否可以要求编译器生成已编译代码的汇编列表?这可能会对你有所帮助。

如果失败了,你可以把你的函数分解成一个或多个新函数,如果能得到的就是堆栈跟踪。然后再将新功能分解为一个或多个。这是经过验证的“分而治之”的方法。如果你在一个函数中有35次调用memset(),那么从设计的角度来看也是一个好主意!

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