利用输入法注入DLL

上传者: sn50129805 | 上传时间: 2021-10-10 07:50:37 | 文件大小: 102KB | 文件类型: -
Ring3下注入DLL的另类方法,能过杀软和游戏NP(源码) 注入DLL是做全局钩子或者拦截类软件都有可能用到的技术,如果做外挂的话我们也有 可能需要注入一个DLL到游戏进程中去干点什么“坏事”。 但我们知道现在要注入DLL是越 来越难了。场景1:制作火星文输入法外挂,原理是利用API HOOK拦截并修改输入法相关函 数,需要注入一个DLL到所有进程中,但是后来发现,在开启了瑞星的帐号保险箱后,用户 将不能在QQ中输入火星文。原因是瑞星保护了QQ进程,禁止对其注入DLL,解决方法是提示 用户关闭帐号保险箱 -_-| 确实是很降低用户体验的一个不是办法的办法。场景2:制作某 游戏外挂,需要注入一个DLL到游戏进程中去直接调用游戏函数完成某一功能。结果发现该 游戏有NP保护,OpenProcess打不开,创建远程线程也不行,试用其它方法也一一失败。遇 到上面的情况,高手们自然是转到Ring0下面去,使用驱动之类的办法来对付啦,不过吾等 菜鸟可就是酒井没法子了 -_-| 不过也别太灰心,凡事总会有办法的。我想我们需要一种持久的、稳定的、不容易被安 全软件屏蔽的DLL注入方法,后来发现,输入法程序就是能完成这一任务的理想人选。输入 法程序程序到底是什么?它没有自己的进程,并且在系统还没有登录时就已被加载(在欢迎 界面你也可以调出输入法),它可以在游戏中打开,也可以在控制台程序中打开,还可以在 瑞星保护下的QQ中打开,在杀软中也可以打开,这不就是我们要找的特性吗。那么,输入法 到底是什么呢?根据Windows的规定,输入法其实就是一个DLL,不过它是一个特殊的DLL, 它必须具有标准输入法程序所规定的那些接口,输入法是由输入法管理器(imm32.dll)控 制的,输入法管理器又是由user32.dll控制的。输入法在系统目录是以IME为扩展名的文件 ,当在应用程序中激活某个输入法时,输入法管理器就会在那个应用程序的进程中加载对应 的IME文件,注意,加载IME文件跟加载普通的DLL并没有本质区别,所以,可以认为,输入 法其实就是注入到应用程序中的一个DLL文件,并且,这种“注入”是不会被杀软和游戏NP 拦截的(至少目前是)。现在,我们已经有了一个注入DLL的另类方法,那就是利用输入法 。具体流程是这样,首先制作一个标准输入法文件,但是这个输入法并不完成文字输入工作 ,它的唯一任务就是用来注入DLL,所以称为“服务输入法”,然后,制作一个控制程序, 来控制服务输入法,当然最后还需要一个用于注入的目标DLL,这样一共就有3个文件。开始 工作后,控制程序首先将服务输入法安装到系统中,然后传递几个参数给服务输入法,参数 中包括了需要注入的DLL文件的名称和路径,然后,控制程序将服务输入法设置为系统的默 认输入法,这样新的程序一打开,服务输入法就会注入那个程序。当然,在服务输入法安装 之前打开的程序不会被注入,这时需要向系统中的所有窗口POST一条 WM_INPUTLANGCHANGEREQUEST消息,该消息可以在指定窗口中后台激活服务输入法,这样, 系统中所有拥有窗口的进程就都被我们的服务输入法注入了。服务输入法注入程序之后,就 会根据控制程序传递过来的参数加载目标DLL,这样目标DLL也就随着服务输入法一同注入到 目标程序中了。注意服务输入法是控制程序用WM_INPUTLANGCHANGEREQUEST消息在所有窗口 中自动激活的,如果某个窗口自动激活失败,你就需要在那个窗口中手工切换到服务输入法 ,这样才能注入进去了。至于注入以后,你就可以在窗口中切换到别的输入法,这并不会影 响已经注入进去的DLL。我将这一套功能制作成一个完整的示例,你可以在以下地址下载: http://www.pen88.com/download/imehook.rar 压缩包中的第6个和第8个文件夹演示了此 功能并包含所有源代码。其中文件imedllhost09.dll就是服务输入法,运行时会被安装到系 统中,控制程序退出时会自动卸载该输入法,这样用户就不太容易察觉,你还可以重新编译 该输入法,将名称改为“中文(中国)”,这样隐蔽性更好。文件hxwdllwx.dll是演示用的 目标DLL,你可以替换成自己的DLL,然后那个exe文件就是控制程序了。输入法 imedllhost09.dll在运行时会被复制到系统目录并更名为imedllhost09.ime,它导出了2个 函数用于控制。在VB中的声明为: Public Declare Function IMESetPubString Lib "imedllhost09.ime" (ByVal RunDLLStr

文件下载

评论信息

  • ljbswa :
    打开后360直接报毒杀掉了,没用
    2017-01-11
  • cumtshengliang :
    很好的资源~要是全是c++ 就好了
    2014-10-09
  • redtianjx :
    挺好的教程,就是略有BUG
    2014-06-17
  • ophilpan :
    非常实用,十分感谢分享
    2014-01-28
  • yy21yeyu :
    如果全是C++些的就好了,很不错的资源
    2013-06-14

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明