-
-
[求助]PUSH.W的疑惑?
-
发表于:
2014-5-27 10:23
8007
-
今天又问大家一次。
今天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
.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什么关系?
这个PUSH.W和PUSH什么关系?
[课程]Linux pwn 探索篇!