標(biāo)題: 小學(xué)文化自學(xué)stm32反匯編 [打印本頁]

作者: 3lian    時(shí)間: 2014-3-1 01:25
標(biāo)題: 小學(xué)文化自學(xué)stm32反匯編
寫一段小程序研究STM32反匯編,本人小學(xué)文化英語字母都讀不全,那種班里倒數(shù)后三名類型的?促Y料全靠百度翻譯瞎蒙。。



0050 0020
就是棧頂啊, 下面就是向量表
1d00 0000
復(fù)位向量
5900 0000
nmi_handler
5b00 0000
hard_fault
5d00 0000
memory_fault
5f00 0000
bus_fault
6100 0000
usage_fault
下面是復(fù)位向量指向的地址0x1c
00f0 00f8
bl  # + 0x00   也就是0x1c + 0x00 + 4 = 跳到0x20
00f0 02f8
bl # + 0x04     就是0x20+ 0x04 + 4 = 跳到0x28
00f0 00b8
b # + 0x00      @ 0x24 + 4 = 0x28 跳到 0x28
為什么跳到同一個(gè)地址? 因?yàn)?B # + 0X00 可以去掉,我胡亂打了很多 BL 跟B
0e48
ldr r0, [pc,  # + 0x38]   把沒見過的放到后面的文字池里
也就是0x64  看那里是什么東西 1810 0240 這不是APB2ENR么
4ff0 3901
mov r1, # 0x39
0160
str r1, [r0]
0d48
ldr r0,  [pc, # + 0x34 ]  沒見過甩到池子里
0e49
ldr r1, [pc, # + 0x38]  甩后面池子里
0160
str r1, [r0]
4ff0 0102
mov r2, # 0x01
4ff0 0003
mov r3, # 0x00
0c4e
ldr r6, [pc, # 0x30] 后邊去
7047
bx lr
3260
str r2, [r6]
搞什么啊 鬧了半天程序?qū)戝e(cuò)了啊。。上一條指令都bx lr了下面指令都沒法執(zhí)行了,上面成了死循環(huán)了。
0b49
ldr r1, [pc, # + 0x30]
0139
subs r1, # 1
7ff4 fdaf
bne # - 0x06
3360
str r2, [r6]
0949
ldr r1, [pc, # + 0x38]
0139
subs r1, # 1
7ff4 fdaf
bne # - 0x06
7047
bxlr
7047
bxlr
7047
bxlr
7047
bxlr
7047
bxlr
7047
bxlr

下面的就是文字池了, 從0000那開始
作者: m182892    時(shí)間: 2014-3-1 09:23
天才常有,而伯樂不常有。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1