在数据防泄漏软件,通常会禁止 PrintScreen 键,防止通过截屏来将数据保存为图片而导致泄密。

这类软件如果想要实现是比较简单的,但是想要将功能做的强大些,还是需要下功夫的。以前使用过一款数据防泄漏的软件,其中就有这个功能,它不但能禁止掉 PrintScreen 键,还能禁止其他的专业截屏软件。同样,禁止截屏软件的方法难点在于兼容性,就是不要影响正常的软件的运行。

​       这里介绍一些如何禁止 PrintScreen 键。其实很简单,只要安装低级键盘钩子(WH_KEYBOARD_LL)就可以搞定,普通的键盘钩子(WH_KEYBOARD)是无法过滤一些系统按键的。在低级键盘钩子的回调函数中,判断是否为 PrintScreen 键,如果是则直接返回 TRUE,如果不是则传递给钩子链的下一处。

看代码吧!!!

 extern "C" __declspec(dllexport) BOOL SetHookOn()
{
    if ( g_hHook != NULL )
    {
        return FALSE;
    }
    g_hHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, g_hIns, NULL);
    if ( NULL == g_hHook )
    {
        MessageBox(NULL, "安装钩子出错 !", "error", MB_ICONSTOP);
        return FALSE;
    }     return TRUE;
} extern "C" __declspec(dllexport) BOOL SetHookOff()
{    
    if ( g_hHook == NULL )
    {
        return FALSE;
    }
    UnhookWindowsHookEx(g_hHook);
    g_hHook = NULL;
    return TRUE;
} LRESULT CALLBACK LowLevelKeyboardProc(
            int nCode, WPARAM wParam, LPARAM lParam)
{
    KBDLLHOOKSTRUCT *Key_Info = (KBDLLHOOKSTRUCT*)lParam;     if ( HC_ACTION == nCode )
    {
        if ( WM_KEYDOWN == wParam || WM_SYSKEYDOWN == wParam )
        {
            if ( Key_Info->vkCode == VK_SNAPSHOT )
            {
                return TRUE;
            }
        }
    }     return CallNextHookEx(g_hHook, nCode, wParam, lParam);
}

代码量非常的短,是的……就是这短短的代码阻止了数据的泄漏。当然了,这样的保护对于一个攻击者,这个代码就无法保护数据了。对于一个攻击者,这种保护也就很脆弱了。任何的保护都有突破的办法,攻击无处不在,攻击者会尝试任何手段突破所有的保护。


我的微信公众号:“码农UP2U”

数据防泄漏 | 禁止PrintScreen键的更多相关文章

  1. PDF数据防扩散系统方案

    在企业信息化过程中.大量的企业重要图纸和资料都是以电子文件的方式存在.为了避免内部关键数据的外泄,採取了多种方式:设计部门的门禁管制.防火墙.禁止计算机的USB接口等等. 可是泄密问题还是时有发生,原 ...

  2. 【转】网页禁止后退键BackSpace的JavaScript实现(兼容IE、Chrome、Firefox、Opera)

    var forbidBackSpace = function (e) { // 获取event对象 var ev = e || window.event; // 获取事件源 var obj = ev. ...

  3. 输入框状态禁止enter键提交表单

    1:页面中如果存在input输入框和submit提交按钮时,默认按enter键会提交表单,如果我现在在做查询操作,一不小心按了enter键就会有提交表单的操作,这样显然是不合理的,所以我们要禁止按en ...

  4. JS禁止后退键(backspace)使浏览器后退

    背景说明: 今天项目测试中,同事发现一个Bug,当键盘敲下后退键(Backspace)后,浏览器自动后退,不符合需求,故建议禁止浏览器后退键. 提出需求: 当键盘敲下后退键(Backspace)后 1 ...

  5. js 禁止后退键

    function doKey(e) { var ev = e || window.event; //获取event对象 var obj = ev.target || ev.srcElement; // ...

  6. 基于Volley,Gson封装支持JWT无状态安全验证和数据防篡改的GsonRequest网络请求类

    这段时间做新的Android项目的client和和REST API通讯框架架构设计.使用了非常多新技术,终于的方案也相当简洁优雅.client仅仅须要传Java对象,server端返回json字符串, ...

  7. Sqlite清空表数据以及重新设置主键操作

    Sqlite清空表数据以及重新设置主键操作 delete from 表名; //清空数据 update sqlite_sequence SET seq = 0 where name ='表名';//自 ...

  8. 数据防泄密(DLP)

    数据防泄密(DLP)近几年已经成为国内非常热门的关键词. 目前市场上DLP产品主要可以分为三大类,各类产品都来源于不同的技术体系,防护效果也各有优缺点. 第一类,以监控审计为主,对进出的数据进行过滤, ...

  9. 处理键盘事件 禁止后退键(Backspace)密码或单行、多行文本框除外

    //处理键盘事件 禁止后退键(Backspace)密码或单行.多行文本框除外 function forbidBackSpace(e) { var ev = e || window.event; //获 ...

随机推荐

  1. chunked

    简介 chunked是一种HTTP协议的分块传输编码的机制,即一个HTTP消息可以分成多个部分进行传输,它对于HTTP请求和HTTP响应都适用.对于非持续连接,浏览器通过连接是否关闭来界定请求和响应实 ...

  2. 第2次作业-titanic数据集练习

    一.读入titanic.xlsx文件,按照教材示例步骤,完成数据清洗. titanic数据集包含11个特征,分别是: Survived:0代表死亡,1代表存活Pclass:乘客所持票类,有三种值(1, ...

  3. 使用过Redis,我竟然还不知道Rdb

    目录 使用过Redis,那就先说说使用过那些场景吧 Rdb文件是什么,它是干什么的 分析工具 小结 联想 推荐阅读 使用过Redis,那就先说说使用过那些场景吧 字符串缓存 //举例 $redis-& ...

  4. 什么是EAC模型

    在20世纪70年代末,一个心理学学生理查德•班德勒和一个语言学学生约翰•格林德提出了一个EAC模型,即眼睛解读线索.这个模型对不同的感官和思维方式之间进行一些有效的研究, 对于大部分的人来说,左边往往 ...

  5. C# show Environment property info name and value retrieve, Maximize the Console Window based on window resolution

    using System.Reflection; static void ShowEnvironmentInfoDemo() { Type type = typeof(Environment); Pr ...

  6. 执行超大的.sql文件处理,100M++

    sqlcmd的命令参数如下: 1    [-U 登录 ID]             [-P 密码] 2  [-S 服务器]                [-H 主机名]           [-E ...

  7. python-pyppeteer模块使用汇总

    一.简单代码示例 import asyncio from pyppeteer import launch async def main(): browser = await launch() page ...

  8. javaWeb核心技术第六篇之BootStrap

    概述: Bootstrap 是最受欢迎的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目. 作用: 开发响应式的页面 响应式:就是一个网站能够兼容多个终端 节约开发 ...

  9. Add a Parametrized Action 添加带参数的按钮

    In this lesson, you will learn how to add a Parametrized Action. These types of Actions are slightly ...

  10. CSS 从大图中选取部分区域作为目标图标

    从大图中选取部分区域作为目标图标 by:授客 QQ:1033553122 1.图片素材 图片素材如下(大小:137px * 264px),图中从上到下,连续存放了两张100px * 100px的图   ...