-
-
关于输入法注入的疑惑。
-
发表于:
2011-7-28 03:47
11006
-
从网上下载到一份很普遍的也是我仅能找到的输入法注入的源码。
他的输入法安装程序是用VB写的。耐着性子去一点点看了VB的源码,并且用VC6去模拟了一份。
但是在一个地方产生了疑惑。
输入法安装之后,按他的说法是其他程序只要切换到了那个输入法系统就会自动注入输入法ime文件进去。
我不知道这样理解是否错误,但是鉴于我的水平有限,我只能这样解释。
而要注入的目标DLL也是在安装程序下指定的。
因为输入法文件里有一个导出函数IMESetPubString里可以指定要注入的目标DLL的路径文件名。
所以安装程序就调用了这个导出函数。
他的VB源码我看了也就是简单的调用了这个导出函数,就使得之后所有需要输入的进程只要切换到这个输入法就能注入目标DLL。
这样我就很疑惑了,因为明白的注入目标DLL是在这个导出函数里完成的。但是只有安装程序调用了这个导出函数。我想系统不可能自动在注入输入法文件到进程里之后也会去这样调用吧。其他之后打开的进程怎么可能会注入目标DLL呢?
带着这样的疑惑我用VC按它VB的源码模拟了一份。果然,只有我的安装程序调用了导出函数被注入了DLL。其他程序都不行。
我也想过,可以在安装程序在某处设置一个配置文件,输入法文件被系统注入到其他进程就去这个配置文件查看需要注入的DLL的路径,这样是可以实现效果的。
但是我觉得这样不仅隐蔽性太差,而且鉴于对出现疑惑就要解决的精神,这个问题一直在我脑中萦绕。都快钻牛角尖了。呵呵。
嗯,所以,希望有老师们能帮助小弟一把,小弟一直自学编程,一般问题都是靠度娘和谷哥解决,不到万不得已不会开帖询问,这样的确很累,但却乐此不疲,这算小小的自夸一下吧。
鉴于我好学勤奋的精神呢,我想老师们有必要指点小弟一番,然后再夸夸学生。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课