为编程爱好者分享易语言教程源码的资源网

网站首页 > 易语言相关 > 易语言例程 正文

让易语言多版本共存的补丁

三叶资源网 2019-10-04 10:02:46 易语言例程 1669 ℃ 0 评论

一直坚持使用5.11的版本,查看一些网络上的代码是使用新版本编写的,这就导致了有些代码不能完整显示,有些命令会显示???,每次用新版查看之后,想换回来又需要重新勾选支持库,很是麻烦。完全更换新的版本吧,问题是之前写的一些易的增强插件是基于5.11开发懒得升级了,新版本又没有什么大的更新完全没欲望,还是自己动手搞吧。下面分享一下分析大概的过程。1.易语言配置如何保存的?


   经过分析是保存在zc表中,指向HKEY_CURRENT_USER\Software\FlySky\E。


2.那么易是如何读取zc表的?


  调试易主程序发现易是使用RegCreateKeyExA操作子键的,我们只要过滤掉操作子键名称为E的就可以自定义存储和读取子键目录。


3.过来api那么就想到hook,什么时候hook呢?


   如果写个支持库来hook肯定不行,因为易语言是先读取zc表再加载勾选过的支持库的,那我们怎么才能在在读取前hook呢?1.修改主程序使之载入我们的dll。2.利用劫chidll


易语言有自校验,如果修改还需要和谐一下他的校验点,而且如果后续易更新,还要再弄。还是利用劫chidll来注入比较方便。


那么下面看下导入了哪些dll。WINMM.dll这个很熟悉,以前也用过飘云阁类似的补丁的,就选他吧。

补丁.png 

5.用了之前写的一个PE分析器,直接生成需要的配置和代码

优雅补丁让E语言多版本共存.png    

下面就需要用到扩展的WonderWall了,SK_WINMM_nake.ini这个里面放的是对配置中的函数nake处理,配合支持全局变量的汇编支持,这样就能实现任意类型的函数hook,不需要考虑被劫chi的函数调用类型。

让易语言多版本共存的补丁.png

K_WINMM.def这个文件是导出函数定义文件,使之对应导出函数序号,这个里面就有导出函数序号没有函数名称的定义方法。

至于WonderWall插件为什么没附带因为都是自己想要什么功能就加上,用法什么也没记录,有时间我整理一下。


6.把生成的Winmm.dll 和FakeVer.ini放入易语言安装目录,每个版本自己对应修改配置版本号。这样同时打开多个版本的易语言也能正常读取各自的版本的配置了。

@samshine987

文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
B站弹幕助手源码TGP登录协议识别酷Q机器人UnicodeE2EE互联网服务器套件论坛回帖JSON文件批量下载纯组件实现圆形头像adb模块源码四方无水印Ex_DirectUIAPI创建窗口略缩图获取网络IP地址DNSQQ源码EXDUI界面例程QQ看点评论对比两块内存
最新评论