android 全局hook_全局HOOK API (C#) 的实现
主要实现代码
代码:
[DllImport("user32.dll", CharSet = CharSet.Auto,
CallingConvention = CallingConvention.StdCall, SetLastError = true)]
private static extern int SetWindowsHookEx(
int idHook,
HookProc lpfn,
IntPtr hMod,
int dwThreadId);
[DllImport("user32.dll", CharSet = CharSet.Auto,
CallingConvention = CallingConvention.StdCall, SetLastError = true)]
private static extern int UnhookWindowsHookEx(int idHook);
[DllImport("user32.dll", CharSet = CharSet.Auto,
CallingConvention = CallingConvention.StdCall)]
private static extern int CallNextHookEx(
int idHook,
int nCode,
int wParam,
IntPtr lParam);
[DllImport("user32")]
private static extern int ToAscii(
int uVirtKey,
int uScanCode,
byte[] lpbKeyState,
byte[] lpwTransKey,
int fuState);
[DllImport("user32")]
private static extern int GetKeyboardState(byte[] pbKeyState);
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
private static extern short GetKeyState(int vKey);
使用SetWindowsHookEx函数(API函数),指定一个Hook类型、自己的Hook过程是全局还是局部Hook,同时给出Hook过程的进入点,就可以轻松的安装自己的Hook。
代码:
// 创建鼠标实例.
MouseHookProcedure = new HookProc(MouseHookProc);
//安装 鼠标hook
hMouseHook = SetWindowsHookEx(
WH_MOUSE_LL,
MouseHookProcedure,
Marshal.GetHINSTANCE(
Assembly.GetExecutingAssembly().GetModules()[0]),
0);
// 创建键盘实例.
KeyboardHookProcedure = new HookProc(KeyboardHookProc);
//安装 键盘hook
hKeyboardHook = SetWindowsHookEx(
WH_KEYBOARD_LL,
KeyboardHookProcedure,
Marshal.GetHINSTANCE(
Assembly.GetExecutingAssembly().GetModules()[0]),
0);
卸载Hook UnhookWindowsHookEx()函数(API函数)
android 全局hook_全局HOOK API (C#) 的实现相关推荐
- android 全局hook_【Hook】实现无清单启动Activity
引子 Hook技术在android开发领域算是一项黑科技,那么一个新的概念进入视线,我们最关心的3个问题就是,它是什么,有什么用,怎么用 本系列将由浅入深 手把手讲解这三大问题. 本文是第三篇, 高级 ...
- xposed android debug,Android 手机开启全局调试xposed插件
手机开启全局调试ro.debuggable = 1 一般方法就是重刷boot.img ,大部分手机都比较困难. 还有就是命令临时修改,重启手机失效的. 还有magisk 刷的 今天给介绍一个xpose ...
- Android开发之全局异常捕获
Android开发之全局异常捕获 [转载请注明出处]本文出自付小华的博客 http://blog.csdn.net/klxh2009 今晨谷歌正式发布Android 8.0,新版本的Android O ...
- Android 手机开启全局调试xposed插件
手机开启全局调试ro.debuggable = 1 一般方法就是重刷boot.img ,大部分手机都比较困难. 还有就是命令临时修改,重启手机失效的. 还有magisk 刷的 今天给介绍一个xpose ...
- 美服疯狂坦克辅助瞄准外挂C#版开发(二)全局鼠标键盘HOOK
大家都知道,Windows操作系统内部通讯是基于消息机制的.为了实现我们的功能,必须要能够截和处理获游戏中鼠标键盘事件的消息,常规做法是获取游戏窗体的句柄,然后加入HOOK,这样的好处是不会影响到其它 ...
- python keyboard hook_键盘监控的实现Ⅰ——Keyboard Hook API函数
在实际应用中,键盘监控是一种很常见的技术,它包括按键的记录.按键的过滤.按键的修改(映射)等.比方说,我们想统计用户的击键情况,这个就是按键的记录:我们想屏蔽某些系统键(例如Alt键.Win键),这个 ...
- Android美化之全局透明背景
2019独角兽企业重金招聘Python工程师标准>>> Android美化之全局透明背景 我们上次在<Android美化综述>中向大家简单的介绍了Android美化的大致 ...
- android hook api
搞了好几个星期,终于有点头绪,欢迎交流.转载请注明出处http://blog.csdn.net/lingfong_cool/article/details/8109290. android安全可以从三 ...
- 车载导航android音频策略,Android车载导航全局声控装置及方法
Android车载导航全局声控装置及方法 [技术领域] [0001]本发明涉及智能Android车载系统领域,尤其涉及一种Android车载导航全局声控装置及方法. [背景技术] [0002]在行车过 ...
最新文章
- 数据有价——数据资产定价研究初探
- android studio 打开github开源代码
- Java设计模式(一):策略设计模式
- swift hidesBottomBarWhenPushed 设置界面
- 利用pickle保存模型
- 使用iOS 4越狱iPhone或iPod Touch
- php 运行thinkphp,thinkPHP cli命令行运行PHP代码
- 写给想做自动化的我和我们
- 拓端tecdat|R语言中的prophet预测时间序列数据模型
- 使用kitti数据集实现自动驾驶——发布照片、点云、IMU、GPS、显示2D和3D侦测框
- Java - 注解(Annotation)
- 文档翻译——免费版(word格式、pdf格式)
- unity滑动屏幕旋转物体
- 01-java设计模式知识点-上篇
- 《那些年啊,那些事——一个程序员的奋斗史》——19
- Premature optimization is the root of all evil.
- JavaScript Boolean(布尔)对象
- 计算机视觉及智能影像报告:未来规模超200亿美元
- C语言学习——渐渐发现程序世界的奇妙
- vue+elementui上传头像