Never Nop Tech

Never Nop Tech

創造意義,動手去做。

[ASM][轉] CE數據Label用法

標籤:
Label(*)

你只一個片段功能的話,就不必用到註冊名稱的方式,用標籤即可,
標籤就是意指"需要時,只經過一次"且不具有記憶,此特點請記住。
米字號請改為自己想要的label程式名稱

——————————————————————————–
叫出:
call *
效用:
叫出某段資料,且可以繼續讀下去底下的資料
(此段要介紹較麻煩些,用範例介紹)
範例:
※此段介紹到"dd",程式底下加上"dd"後面接上數字,等於這個程式管理著這個數字的意思。

※je=上面的比對相同時,跳躍至je後面寫的那個程式(可參考此篇–cmp的使用)                                            
h:
dd 0

XD: //XD此程式
call XD01 //調出XD01內的所有資料
jmp **** //****必為功能位置、程式(自己設定的程式)、或是還原位置,不然可能會斷線。

XD01:
cmp [h],1
je **** //跟上面那個米字號一樣意思,某個功能,還原位置
ret //這就是我要強調的了XD,如果沒有這個接在最後,就會斷線(底下沒有跳躍位置就會斷線),
       ret=跳回去程式繼續執行

上面這個程式,又同等於底下這個範例(兩個是相同意思的):
範例2:
h:
dd 0

XD:
cmp [h],1
je ****
jmp **** 





——————————————————————————–
集合以上所學的,可這樣完成出熱鍵版本的隱功能。

//——————————————————————
//名稱:隱身熱鍵版本
//
//Address:004DFBA9
//EIP:XD
//——————————————————————
[enable]
Registersymbol(h)
Alloc(h, 4)
Registersymbol(XD)
Alloc(XD, 32)
Label(stop)

h:
dd 1

XD:
cmp [h],0            //比對完之後,如果相同,就跳躍至004dfbaf
je 004DFBAF
stop:
jmp 004DFBAB      //為XD程式沒有jmp,所以當h=1的時候,就會讀到此行

[disable]
Unregistersymbol(h)
dealloc(h)
Unregistersymbol(XD)
dealloc(XD)