基于HOOK技术和MMF的Windows密码渗透技术研究的论文.docVIP

基于HOOK技术和MMF的Windows密码渗透技术研究的论文.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于HOOK技术和MMF的Windows密码渗透技术研究的论文.doc

  基于HOOK技术和MMF的Windows密码渗透技术研究的论文 摘 要 随着计算机与网络的普及,信息安全越来越成为人们所普遍关心的大事。密码的渗透与反渗透在此领域表现的愈演愈烈。本文深入分析了各个版本mf)的技术细节。在基于mmf的核心类cipc中为钩子句柄在内存中的共享提供了方法,并且解决了线程间的同步问题。然后深入讨论了_copydata消息的特点。接着分析了实例程序重要代码及注解并演示了结果。最终给出一些反密码渗透的应对策略。 关键词 内存映像文件;mf与hook技术获取任何版本e等操作系统下,如果在间谍程序中发送_gettext消息到密码控件,返回的文本将不再是“****”而是实际的文本内容,而在_gettext到密码控件,系统将校验请求的进程判断该进程是否有许可权,如图1所示:如果请求进程与密码控件所在进程是同一进程,那么_gettext消息将仍旧返回密码的真实文本。如果两个进程不一样,就返回一个error_access_denied的错误。所以获取_gettext消息,而不是在渗透进程中得到。而这种在其它进程中运行用户代码的技术完全可以利用essage钩子,这个钩子监视投递到消息队列中的unication)来传递钩子句柄。 4 进程间通信的一般方法 解决以上问题的一般方法是在动态链接库中创建一个“共享”部分,写入如下代码: #pragma data_seg(“shared”) hhook g_hhook = null; #pragma data_seg() #pragma ment(linker, “/section:shared,rmf)。 5 内存映像文件(mmf) 在mf的类cipc 运用内存映像文件解决进程间通信问题,并且创建一个互斥变量来解决线程的同步问题。所有这些封装在一个cipc的类中。通过运用内存映像文件解决了不同编译器的兼容问题,因为使用的都是标准mf支持进程间的数据共享,在未来的mf的定义及方法。并且互斥变量保持了线程访问的同步。以下给出cipc的类定义。 class cipc { public: cipc(); virtual ~cipc(); bool createipcmmf(void);//创建一个进程间通信的mmf bool openipcmmf(void);//打开一个进程间通信的mmf void closeipcmmf(void);//关闭一个进程间通信的mmf bool isopen(void) const {return (m_hfilemap != null);}//判断mmf是否打开 bool readipcmmf(lpbyte pbuf, dp;dmf bool mf(const lpbyte pbuf, const dmf bool lock(void);//进入临界区???创建互斥信号量 void unlock(void);//退出临界区,撤消互斥信号量 protected: handle m_hfilemap;//mmf文件句柄 handle m_hmutex;//互斥变量句柄 }; 7 利用_copydata消息来解决进程间的通信 在解决进程间的通信问题方面,_copydata消息是一个非常好的工具,可以节省程序员的许多时间。 当内存映像文件被建立时,系统就发送消息来填充它。然后系统再转回到最初调用sendmessage的进程,从共享内存映像文件中将数据复制到所指定的缓冲区中,然后从sendmessage调用返回。 对于系统已经知道的消息,发送消息时都可以按相应的方式来处理。如果要建立自己的(_user+x)消息,并从一个进程向另一个进程的窗口发送,那又会怎么样?系统并不知道用户要用内存映像文件并在发送消息时改变指针。为此,微软建立了一个特殊的窗口消息, _copydata以解决这个问题: copydatastruct cds; sendmessage(h_copydata,()h)cds); copydatastruct是一个结构,定义在essage看到要发送一个_copydata消息时,它建立一个内存映像文件,大小是cbdata字节,并从发送进程的地址空间中向这个内存映像文件中复制数据。然后再向目的窗口发送消息。在接收消息的窗口过程处理这个消息时,lparam参数指向已在接收进程地址空间的一个copydatastruct结构。这个结构的lpdata成员指向接收进程地址空间中的共享内存映像文件的视图。 8 关于_copydata消息,应该注意三个重要问题 1)只能发送这个消息,不能登记这个消息。不能登记一个_copydata消息,因为在接收消息的窗口过程处理完消息之后,系统必须释放内存映

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档