首页
社区
课程
招聘
[求助]PUSH.W机器码疑惑?
发表于: 2014-5-23 21:25 4897

[求助]PUSH.W机器码疑惑?

2014-5-23 21:25
4897
今天IDA Pro 6.1 反汇编一个文件,这个文件是我用NDK编译的,原版Android.mk稍微修改了一下,注释了其中的LOCAL_ARM_MODE := arm。我是想编译为Thumb指令。相关信息如下:
.plt:00001198 ; File Name: F:\android\android-ndk-r8b\project\libz.so
.plt:00001198 ; Format: ELF for ARM (Shared object)
.plt:00001198 ; Needed Library 'libc.so'
.plt:00001198 ; Needed Library 'libstdc++.so'
.plt:00001198 ; Needed Library 'libm.so'
.plt:00001198 ; Shared Name 'libz.so'
.plt:00001198 ;
.plt:00001198 ; EABI version: 5
.plt:00001198 ;
.plt:00001198 ; Source File : 'adler32.c'
.plt:00001198 ; Source File : 'compress.c'
.plt:00001198 ; Source File : 'crc32.c'
.plt:00001198 ; Source File : 'gzclose.c'
.plt:00001198 ; Source File : 'gzlib.c'
.plt:00001198 ; Source File : 'gzread.c'
.plt:00001198 ; Source File : 'gzwrite.c'
.plt:00001198 ; Source File : 'uncompr.c'
.plt:00001198 ; Source File : 'deflate.c'
.plt:00001198 ; Source File : 'trees.c'
.plt:00001198 ; Source File : 'zutil.c'
.plt:00001198 ; Source File : 'inflate.c'
.plt:00001198 ; Source File : 'infback.c'
.plt:00001198 ; Source File : 'inftrees.c'
.plt:00001198 ; Source File : 'inffast.c'
.plt:00001198
.plt:00001198 ; Processor       : ARM
.plt:00001198 ; Target assembler: Generic assembler for ARM
.plt:00001198 ; Byte sex        : Little endian

其中一个函数开头如下:
.text:000020CC ; =============== S U B R O U T I N E =======================================
.text:000020CC
.text:000020CC
.text:000020CC                 EXPORT gzdopen
.text:000020CC gzdopen
.text:000020CC                PUSH.W          {R4-R10,LR}

对应的机器码如下:
000020CC  2D E9 F0 47

但是这个跟《ARM Architecture Reference Manual(2nd Edition)》中介绍的STM机器码明显对不上啊?

不知道这个PUSH.W 和STMFD什么关系?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 53
活跃值: (280)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
http://bbs.pediy.com/showthread.php?p=1288360#post1288360
2014-5-28 19:20
0
游客
登录 | 注册 方可回帖
返回
//