反彙編學習日記2010 11 14

2021-05-23 14:07:09 字數 502 閱讀 4687

昨天的第乙個例子是《windows api》這本書裡的,《天書夜談》第一章講的是彙編指令與c語言。

這是一本好書!

乙個最簡單的c程式反彙編後會是什麼樣子呢?debug和release的區別是編譯出來的彙編**是不一樣的。

一些彙編小知識:

call的本質是push+jmp,ret本質是pop+jmp

xor eax,eax   相當於mov eax,0  ,只不過這樣占用記憶體小,速度快

lea edi,[ebp-0cch]  相當於mov edi,ebp-0cch 但後者在語法上是錯誤的

0cch :int3指令的機器碼(不太懂),初始化的記憶體好多cc,應該跟這個有關,「這樣發生意外時執行堆疊裡面的內容會引發除錯中斷」

三種函式呼叫方式:

pascal方式、winapi方式(_stdcall)、c方式(_cdecl)

winapi、c方式引數從右到左進入堆疊,前者函式返回前自行清理堆疊。

堆疊中,頂部被認為是位址小的區域。

學習筆記 2011 07 03 反彙編

include using namespace std int main 00c514e6 jmp main 27h 0c514a7h int a 0 00c514e8 mov dword ptr a 0 return 0 00c514ef xor eax,eax 00c514f1 pop edi ...

IDA反彙編學習(一)

toc c語言 if a b 彙編 mov eax,a cmp eax,b a b?jne l1 否 跳過後續指令 mov x,1 是,x,y 賦值 mov y,2 l1 對於迴圈語句,其實也是一樣的,也是通過跳轉指令來實現。c語言 while val1 val2 彙編 mov eax,val1 把...

通過VC學習反彙編 彙編初步

因工作中經常用到反彙編解一些演算法,故對次有一定的接觸,為了更進一步理解c c vc等他們的特性,記下一些東西,就當自娛自樂了。1.1 暫存器 32位cpu所含有的暫存器分類簡介 1.1.1 資料暫存器 eax ebx ecx和edx 資料暫存器主要用來儲存運算元和運算結果等資訊。暫存器的低16位分...