殼**在一開始會使用pushad指令將所有的暫存器入棧,此時esp所指向的記憶體記錄著某乙個暫存器的值。
然後我們esp指向的記憶體處下乙個硬體記憶體訪問斷點
執行完殼**後會將所有的暫存器值出棧以平衡堆疊popad,cpu需要訪問原esp記錄的值,殼**解壓完程式**後,最後平衡堆疊時必然要從esp所指向的記憶體中讀取之前存入的某個暫存器的值,所以必定會觸發此斷點,此時離真正的oep也不遠了
pushad指令壓入32位暫存器,其入棧順序是:eax,ecx,edx,ebx,esp,ebp,esi,edi
脫殼 esp定律原理
本帖最後由 zf616545 於 2014 10 2 22 14 編輯 esp定律算是我們在脫殼當中最常使用的方法之一,也特別適合像我一樣的新手!而今天文章說的是esp脫殼的原理和分析!只有知道原理了,我們的技術才能走得列遠!一.準備知識 在我們開始討論esp定律之前,我先給你講解一下一些簡單的彙編...
反 「ESP定律「 的方法以及原理。
對於在2000 2005 左右出的一些殼,esp 定律無疑是他們的噩夢,它幾乎能對他們進行秒殺哦。當乙個外國的高手提出 堆疊平衡 的時候,這種方法被用來對付加了殼的程式,秒殺當時的很多殼。回到正題,堆疊平衡,我想知道一點破解的人都應該知道,它可以用於脫絕大部分的壓縮殼,一些早期的加密殼,想 upx,...
ESP定律的原理及其適用範圍
在我們開始討論esp定律之前,我先給你講解一下一些簡單的彙編知識。1.call 這個命令是訪問子程式的乙個彙編基本指令。也許你說,這個我早就知道了!別急請繼續看完。call真正的意義是什麼呢?我們可以這樣來理解 2.jmp到call的子程式位址處。例如 00401029.e8 da240a00 ca...