易语言教程_易语言源码_易语言视频教程_易语言论坛

 找回密码
 点击注册

Vip新手入门区
新手学习指南  学员作品展示 Vip课程总纲  Vip绝密课程系列

Vip相关下载区
Vip模块下载   Vip模块绑定   Vip模块例子 魔鬼插件下载  魔鬼插件例子  教程工具下载

Vip论坛服务区
教程问题提问区   模块问题提问区 技术交流区   魔鬼插件建议   忘记密码找回

VIP会员办理QQ: 8643245   
【请先加好友,然后到好友列表双击联系客服,办理VIP会员。】
【基础篇】易语言辅助入门基础教程
VIP模块办理QQ: 7189694 办理正版魔鬼作坊VIP模块 【基础篇】OD与CE入门基础教程
办理【终身VIP会员】“秒杀价” 仅需 RMB278.00元… 【基础篇】零基础绝密汇编语言入门课程 (共26课已完成)…
办理VIP详情…猛击这里查看详情 【基础篇】VIP辅助入门基础教程-新手必学 已发布10课 ……
VIP教程免费试看章节…猛击下载 【第1款】制作“辅助挂”教程目录查看(共107+16_x64下更新课已完成)…
亲爱的VIP学员,请到此写下你学习的感受与发布作品截图… 【第2款】制作“任务挂”教程目录查看(共77+1_x64下更新课已完成)…
卍解吧!不用bp send类封包断点找CALL的各种通杀思路 【第3款】驱动过保护技术课程(共38课已完成)…
【绝密教程】VIP绝密教程系列---注意:随时会更新! 【第4款】VIP邪恶二叉树辅助课程 (共31+17_x64下更新课已完成)…
【精品第13款】3D射击游戏与页游透视 智辅课程 已完成17课… 【第5款】零基础易语言按键辅助教程 (30课已完成)…
【精品第14款】变态功能辅助是如何炼成的 已完成36课… 【第6款】从零开始学习封包辅助技术教程(20课已完成) …
【精品第15款】DNF商业变态辅助的修炼之路 已完成27课… 【第7款】大杀特杀分析来源与CALL吸血鬼课程 (56课已完成)
【精品第16款】中控台多线程多开自动化商业辅助课程 已完成66课… 【第8款】完全零基础网页辅助课程(40课已完成)
【全新精品第17款】检测原理与过游戏内存检测技术课程 已发布9课… 【第9款】自动登录与操控LUA技术课程 (共46+8_x64下更新课已完成)…
【全新精品第18款】手游全自动化任务脚本辅助课程 已发布25课…… 【第10款】网页辅助封包脱机进阶课程 已完成30课…
【全新精品第19款】D3D方框骨骼透视与自瞄辅助课程进阶篇 已发布34课…… 【第11款】VC++ Lua脚本辅助课程 已完成112课…
【全新精品第20款】 X64模拟器吃鸡游戏方框透视自瞄辅助课程 发布中... 【第12款】网游脱机封包智辅课程 已完成35课…
查看: 2551|回复: 5

输入法注入API

[复制链接]

4

主题

2

回帖

7

积分

终身VIP会员

Rank: 7Rank: 7Rank: 7

魔鬼币
9980
发表于 2013-6-25 09:24:52 | 显示全部楼层 |阅读模式
由于前几天脑残.....去研究那个输入法注入。可惜手头上没有这方面的资料,于是乎去了网上查了一下.....结果悲剧的收场了.......可是心里面很是不爽,于是乎用记事本打开超级模块看了一遍........发现很多秘密啊!当我搜索输入法以后调到一个地方,乍看之下没什么,仔细一看......那些英文不就是API函数么- -(淡定)于是乎我就研究了....到最后总结出7个函数可能与输入法注入有关。然后经本人长期的不懈努力终于把真正的函数给研究出来了(一共有四个)。下面我就给大家介绍这4个API函数的用法:
第一个函数:ImmInstallIMEA(为什么要加A??因为编码问题)
此函数你度姐一下就知道,有2个文本型参数,返回值为整数型,库文件名为imm32.dll,第一个参数为输入法的安装目录,第二个参数为输入法的名称。E格式为:
.版本 2
.DLL命令 ImmInstallIME, 整数型, "imm32.dll", "ImmInstallIMEA", , 该函数的两个参数分别为输入法IME文件的文件名和在控制面板的是输入法选项中显示的输入法名称。函数调用后将返回一个被安装输入法的输入法标识符(或称做输入法句柄)。
    .参数 lpszIMEFileName, 文本型, , 输入法的安装目录
    .参数 lpszLayoutText, 文本型, , 输入法的名称
