【www.bbzslqq.com--cf】

CF外挂透视源码

目前 CF 透视所使用的注入方法(附源码) 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


查看更多cf相关内容,请点击cf

2024 免费游戏攻略网版权所有. 京ICP备19018224号