您的位置 首页 编程

ARM指令机器码学习

以前,死活看不懂这个DLL文件的16进制(其实是二进制,为了好看,以16进制ASCII码显示),对一些高手使用IDA反汇编流口水,今天终于轮…

曾经,死活看不懂这个DLL文件的16进制(其实是二进制,为了美观,以16进制ASCII码显现),对一些高手运用IDA反汇编流口水,今日总算轮到俺上场了。
现在来看看这个指令一般的编码格局

——————————————————————————————————————————————————————
这个形似和英文原版不一样,现在来看看ARM Architecture Reference Manual里边的格局

——————————————————————————————————————————————————
仍是以这个为准安全点。现在看看这个最高四位的con到底是怎样决议的。

————————————————————————————————————————————————

————————————————————————————————————————————————————
上面这些条件都是可选的,ARM都有固定的指令。下面看看无条件指令。

——————在ARMv4架构中任何带条件域0b1111的都是不行猜测的。
看了那么多,现在来举个比方吧。
——————————————以branch指令为比方——————————————
引证驱动调试帮手作者的效果,并解说验证
———————————————————

Foxit Reader V1.1 for WinCE6.0

今日总算收拾清了PXA270上的WinCE6.0,为了方便给客户演示WinCE6.0的强壮,定制了一个增强型的操作体系。但WinCE6.0中现已不支持%&&&&&%等阅读器了。所以从网站上找了一个PPC版的Foxit Reader,把它放到WinCE6.0的设备上面运转,居然提示OS不支持,只能在PPC上面跑。看到这个提示有些绝望,但也有一丝期望。这个提示似乎是Foxit Reader运转时的提示框,与一般的“不是有用的Windows CE应用程序”是不一样的。已然这样,那阐明程序仍是运转起来了,仅仅检测OS时犯错,所以才会呈现如下图所示的提示。

想一想,假如让程序越过检测OS,是不是就能够正常运转呢。满怀着期望,用IDA反汇编了这个程序,并找到了对应的函数调用。

清楚明了,0x000182b4处是有条件的调用,假如改成肯定调用loc_0_182D0,按理就不会呈现那个提示框了,修正办法便是将BEQ改为B。

用UltraEdit将上面的0A改为EA,行将BEQ改成B,再拷贝到设备上面去,公然能够运转
——————————————————————————————————————————————————————
现在咱们解说这个B和BEQ机器码指令

这个原本这BEQ,这个con由EQ决议,依照上面的常识,应该是0b0000,所以高八位为0x0A,现在改成B——肯定跳转,这样con就变成了0b1110,所以0xEA 便是由此而来。OK竣工。
———————————————————————
这个指令机器码对驱动开发人员十分有协助,有时候画错电路图,假如不能反汇编修正代码就会无计可施了,假如能够就能够轻松为企业节省时间和本钱。
其实每个指令的机器码都有差异,不过有规则,查阅手册即可。我预备过段时间把eboot反汇编,把曾经一些编译疑问悉数处理。
参阅书本:ARM System Developers Guide: Designing and Optimizing System Software
——ARM System Developers Guide: Designing and Optimizing System Software——ARM嵌入式体系开发:软件设计与优化的英文原版——我个人感觉这是国内翻译ARM书本最好的一本之一,比杜XX的ARM体系结构与编程好千倍。 本书尽管说软件设计与优化,可是讲的硬件也许多,比方MMU和cache等,讲的精彩纷呈
下载地址:http://download.csdn.net/source/904273

ARM920T Technical Reference Manual——不多说了,想了解2440等的bootloader的人必定要看这个东西了,一些协处理器指令讲的很具体
下载地址:http://download.csdn.net/source/903240

ARM Architecture Reference Manual(2nd Edition) ——比较有价值的英文ARM书本
下载地址http://download.csdn.net/source/901433

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/276445.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部