接下来介绍第二个函数:IMESetPubString
此函数花费了我2个多小时才研究透的,首先我根本不知道此函数的库文件是什么,然后就用超级模块做了一下测试,发现如果不用输入法文件此函数使用时压根儿就会出错,这是恍然大悟,输入法文件不也是一个动态链接库么(个人理解)于是乎我就改了此函数的后缀名为DLL,然后在库文件名那填上此函数的文件名和后缀名,在命令名那写上此函数,可是我不知道此函数到底有多少参数,然后我就一个一个的添加,到最后一共有6个参数的时候才没有报错(以下省略,话说个人经验很宝贵的)然后经本人多次测试和多方指教下终于把此函数的6个参数给弄清楚,第一个参数乃为你要注入的DLL的文件名,第二个参数为当输入法退出的时候是否卸载掉这个DLL,第三个参数为是否自动切换输入法剩下的几个参数涉及到输入法编程所以我不多说了,我全给0处理,就这么一个函数花费我1天半的时间。靠!下面为E格式:
.版本 2
.DLL命令 输入法注入dll, 整数型, "请填写输入法文件的文件名", "IMESetPubString", , 此函数为输入法文件下的库命令名,具体返回值我也说不清楚反正我就按照整数型来处理吧
    .参数 dll文件名, 文本型, , 欲注入DLL的文件名(全路径)
    .参数 是否卸载, 整数型, , 输入法退出时是否同时卸载注入的DLL     0代表是     1代表否
    .参数 是否切换, 整数型, , 当切换到目标输入法时自动切换到下一个输入法   0代表否     1代表是
    .参数 参数一, 整数型, , 0
    .参数 参数二, 整数型, , 0
    .参数 参数三, 整数型, , 0
然后介绍第三个函数:PostMessageA
此函数度姐一下,可以知道此函数一共有4个参数,具体的请到这里查看http://baike.baidu.com/view/1080179.htm由于此函数在网上有许多资源我就不多说了,直接E格式:
.版本 2
.DLL命令 发送消息, 整数型, "user32.dll", "PostMessageA", , 该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。消息队列里的消息通过调用GetMessage和PeekMessage取得。如果函数调用成功,返回非零值:如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。
    .参数 hWnd, 整数型, , 其窗口程序接收消息的窗口的句柄。
    .参数 Msg, 整数型, , 指定被寄送的消息。
    .参数 wParam, 整数型, , 指定附加的消息特定的信息。
    .参数 lParam, 整数型, , 指定附加的消息特定的信息。
