易語言超級hook模塊是小編為大家分享的一款論壇大牛分享的超級hook模塊,據(jù)說非常好用,所以小編就來分享給大家了。喜歡的自取吧!
最簡單的hook講解
1.hook是什么:
英文來說,hook是鉤子。
其實捏,Hook是Windows中提供的一種用以替換DOS下“中斷”的系統(tǒng)機制,中文譯為“掛鉤”或“鉤子”。在對特定的系統(tǒng)事件進行hook后,一旦發(fā)生已hook事件,對該事件進行hook的程序就會受到系統(tǒng)的通知,這時程序就能在第一時間對該事件做出響應(yīng)。(轉(zhuǎn)自百科)
某大神說:
Hook是一個針對程序執(zhí)行過程中掛鉤技術(shù)。它主要用來攔截一些數(shù)據(jù),并對這些數(shù)據(jù)進行處理,此時,程序轉(zhuǎn)到我們的Hook代碼,我們擁有整個程序的執(zhí)行權(quán)限,我們可以選擇跳過此處,也可以選擇修改數(shù)據(jù),或者出錯退出程序等等。
2.hook應(yīng)用的范圍
這東西應(yīng)用范圍相當(dāng)廣啊。。。可以是程序(高深點說是用戶層)可以是內(nèi)核(貌似叫硬件層)4p蟲子大神一定會內(nèi)核什么的?驅(qū)動什么的。。。
3.其實還是2
我們一般用Hook主要是用在外部程序,來監(jiān)視一個程序的某個動作是否滿足我們的條件。
(當(dāng)然也可以用于自身程序的說)
4.廢話
hook用于攔截。。。所以當(dāng)然APIHook最為重要啦其實我的目的就在這里。。。(求教APIHook)
5.匯編基礎(chǔ)。。。
6.工具:我OD,易語言,百度
教程
首先,搞一個厲害的程序
然后,碼代碼
然后,打開靜態(tài)編譯好。
然后,打開OD,F(xiàn)3附加這個程序
然后,將滑塊條移至最上方,找到這里
ok,為什么是這里,而不是上面呢?其實,我也說不清楚。。。大概應(yīng)該是關(guān)于調(diào)用子程序的東西。。。但是我們是要hook,那肯定得要找有用的地方,而我們看到這里下方有l(wèi)ocal.1、2、3 就是有3個局部變量。。。local在英語中是局部的意思。然后,我們在這里下斷。運行,讓他走到這里停下,再一步步分析。。。
這一大段,就是c=a+b的運算過程,貌似多借了2行。。。
我們hook就要從這里下手。首先,我們分析下這一小段。。。第二行sub esp,24是騰出變量空間。第3-5行是初始化3個局部變量,4.5是分別把1、2賦值給a和b。介個很容易理解吧。。。然后下面棕色這一段就是處理運算。(又見易語言奇葩的浮點。。。)最后mov是把c輸出出來,然后下面call彈出信息框,然后繼續(xù)走下去就結(jié)束了。這個過程很簡單的樣子。
好了,廢話了這么一大堆,開始hook。那我們怎么hook啊我又不會APIHook
那我就找段空白代碼自己碼出來再跳回去吧。。。ok,翻到最底下,隨便找一個。
我們在上面分析過了,加法運算是從那一堆棕色的玩意開始的。。。那我們hook的入口就定在fild [local.1]那里。找個存儲的,我的是
00461BC1 00 db 00
然后把入口fild [local.1]那里修改成jmp 00461BC1,毫不清楚。。。就這樣看吧
介個OD為什么下面有nop啊,什么字節(jié)問題,可以自行去百度
然后是關(guān)鍵,ctrl+G 到00461BC1
開始寫讓它ab變的代碼,似乎紅色的相當(dāng)不清楚。我把他弄出來
00461BC1 C745 FC 03000>mov dword ptr ss:[ebp-4],3
00461BC8 C745 F8 04000>mov dword ptr ss:[ebp-8],4
00461BCF 8B45 FC mov eax,dword ptr ss:[ebp-4]
00461BD2 0345 F8 add eax,dword ptr ss:[ebp-8]
00461BD5 8945 F4 mov dword ptr ss:[ebp-C],eax
00461BD8 ^ E9 9AF4F9FF jmp 厲害!.00401077
前兩句是把a,b改為3和4 后三句是把a賦值給eax,再加上b,然后再傳給c。最后一句呢,就是把他跳到信息框彈出的call啦。
然后右鍵賦值可執(zhí)行文件,所有修改,全部復(fù)制,右鍵保存文件即可。
是不是很簡單那,其實我的主要目的是
- PC官方版
- 安卓官方手機版
- IOS官方手機版