2018年3月13日 星期二

C語言-寫入組合語言

C語言-寫入組合語言


用Dev-C 做舉例說明

以下程式碼:




熟悉組合語言的人應該都很清楚

用Ollydbg去分析的話,跟這邊有點差異性,OD是從右到左

而devc的asm語法卻是由左到右

簡單分析一下流程

__asm("mov _a, %eax");

定義了 a與b 各等於 1

mov _a, %eax

這邊的eax就是暫存器

而" _a "代表著變數 a


把a的值放入eax暫存器裡面

這樣一條組合語言就結束了



__asm("mov _b, %ebx");


這句也是同樣理解

把b的值放入ebx暫存器裡面


__asm("add %ebx, %eax");


add是"加"的意思,把ebx+eax,將結果放入eax,這邊是2


__asm("mov %eax, _a");

最後一句,把eax的值放入a裡面

把2放入a

最後印出a的值,等於2







有著作權,請勿轉載。若要分享,請註明本篇來源。




Ollydbg 2.01 繁體中文版

Ollydbg 2.01 繁體中文版 Ollydbg 2.01 繁體中文版下載: Mega:   https://mega.nz/#!I2Qy1aQD!-T5zO3PaANjBHU73I4NlkY8SHMxRptbBV8TpmeFt1fo GD: h...