鼠标屏幕取词技术的原理和实现[VC/C++编程]
本文“鼠标屏幕取词技术的原理和实现[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
“鼠标屏幕取词”技术是在电子字典中得到遍及地利用的,如四通利方和金山词霸等软件,这个技术看似简单,其实在windows系统中实现倒是非常复杂的,总的来说有两种实现方法:
第一种:采取截获对部份gdi的api调用来实现,如textout,textouta等.
第二种:对每个设备上下文(dc)做一分copy,并跟踪全部改正上下文(dc)的操作.
第二种办法更强盛,但兼容性不好,而第一种办法利用的截获windowsapi的调用,这项技术的强昌大概远远超越了您的想象,毫不浮夸的说,操纵windowsapi拦阻技术,你可以改革整个操作系统,事实上很多外挂式windows中文平台就是这么实现的!而这项技术也恰是这篇文章的主题.
截windowsapi的调用,具体的说来也可以分为两种办法:
第一种办法通过直接改写winapi 在内存中的映像,嵌入汇编代码,使之被调用时跳转到指定的地址运行来截获;第二种办法例改写iat(import address table输入地址表),重定向winapi函数的调用来实现对winapi的截获.
第一种办法的实现较为烦琐,并且在win95、98下面更有难度,这是因为固然微软说win16的api只是为了兼容性才保存下来,程序员应当尽大概地调用32位的api,实际上根本就不是这样!win 9x内部的大部份32位api经过变更调用了同名的16位api,也就是说我们需求在拦阻的函数中嵌入16位汇编代码!
我们将要介绍的是第二种拦阻办法,这种办法在win95、98和nt下面运行都对比安定,兼容性较好.由于需求用到关于windows虚拟内存的管理、冲破进程边界墙、向利用程序的进程空间中注入代码、pe(portable executable)文件格局和iat(输入地址表)等较底层的知识,所以我们先对触及到的这些知识大约地做一个介绍,最后会给出拦阻部份的关键代码.
以上是“鼠标屏幕取词技术的原理和实现[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |