文章目录

  • 第一步
  • 实现代码举例:
    • Dll2.dll实现代码
    • Main.cpp实现代码
  • 插入一个提示(vs如何打开MSDN帮助文档)

第一步

学会写dll(格式这些东西自行查询 以及学习),然后生成(解决方案)即可

  1. 新建项目动态链接库

    2.写完之后,在生成----> 生成解决方案 即可在debug下面找到Dll2.dll文件



3.生成之后,直接把dll文件拷贝到注入代码Main.cpp相同目录下,然后导入进行注入即可

实现代码举例:

Dll2.dll实现代码

// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "pch.h"
#include<iostream>
#include<Windows.h>
#include<conio.h>
#define DEF_PROCESS_NAME "notepad.exe"HINSTANCE g_hInstance = NULL;
HHOOK g_hHook = NULL;
HWND g_hWnd = NULL;LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) {char szPath[MAX_PATH] = { 0, };char* p = NULL;if (nCode >= 0) {if (!(lParam & 0x80000000)) {return  1;}}return CallNextHookEx(g_hHook, nCode, wParam, lParam);
}BOOL APIENTRY DllMain( HMODULE hModule,DWORD  ul_reason_for_call,LPVOID lpReserved)
{switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:g_hInstance = hModule;break;case DLL_THREAD_ATTACH:break;case DLL_THREAD_DETACH:case DLL_PROCESS_DETACH:break;}return TRUE;
}#ifdef  __cplusplus
extern "C" {#endif__declspec(dllexport)void HookStart() {g_hHook = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, g_hInstance, 0);}__declspec(dllexport)void HookStop() {if (g_hHook) {UnhookWindowsHookEx(g_hHook);g_hHook = NULL;}}
#ifdef __cplusplus
}
#endif // __cplusplus

Main.cpp实现代码

