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

我有一个正在写的插件DLL,它具有非常罕见的data abort (少于5%的时间),我已经缩小到特定的功能(通过dumpbin和data abort输出的地址)。 但是,它是一个相当大的函数,我想将其范围缩小一点。 我知道它是在memset()调用中发生的,但是该特定函数有大约35个它们,因此我希望通过查看反汇编,我可以弄清楚问题出在哪里。

===============>>#1 票数:3

我相信IDA Pro会做您想要的。 O'Reilly Security Warrior一书中提到了它,我在Windows Mobile开发者论坛上看到了推荐它。

===============>>#2 票数:3 已采纳

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

我从http://www.datarescue.com/idabase/看到公司已经进行了一些重新安排,但我想它仍然是一个很好的产品。

这是新发布者的链接: http : //www.hex-rays.com/idapro/

===============>>#3 票数:1

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

您可能还会看到BDASM,一种共享软件反汇编程序-更高版本具有ARM插件。 该网站似乎已关闭,但是如果您搜索它,则会找到共享软件发行版。

还提供了简单的ARM反汇编程序DISARM的源代码。

binutils(Linux编译器工具)objdump可用于产生反汇编,“ objdump -b二进制-m arm7tdmi -D file_name”

-亚当

===============>>#4 票数:0

几年前,我发现在做一些嵌入式工作时使用了一个ARM反汇编程序。 但是,我不记得它的名字-尽管我认为它是一个更大的程序包(如模拟器或类似程序)的一部分。

就您而言,您是否可以要求编译器生成已编译代码的程序集列表? 这可能会帮助您扩大范围。

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

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

  ask by Adam Haile translate from so

未解决问题?本站智能推荐: