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

发布于 2024-07-05 00:23:16 字数 266 浏览 6 评论 0原文

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

我正在编写一个插件 DLL,其中包含一个非常罕见的数据中止(<5% 的时间),我已将其范围缩小到特定函数(通过 dumpbin 和地址)由数据中止输出)。 然而,这是一个相当大的函数,我想缩小它的范围。 我知道这是在 memset() 调用中发生的,但该特定函数大约有 35 个,所以我希望通过查看反汇编我可以找出问题实际上出在哪里。

Does anyone know of a disassembler for ARMV4i executables and DLLs?

I've got a plug-in DLL I'm writing with a very rare data abort (<5% of the time) that I have narrowed down to a specific function (via dumpbin and the address output by the data abort). However, it is a fairly large function and I would like to narrow it down a little. I know it's happening in a memset() call, but that particular function has about 35 of them, so I was hoping that by looking at the disassembly I could figure out where about the problem actually is.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

往日 2024-07-12 00:23:16

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

对于您的情况,您可以要求编译器生成已编译代码的汇编列表吗? 这可能会帮助您获得一些范围。

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

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

A couple of years ago I found an ARM disassembler I used while doing some embedded work. However, I don't remember its name - though I think it was part of a larger package like an emulator or something.

In your case, could you ask your compiler to generate an assembly listing of the compiled code? That might help give you some scope.

Failing that, you could break up your function into one or more new functions, if all you can get is the stack trace. Then break up the new function into one or more again. This is the tried-and-true "divide and conquer" method. And if you have 35 calls to memset() in one function, it might be a good idea from a design standpoint too!

Update: I found the package I used: ARMphetamine. It worked for the ARM9 code I was developing, but it looks like it hasn't been updated in quite some time.

没有心的人 2024-07-12 00:23:16

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

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

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

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

-Adam

ChARMeD is a Windows Mobile / Pocket PC / Win CE (for ARM CPUs) Disassembler and Assembler

You might also look at BDASM, a shareware disassembler - later versions have ARM plugins. The website seems to be down, but if you search for it you'll find the shareware distribution.

The source code for the simple ARM disassembler, DISARM, is available as well.

The binutils (linux compiler tools) objdump can be used to produce disassembly, "objdump -b binary -m arm7tdmi -D file_name"

-Adam

叹沉浮 2024-07-12 00:23:16

我相信 IDA Pro 会做你想要的。 O'Reilly Security Warrior 书中提到了它,并且我在 Windows Mobile 开发人员论坛上看到过它的推荐。

I believe that IDA Pro will do what you want. It was mentioned in the O'Reilly Security Warrior book and I've seen it recommended on Windows Mobile developer forums.

淡紫姑娘! 2024-07-12 00:23:16

IDA Pro肯定会做ARM反汇编。 他们(Datarescue)曾经在当地时间晚上 11 点左右为我安排了许可证,所以我想推荐他们......

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

以下是新发布者的链接:http://www.hex-rays.com/idapro/< /a>

IDA Pro will definitely do ARM disassembly. And they (Datarescue) once arranged me a licence at about 11PM local time, so I like to recommend them...

I see from http://www.datarescue.com/idabase/ that there's been some rearrangement of the company, but I guess it's still a good product.

Here's the link to the new publisher: http://www.hex-rays.com/idapro/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文