close
標籤: 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) |
全站熱搜
留言列表