当我把这些函数的说明及用法都看了一遍(第4个参数留在下一贴再说),总结出这么一个信息:
ImmInstallIME函数就相当与超级模块里面的安装输入法,IMESetPubString函数就是输入法注入,然后PostMessage函数就是激活输入法啊啦。于是带着好奇与兴奋的心理去事件了一下.....结果悲剧了,输入法是安装成功了,可是**根本不能呼出DLL。很想砸键盘的冲动,但是改用枕头了- -
到底是那里的原因呢??想来想去我得出3个猜想。第一个就是我把那个PostMessage这个函数的参数给弄错了。第二个就是还有一些未知的函数我没有研究出来,第三个就是**我这几天研究的都只不过是浮云吧了!  首先我立即排除第三种猜想!因为我相信自己!然后我又上网查看了一下PostMessage这个函数的具体参数说明,原来是我把参数给填错了!于是乎我改了下参数再次参数,结果让我很失望!还是没呼出来!我测试了差不多40多次还是这样! 我真**有种想抓狂的感受,想发泄一翻,于是乎我的枕头再次受到我的折磨了- -。。。(其实不用这个函数也可以的,只不过得切换输入法才能完成激活。PostMessage这个函数其实就是给注入窗口发送一个窗口机制,而这个机制就是CTRL和SHIFT的组合键。详细资料请参考http://hi.baidu.com/qjjbdkj/blog ... 38c3de9123d909.html)然后我静下心来想象到底是那里出错了??然后回归到代码上面,首先我用ImmInstallIME函数安装了输入法且安装成功!(已经在文字服务和输入语言区域里得到证实),然后又看了看注入代码段那,结果仔细的查看了一翻也没看出错的地方。最后又看了看激活代码段....都对的啊!到底是那里出错了?啊啊啊!我终于愤怒了!话说心灵的愤怒是非常可怕的。。有种想发泄的冲动,可惜这次我那可爱的琴美酱抱枕没有受到这次的“享受”,而是换成我那悲剧的手机了。。。。
               当我发泄完并且静下心来以后我又认真的思考这个问题。。。为什么不能呼出来??我都已经安装成功并且注入了啊!为什么?突然,一个念头在我脑海里闪过,我真的成功的注入了吗?有了这个想法我再次测试了一下,不过这次我并不是看DLL的界面是否呼出,而是当我执行注入操作完成以后手动删除DLL文件(因为如果成功注入的话DLL已经加载到制定的进程里面了不结束这个进程此DLL是无法手动删除的,除非特殊方法,比如360文件粉碎等等),结果让我很是兴奋!看来我并没有成功的注入此DLL啊!到底是哪里没有想到呢?然后我又思考起来..........(当时我有不下10种的猜疑,不过这个猜疑的可能性占60%左右,因为执行注入操作的API是IMESetPubString,而这个API的库文件名就是输入法文件,再看下激活API的参数,第一个是窗口句柄,第四个是输入法句柄)我研究的是输入法注入,那么DLL和输入法就有密切的关系啦,是不是把这2个文件结合起来再次注入就成了??有了这个想法以后我就进行尝试,可惜不知道怎么结合这2个文件啊!! 结合 结合 对了!这个操作和病毒的处理方式不也是一样的么!根据本人以前有一点点的编写病毒的经历我立马想到了E里面的一个命令:复制文件  于是乎我就进行了尝试,在注入代码段前面加入这么一句代码:复制文件(DLL路径,输入法路径)然后运行,当我点击激活按钮时智辅界面成功呼出!啊!当时的那种感觉,你们是无法体会的了!呵呵

53

主题

87

回帖

123

积分

终身VIP会员

Rank: 7Rank: 7Rank: 7

魔鬼币
41790
发表于 2013-11-26 22:36:35 | 显示全部楼层
楼主很有耐心,写了那么多心得,可惜我是新手,不过要向你学习呀

21

主题

50

回帖

57

积分

终身VIP会员

Rank: 7Rank: 7Rank: 7

魔鬼币
16578
发表于 2014-1-13 10:55:49 | 显示全部楼层
学习了,你入道不浅啊,我还比较新!!

4

主题

15

回帖

14

积分

终身VIP会员

Rank: 7Rank: 7Rank: 7

魔鬼币
10372
发表于 2015-3-18 23:37:06 | 显示全部楼层
学习了。。第四个参数呢???????

2

主题

33

回帖

20

积分

终身VIP会员

Rank: 7Rank: 7Rank: 7

魔鬼币
22813
发表于 2018-1-12 08:40:58 | 显示全部楼层
有些游戏是限制输入法的,只有在英文键盘才能操作游戏。切成中文输入只能打字,其他操作不作响应。怀疑是检测输入法名称了。

0

主题

41

回帖

21

积分

编程入门

Rank: 1

魔鬼币
1
发表于 2018-2-22 01:30:16 | 显示全部楼层
5456456456456454
您需要登录后才可以回帖 登录 | 点击注册

本版积分规则

魔鬼作坊|易语言教程|易语言源码|易语言论坛|易语言视频教程| 论坛导航|免责申明|手机版||网站地图
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表魔鬼作坊立场!
任何人不得以任何方式翻录、盗版或出售本站视频,一经发现我们将追究其相关责任!
我们一直在努力成为最好的编程论坛!
Copyright© 2010-2019 All Right Reserved.
快速回复 返回顶部 返回列表