首页
/
每日頭條
/
生活
/
c語言反彙編分析
c語言反彙編分析
更新时间:2025-12-22 09:43:43

「反彙編系列主要是在linux平台下,從彙編層面分析c 的數據類型、函數調用、返回值、分支、循環等底層原理,希望對大家有幫助~」

【目錄】

1-------------x64 中常用的寄存器

2-------------彙編語言中的基本尋址方式

2.1 --------數據尋址方式

要對c 程序進行反彙編分析學習,需要一定的彙編知識,所以這裡就跟大家一些簡單學習下我們後面序列文章所需的知識點。

  1. Intel 指令組成

intel指令主要由以下6部分組成

c語言反彙編分析(C反彙編系列一)1

Fig 1

  1. x86_64 中常用的寄存器

c語言反彙編分析(C反彙編系列一)2

Fig 1

上圖中說明了各個寄存器的用途以及是否是保留它用(上面的蝌蚪文通俗易懂),這裡就不再翻譯贅述了。

  1. 彙編語言中的基本尋址方式

2.1 數據尋址方式

彙編語言中的指令操作的數據主要來自寄存器,立即數,内存。

立即尋址:指令所需的操作數直接包含在指令代碼中,就是常說的立即數且隻能出現在源操作數位置直接尋址操作數來源于(指令中直接指出的地址所指向的内存)MOV AX [2000H],這個方括号的意思是“以括号内的值作為地址,(所指向的内存)中存儲的值”MOV AX,x這裡的這個x是之前在數據段定義的變量,當彙編程序被彙編時,彙編器會計算出x的偏移值,然後替換掉原來的x所以在DEBUG模式下,看到的就不是變量名,而是變量名在數據段中的偏移地址寄存器尋址操作數來源于某個寄存器/是這個寄存器裡存儲的值比如我要把某個16位的數從BX複制到AX,那麼我可以用MOV AX,BX這裡的兩個操作數都是寄存器尋址寄存器間接尋址這就很好理解了,現在括号裡放的不是立即數了,放的是寄存器了,代表操作數在内存中,它的地址的括号内的寄存器中不過這個間接尋址有幾個注意點:1. 寄存器一般使用的是基址寄存器BP\BX或變址寄存器SI\DI2. 完整的形式應該是[段地址]:[段内偏移]3. 當未顯式指定段寄存器時,BX\SI\DI中是相對于DS段的偏移地址,BP是相對于SS段的偏移地址寄存器相對尋址操作數的地址 = 間址寄存器 偏移量同直接尋址一樣,偏移量可以是一個常量也可以是一個符号名或變量名例如MOV AX,[SI 10H]或MOV AX,ARRAY[SI]基址變址尋址操作數地址 = 基址寄存器 變址寄存器例如MOV AX,[BX SI]

2.與轉移地址有關的尋址方式

這四種尋址方式主要運用于轉移指令JMP和過程調用指令CALL首先要了解這兩個東西:标号,過程名(自己看,不講了)

尋址方式講解段内直接就是說我們現在程序運行到這裡需要發生一個轉跳去執行其他地方的一些代碼辣麼這些代碼在哪裡呢我們進行了一些運算,用當前IP的值加上指令中指定的偏移量,得到了一個地址然後我們就要跳到那裡去比如JMP func1偏移量可以是8位或者16位,相對的我們就要使用 SHORT func1或者NEAR PTR func1段間直接這個和段内直接的區别是什麼呢就是一個X86彙編程序,可能有幾個代碼段,當使用段間直接尋址時,需要改變段地址的值,相當于跳到了另一個代碼段,開始執行新的代碼比如JMP FAR PTR func1段内間接跟段内直接的區别是:要轉跳的地址放在了寄存器裡,而不是一個标号(參考一下2裡的寄存器簡介尋址吧)段間間接類似于段内間接,但是,間接尋址的地址不能直接放在寄存器裡,隻能放在内存單元中,而且是一個雙字

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
栗子頭發型男适合什麼臉型
栗子頭發型男适合什麼臉型
1、長臉、臉頰寬的男生剪這款樸叙俊的栗子頭”發型會更加分!2、橢圓臉它像鵝蛋一樣,上面額頭比下面下巴要寬,也是男士的标準臉型,什麼發型都合适,但是鵝蛋臉對于男士來說少了一些陽剛之氣,所以我建議大家在頭發上多一些線條感,比如說利用一些鬓發塑造臉部的線條感等,讓五官看起來更精緻立體。3、要想定型效果達到...
2025-12-22
廚房水槽怎麼挑選
廚房水槽怎麼挑選
1、根據櫥櫃台面尺寸決定水槽尺寸,因為水槽可以安裝台上,台中,台下,所以選擇的尺寸也不同。2、選不鏽鋼水槽時,材質厚度要适中,過薄會影響水槽使用壽命和強度,過厚容易損壞被洗滌的餐具。另外還要看不鏽鋼表面的平整度,如凹凸不平說明質量差。3、通常情況下,清洗容積較大的水槽實用性好,深度以20厘米左右比較...
2025-12-22
1.4529是什麼材質
1.4529是什麼材質
不鏽鋼材質。1.4529是在鹵化物介質和含硫氫酸性環境中具有非常高的抗點蝕和縫隙腐蝕能力的不鏽鋼,能有效抵抗氯離子應力腐蝕,在氧化和還原性介質中同樣具有良好的耐腐蝕性,穩定性良好,機械性能略優于904L,可用于-196到400℃的壓力容器制造。應用領域:煙氣脫硫裝置,磷酸生産用蒸發器、換熱器、過濾器和混合器,硫酸輸送裝置,冷凝器,滅火系統,海水過濾系統,近海工業中的液壓和回灌管道系統,紙漿系統,鹽
2025-12-22
餐桌品牌有哪些
餐桌品牌有哪些
1、聯邦,該品牌成立于1984年,是廣東聯邦家私集團的品牌,是十大生活家具品牌之一,曾獲中國名牌,廣東省著名商标。2、全友家居該品牌創立于1986年,來至于成都全友家私有限公司,是大型民用家具企業,曾獲中國名牌,中國規模最大的家具制造企業之一。3、曲美QM,該品牌來至于曲美家具集團股份有限公司,是集...
2025-12-22
農村房屋确權的好處有哪些
農村房屋确權的好處有哪些
1、農村房屋使用權,如果進行受理了那是因為辦事員不懂政策法規,所以也不會有結果,遙遙無期。但是政府和法院都可以判斷侵權行為是否成立,并做出公正裁決。2、農村房屋使用權一般不需要,房屋的矛盾都是侵權引起,房屋早已與分配時就已經完成确權行為,村裡應有原始分地記錄,如發生矛盾,調取房屋原始記錄,都有尺寸位...
2025-12-22
Copyright 2023-2025 - www.tftnews.com All Rights Reserved