首页
社区
课程
招聘
[求助]按键精灵官方的DLL插件,去除只能用于按键精灵中分析
发表于: 2018-6-4 10:30 6566

[求助]按键精灵官方的DLL插件,去除只能用于按键精灵中分析

2018-6-4 10:30
6566

最近想偷个懒调用按键精灵(按键精灵9)的DLL 结果发现DllRegisterServer失败,然后开始下面研究!

而可以自己写个DLL,让按键精灵去创建好插件对象,然后作为参数传递到你的DLL中,可以发现这玩意其实就是个COM组件。这个对象可以任意使用!

按键精灵官方的DLL插件,有没有办法去除只能用于按键精灵中

后来经过一番调查,好像按键官方会给插件作者一个签名工具,这玩意就是对DLL做一些修改,让其他语言不能以常规的方式注册和调用!

用OD跟踪,按键精灵会在主线程启动时创建2个对象“QMDispatch.QMLibrary.Inner”“QMDispatch.QMLibrary”

在注册表里找到分别定位到:按键精灵主程序(EXE)或者小精灵 和 “C:\Users\Administrator\AppData\Roaming\qmacro\qdisp.dll”。

用空白文件只读替换掉“qdisp.dll”将不能正常运行小精灵!插件也不能正常使用,说明这个“QMDispatch.QMLibrary”有这关键作用!(估计是处理变量用的)

然后用按键精灵来“Set a = CreateObject("QMPlugin.Bkgnd")”,发现在按键精灵中能正常创建,但在VBS,VB中提示“自动化类型失败”

用OD跟踪这段语句(别以为按键精灵就不能跟,它的代码还是会送到vbscript.dll执行)它注册之后创建对象是先ole32.CLSIDFromProgIDEx然后ole32.CoGetClassObject(其他的我不是看的很明白)

以我的理解,按键精灵就是个虚拟机,将VBS字符加密储存。运行时送给翻译器解密并加工 然后再次给vbscript.dll翻译执行。

也就是说按键精灵对DLL做了一些特殊修改。而创建对象应该是自己实现了这个特殊的“CreateObject”

由此,可以看出按键精灵对COM组件的调用原理理解的还是比较深的。那么我们是不是也能做出只有自己才能调用COM组件出来?我们又又什么办法来调用按键精灵DLL?本人功力不够,看看有没有人帮忙研究出其中门道


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2018-6-4 10:34 被晓之风霜编辑 ,原因: 帖子显示不全
上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//