- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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消息,因为在接收消息的窗口过程处理完消息之后,系统必须释放内存映
您可能关注的文档
- 城市化进程中失地农民问题探讨的论文.doc
- 城市化需要智力支持的论文.doc
- 城市品牌营销策略研究的论文.doc
- 城市建设重点工程档案管理的思考的论文.doc
- 城市旅游发展动力机制研究的论文.doc
- 城市旅游品牌问题研究的论文.doc
- 城市旅游圈空间一体化以及营销一体化的框架的论文.doc
- 城市旧住宅区改善的市场化途径及管理探讨的论文.doc
- 城市普通中学管理的问题及对策的论文.doc
- 城市桥梁景观设计探索的论文.doc
- 基于Hopfield神经网络的噪声字母识别的论文.doc
- 基于HTML标签的信息隐藏模型的论文.doc
- 基于ID3算法的Web日志挖掘预处理中的Frame页面过滤技术的研究的论文.doc
- 基于iDEN专网的现代物流信息系统设计与功能实现的论文.doc
- 基于Internet个性化信息检索技术的分析与研究的论文.doc
- 基于Internet的多媒体教学系统结构的论文.doc
- 基于Intranet的储粮测控与粮情分析推理系统的设计与实现的论文.doc
- 基于ISO10015标准的培训管理体系构建实践的论文.doc
- 基于ISO15489的文件处置研究的论文.doc
- 基于ITIL的电子政务网络服务管理系统的探索的论文.doc
文档评论(0)