#include<iostream>
#include<Windows.h>
#include<conio.h>
#define DEF_DLL_NAME "Dll2.dll"
#define DEF_HOOKSTART "HookStart"
#define DEF_HOOKSTOP "HookStop"typedef void(*PEN_HOOKSTART)();
typedef void(*PEN_HOOKSTOP)();
MSG msg;
int main() {HMODULE  hDll = NULL;PEN_HOOKSTART HookStart = NULL;PEN_HOOKSTOP HookStop = NULL;char  ch = 0;//加载KeyHook.dllhDll = LoadLibraryA(DEF_DLL_NAME);//获取导出函数地址HookStart = (PEN_HOOKSTART)GetProcAddress(hDll, DEF_HOOKSTART);HookStop = (PEN_HOOKSTOP)GetProcAddress(hDll, DEF_HOOKSTOP);//开始勾取HookStart();while (GetMessage(&msg, NULL, 0, 0)) {TranslateMessage(&msg);DispatchMessage(&msg);};//终止勾取HookStop();//卸载KeyHook.dllFreeLibrary(hDll);}


键盘按炸了也按不出任何东西!!!!

插入一个提示(vs如何打开MSDN帮助文档)

比如要查看float的特征。
在vs中输入float,然后按F1键,会在默认浏览器上打开帮助文档。

dll注入之SetWindowsHookEx(1)相关推荐

  1. 2020-11-24(dll注入的N种搞法)

    所谓DLL注入,本来是软件用于向其他程序添加/扩展功能.调试或逆向工程的一种合法技术.不过,后来恶意软件也常用这种方式来干坏事.因此,这意味着从安全的角度来看,我们必须知道DLL注入是如何工作的. 之 ...

  2. 2020-11-23(Windows系统的dll注入 )

    一.什么是dll注入 在Windows操作系统中,运行的每一个进程都生活在自己的程序空间中(保护模式),每一个进程都认为自己拥有整个机器的控制权,每个进程都认为自己拥有计算机的整个内存空间,这些假象都 ...

  3. 2020-11-23(dll注入方法)

    一般情况下有如下dll注入方法: 1.修改注册表来注入dll: 2.使用CreateRemoteThread函数对运行中的进程注入dll: 3.使用SetWindowsHookEx函数对应用程序挂钩( ...

  4. [web安全]深入理解反射式dll注入技术

    一.前言 dll注入技术是让某个进程主动加载指定的dll的技术.恶意软件为了提高隐蔽性,通常会使用dll注入技术将自身的恶意代码以dll的形式注入高可信进程. 常规的dll注入技术使用LoadLibr ...

  5. 【安全技术】关于几种dll注入方式的学习

    何为dll注入 DLL注入技术,一般来讲是向一个正在运行的进程插入/注入代码的过程.我们注入的代码以动态链接库(DLL)的形式存在.DLL文件在运行时将按需加载(类似于UNIX系统中的共享库(shar ...

  6. Ring3下Dll注入方法整理汇总

    1.dll劫持,粗略整理了下,可以劫持的dll有(持续更新): lpk.dll.usp10.dll.msimg32.dll.midimap.dll.ksuser.dll.comres.dll.ddra ...

  7. redistemplate注入为null_Windows DLL 注入技术

    Windows DLL 注入技术 本文主要介绍四种常见的 Windows DLL 注入技术. 分别为全局钩子.远线程钩子.突破 SESSION 0 隔离的远线程注入和 APC 注入. 全局钩子注入 W ...

  8. 【逆向】【Part 3】DLL注入

    目录 一.通过自制调试器来理解其原理 1.调试器的工作原理 实现反汇编功能(重点) 重点分析exception_debug_event 重点:1.对调试器程序增加异常处理操作功能,核心API, CON ...

  9. DLL注入与隐藏的学习

    本篇要讲什么?小白看了要问,DLL是啥?为啥要注入?又干嘛隐藏?而大佬直接 我当然是菜鸡,所以我们一起来学习一下这dll到底是神魔东西,他有什么神奇之处. 一.DLL简介 定义:动态链接库英文为DLL ...

最新文章

  1. 潘石屹首次Python考试成绩 99 分,失分点:画完图后忘了隐藏画笔的箭头
  2. 大学计算机基础章节知识点,《大学计算机基础》知识点
  3. 使用ifstream和getline读取文件内容[c++]
  4. mysql全备份+增量备份笔记总结
  5. P2153-晨跑【费用流,网络流,拆点】
  6. uoj#188. 【UR #13】Sanrd(Min_25筛)
  7. 阿里京东滴滴等大厂面试题汇总
  8. 【转】HBase原理和设计
  9. BackgroundWorker学习笔记
  10. verilog 生成块_Verilog数字系统设计教程之学习摘要
  11. 【面向对象设计原则】之开闭原则(OCP)
  12. PHP has encountered an Access Violation at
  13. Vue的倒计时插件(vue-flip-down)
  14. 第十届“中国电机工程学会杯”全国大学生电工数学建模竞赛 B 题 全面二孩政策对我国人口结构的影响
  15. 计算机编程学英语词汇,计算机编程常用英语词汇
  16. android debug SIGABRT (signal SIGABRT)
  17. html图片怎么去掉空白,css去除img图片下多余空白区域
  18. AMD处理器下虚拟机VMware15安装macOS 10.14
  19. 高级计算机维修员+职业资格证书查询,国家职业资格证书查询(全国联网)
  20. 趣玩网 爬虫开发笔记

热门文章

  1. ML之PLiR之Glmnet:利用Glmnet算法求解ElasticNet回归类型问题(实数值评分预测)
  2. Py之pyecharts:基于大数据对人工智能进行各种可视化图表分析
  3. 虚拟机 centos 6.5 扩展根目录分区大小
  4. window 日志清除
  5. 为什么要实现序列化接口
  6. 控制反转(Ioc)和依赖注入(DI)
  7. 课堂练习--最大子数组和 环
  8. HTML的checkbox和radio的美化
  9. 高级停靠(Dock)技术的实现
  10. I2C_ADDRS(addr, addrs...)理解