首页
社区
课程
招聘
[求助]请懂得arm thumb的机器码计算进来...
发表于: 2011-9-28 13:33 8367

[求助]请懂得arm thumb的机器码计算进来...

2011-9-28 13:33
8367
0006E7BA 31 48             LDR     R0, =0x1042
0006E880 42 10 00 00       dword_6E880 DCD 0x1042

逆查3148机器码二进制:
0x3148=0x4831=01001000 00110001

0100 1000 0011 0001

查表得到:LDR = 01001
自己计算出来:
0006E880-0006E7BA=0xC6/2=0x63=01100011

LDR =>01001
R0 => 0000
immed =>01100011

0100 1000 0011 00011

问题发现在编移量中
正确的是0001
为什变成00011

但是jump计算编移时也是这个公式?
arm thumb的机器码计算,用google or baidu寻找很久也没有相关教程。只找到arm汇编体系结构的英文手册,而且它表也不是太懂 *_*

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 503
活跃值: (80)
能力值: (RANK:280 )
在线值:
发帖
回帖
粉丝
2
如果我没记错的话,计算偏移的时候用的不是当前地址,而是当前地址+4,并且第1位必须是0,也就是(0x0006E7BA+4)&0xFFFFFFFD = 0x6E7BC
(0x0006E880-0x0006E7BC)>>2 =0x31
2011-9-28 21:03
0
雪    币: 335
活跃值: (671)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
多谢楼主,请一下楼主相关计算机器码内容?可以在什么教程或网站上可以取到真经?
2011-9-28 22:29
0
雪    币: 503
活跃值: (80)
能力值: (RANK:280 )
在线值:
发帖
回帖
粉丝
4
我很久没碰ARM和THUMB了,要查的话直接上arm.com吧
另外好像你才是楼主啊
2011-9-28 23:12
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
“但是jump计算编移时也是这个公式?”
学了个办法如下:
(目标地址-当前地址)/2-2=偏移量,后面加上相应跳转指令(如强跳E0等)

确实没找到Thumb的计算跳转工具,其它指令可以用宇宙青年的CeleASM.exe计算。不过上面加上一句code16喔,例如计算nop
code16
nop
点击确定,计算得46c0——》c046
2011-10-10 07:47
0
游客
登录 | 注册 方可回帖
返回