arm裸机【5】 --- 反汇编介绍
生活随笔
收集整理的這篇文章主要介紹了
arm裸机【5】 --- 反汇编介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 1、反匯編工具objdump的使用簡介
- 反匯編的原理&為什么要反匯編
- 反匯編文件的格式和看法
- 2、初識指令地址
- 3、展望:反匯編工具幫助我們分析鏈接腳本
1、反匯編工具objdump的使用簡介
反匯編的原理&為什么要反匯編
arm-linux-objdump -D led.elf > led_elf.disobjdump是gcc工具鏈中的反匯編工具,作用是由編譯鏈接好的elf格式的可執行程序反過來得到匯編源代碼-D表示反匯編 > 左邊的是elf的可執行程序(反匯編時的原材料),>右邊的是反匯編生成的反匯編程序反匯編的原因有以下:
1.逆向破解。
2.調試程序時,反匯編代碼可以幫助我們理解程序(我們學習時使用objdump主要目的是這個),尤其是在理解鏈接腳本、鏈接地址等概念時。
3. 把C語言源代碼編譯鏈接生成的可執行程序反匯編后得到對應的匯編代碼,可以幫助我們理解C語言和匯編語言之間的對應關系。非常有助于深入理解C語言。
反匯編文件的格式和看法
(匯編 assembly 反匯編 dissembly)
標號地址、標號名字、指令地址、指令機器碼、指令機器碼反匯編到的指令
擴展:ARM匯編中用地址池方式來實現非法立即數
2、初識指令地址
下載燒錄執行的bin文件,內部其實是一條一條的指令機器碼。這些指令每一條都有一個指令地址,這個地址是連接的時候ld給指定的(ld根據我們寫的鏈接腳本來指定)
3、展望:反匯編工具幫助我們分析鏈接腳本
反匯編的時候得到的指令地址是鏈接器考慮了鏈接腳本之后得到的地址,而我們寫代碼時通過指定連接腳本來讓鏈接器給我們鏈接合適的地址。
但是有時候我們寫的鏈接腳本有誤(或者我們不知道這個鏈接腳本會怎么樣),這時候可以通過看反匯編文件來分析這個鏈接腳本的效果,看是不是我們想要的,如果不是可以改了再看。
總結
以上是生活随笔為你收集整理的arm裸机【5】 --- 反汇编介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今天在进行《系统工程理论与实践》论文中遇
- 下一篇: W5100的逆袭