1.迴圈,用得比較多,也是加密/驗證常用的
mov eax,dword ptr ss:[ebp-4]call ******xx //這一般是取長度
test eax,eax
@@loop:
jbe ******xx //長度為0,不做迴圈
mov edx,1 //從第乙個開始:delphi程式
mov ecx,dword ptr ss:[ebp-4]
movzx ecx,byte ptr ds:[ecx+edx-1] //取乙個字元
...... //其它操作,各人有異
...inc edx //取下乙個
dec eax
jnz @@loop //下一輪
2.取無效位址?
在處理中,經常看到有類似lea ecx,dword ptr ds:[ecx+ecx*2]的句子.3.對delphi 程式timer設定斷點心想,怎麼可能,這樣訪問不會出錯嗎?
不會,原來lea不會訪問位址後才取位址,而是直接取,呵呵,其實這個只是用
來做運算:ecx = ecx * 3;
方法:在模組中查詢cmp esi, 113 設定斷點
delphi 在處理timer時,settimer傳的timeproc 是0,因為delphi不通過**函式的方式,而是通過訊息實現。constructor ttimer.create(aowner: t***ponent);
begin
inherited create(aowner);
fenabled := true;
finterval := 1000;
fwindowhandl
彙編學習筆記
1 cpu的指令集 cpu內整合了不同功能的電路模組 如 加 減法器,比較器 正常工作所對應的不同高低電平 數電知識 組合語言是人對機器指令的語言表述。2 cpu對硬體的控制實際是訪問其記憶體 如顯示卡上整合有ram 視訊記憶體 和rom 裝有唯讀bios 源 被編譯成機器 後被載入記憶體。3 程式...
彙編學習筆記
彙編檔案為 s 檔案 因為c程式執行需要棧,設定好棧了之後就可以呼叫c程式了 bl delay 呼叫delay 暫存器移位 mov r0,r1,lsl 3 r1內容左移3位送r0 暫存器間接定址 ldr r1,r2 r2做位址取數送r1 基址變址定址 ldr r1,r2,4 r2 4作位址取數送r1...
彙編學習筆記
mov al,byte ptr x 記憶體向通用暫存器傳送資料 shl al,1 al中的資料進行邏輯左移一位,針對無符號數的 2運算 dec al 對al暫存器中的值進行自減一之後再把結果放到al暫存器中,其中涉及對al暫存器進行資料讀,並將資料傳送到運算暫存器中,並將運算器結果通過線路傳送到al...