本发明涉及信息安全技术领域,尤其涉及一种终端审计IM即时消息的方法。
背景技术:
目前,在网络技术飞速发展过程中,IM即时通讯软件是个人电脑上涌现的一项非常流行的通信技术。它是继电子邮件、Web技术之后的第三大互联网应用。IM做为一种即时通讯工具,应用非常普遍,尤其是IM、RTX、MSN等。 为了防止员工不会通过IM通道泄露公司的机密信息,但又不改变用户原有的使用习惯,需对IM聊天内容进行审计和敏感信息识别。
现有的技术中,如果在底层截获,大部分IM即时消息是加密的,很难解析;从上层考虑,难度也不小,窗口内容也很难捕获到。
为此,如何提供一种终端审计IM即时消息的方法,是本发明研究的目的。
技术实现要素:
为克服现有技术不足,本发明提出了一种终端审计IM即时消息的方法,采用函数MY CreateTextServices来代替RICHED20.dll原有函数,用CreateTextServices的方式获取IM进程新建的会话窗口,并通过更改窗口过程函数,截获IM发送的聊天内容信息;实现在终端本地对IM聊天内容的审计,同时不影响用户使用IM工具,保护了用户的隐私和IM帐号安全。
为解决现有技术问题,本发明所采用的技术方案是:
一种终端审计IM即时消息的方法,其特征在于,包括:
(1)HOOK RICHED20.dll中的CreateTextServices函数,使启动新的IM会话时调用MY CreateTextServices 函数;
(2)在MYCreateTextServices中查询获得应用实例,获取当前会话中存在的窗口句柄,缓存多次调用函数生成的应用实例与窗口句柄;
(3)正确判断出当前的IM会话窗口与代表输入框所使用的ITextServices实例对象是否一致;
(4)保存和替换原有的窗口过程函数;
(5)处理鼠标点击“发送”按钮与按键“ENTER”消息,即可通过ITextServices获取用户输入的完整内容,进行敏感信息识别。
进一步的,在步骤(1)中,采用IAT方式HOOK RICHED20.dll中的CreateTextServices函数。
进一步的,在步骤(2)中,所述的查询是通过IID_ITextServices查询。
进一步的,在步骤(2)中,所述的应用实例为ITextServices的应用实例。
进一步的,在步骤(2)中,所述窗口句柄的获取是通过ITextHost形参获取。
进一步的,在步骤(4)中,所述的保存和替换是通过GetWindowLongPtr 与SetWindowLongPtr方式。
进一步的,在步骤(4)中,所述的窗口过程函数替换为MynewWndProcHook。
进一步的,在步骤(5)中,所述的处理是在替换后的窗口过程函数MynewWndProcHook中进行。
本发明的有益效果是:解决了企业在捕获加密聊天记录,进行内容匹配的时候,无法审计IM即时消息的问题,达到了信息交互安全的效果。
附图说明
图1为本发明步骤原理图。
具体实施方式
为了使本领域技术人员能够更加理解本发明技术方案,下面结合附图1对本发明做进一步分析。
如图1所示,一种终端审计IM即时消息的方法,包括:
(1)HOOK RICHED20.dll中的CreateTextServices函数,使用新的IM会话时调用MY CreateTextServices 函数;
(2)在MYCreateTextServices中查询获得的应用实例,获取当前会话中存在的窗口句柄,缓存多次调用函数生成的应用实例与窗口句柄;
(3)正确判断出当前的IM会话窗口与代表输入框所使用的ITextServices实例对象是否一致;
(4)保存和替换原有的窗口过程函数;
(5)处理鼠标点击“发送”按钮与按键“ENTER”消息,即可通过ITextServices获取用户输入的完整内容,进行敏感信息识别。
通过MY CreateTextServices函数,间接的实现了捕获IM聊天信息的功能,不管什么IM工具,在终端审计聊天记录都得到了实现,对于企业需要监控审计员工通过IM通道外泄机密信息有及其重要的意义。
根据本发明的实施例,在步骤(1)中,采用IAT方式HOOK RICHED20.dll中的CreateTextServices函数。
根据本发明的实施例,在步骤(2)中,所述的查询是通过IID_ITextServices查询。
根据本发明的实施例,在步骤(2)中,所述的应用实例为ITextServices的应用实例。
根据本发明的实施例,在步骤(2)中,所述窗口句柄的获取是通过ITextHost形参获取。
根据本发明的实施例,在步骤(4)中,所述的保存和替换是通过GetWindowLongPtr 与SetWindowLongPtr方式。
根据本发明的实施例,在步骤(4)中,所述的窗口过程函数替换为MynewWndProcHook。
根据本发明的实施例,在步骤(5)中,所述的处理是在替换后的窗口过程函数MynewWndProcHook中进行。
本发明所述方法的工作过程包括两个阶段:
第一,开发阶段:
1、编写的MYCreateTextServices 函数;
2、开发IID_ITextServices接口,通过ITextHost形参获取当前会话中存在的窗口句柄;
3、编写判断机制,判断当前的会话窗口与代表输入框所使用的ITextServices实例对象是否一致;
4、开发MynewWndProcHook,替换GetWindowLongPtr 与SetWindowLongPtr保存和替换原有的窗口过程函数;
5、调用MynewWndProcHook接口,用于处理鼠标点击“发送”按钮与按键“ENTER”消息,即可通过ITextServices获取用户输入的完整内容。
第二,部署阶段:
1、将程序安装在终端;
2、启动服务;
3、审计IM即时消息,工作完成。
本发明所述的一种终端审计IM即时消息的方法通过MY CreateTextServices函数,间接的实现了捕获IM聊天信息的功能,不管什么IM工具,在终端审计聊天记录都得到了实现,对于企业需要监控审计员工通过IM通道外泄机密信息有及其重要的意义, 解决了在传统暴力破解、硬解或无法破解IM加密的聊天内容,并且解决了部分IM版本不能支持的情况下,给相关功能开发带来的问题。。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。