精易论坛

标题: 【首发】调用易语言支持库里的命令,指针操纵(纯核心库,By超级用户) [打印本页]

作者: 1185384801    时间: 2018-7-17 11:01
标题: 【首发】调用易语言支持库里的命令,指针操纵(纯核心库,By超级用户)
本帖最后由 1185384801 于 2018-7-17 11:02 编辑

Hi!大家好!我是超级用户!首先来看一张图:
哈哈本图亮点可多了哦(都圈出来了拉)
调用易语言支持库里的命令这个看起来好像很深奥一样(本程序受到“SalHe”大佬的启发写出来的),其实不然
曾经我记得有人发过一个C#调用易库的,于是我干脆发个易调用的Demo吧!
首先取得易命令指针地址:
  
子程序名返回值类型公开备 注
取指定函数地址_入口整数型 
参数名类 型参考可空数组备 注
支持库信息入口整数型GetNewInf 函数地址
命令索引整数型
变量名类 型静态数组备 注
ret整数型 
如果真 (支持库信息入口 > 0)
ret = Call (支持库信息入口, , )  ' 取得支持库信息指针
ret = 取指定函数地址_指针 (ret, 命令索引)
返回 (ret)
子程序名返回值类型公开备 注
取指定函数地址_指针整数型 
参数名类 型参考可空数组备 注
支持库信息指针整数型
命令索引整数型
变量名类 型静态数组备 注
ret整数型 
如果真 (支持库信息指针 > 0)
ret = 支持库信息指针  ' 取得支持库信息指针
ret = 指针到整数 (ret + 4 � (28 - 1))  ' 第 28 个成员就是第一个命令的地址
ret = 指针到整数 (ret + 4 � (命令索引 - 1))
返回 (ret)
子程序名返回值类型公开备 注
取运行目录_外部文本型 
变量名类 型静态数组备 注
句柄整数型 
类_库操作类_库操作 
返回值数据结构 
p类_指针 
结果文本型 
句柄 = 类_库操作.取核心库模块句柄 ()
句柄 = GetProcAddress (句柄, “GetNewInf”)
句柄 = 类_库操作.取指定函数地址_入口 (句柄, 66)  ' 66是取运行目录在支持库中命令的索引


取得了易支持库命令地址后,我们来分析下易库:
  
子程序名返回值类型公开备 注
易库命令子程序基本结构  
参数名类 型参考可空数组备 注
返回值指针整数型
参数数目整数型
首参数指针整数型


这是结构,返回值指针传入一个“数据结构”,参数数目不说了,然后传入参数指针(整合版本)
那么这样慢慢逆就可以了,但是返回的是指针而不是数据怎么办?别急,我们就需要用到下面的制作万能转换:
  
窗口程序集名保 留  保 留备 注
类_指针   
变量名类 型数组备 注
集_原地址整数型0 
集_目的地址整数型0 
集_自动还原逻辑型  
集_已还原逻辑型  

子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用
集_自动还原 = 真
子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用
如果真 (集_自动还原 取反 (集_已还原))
还原 ()

子程序名返回值类型公开备 注
自动还原逻辑型 
参数名类 型参考可空数组备 注
逻辑型
如果真 (取反 (是否为空 ()))
集_自动还原 = 值
返回 (集_自动还原)
子程序名返回值类型公开备 注
到数据 
参数名类 型参考可空数组备 注
源数据指针整数型
目的变量地址整数型
加入成员 (集_原地址, 指针到数据 (源数据指针, 目的变量地址))
加入成员 (集_目的地址, 目的变量地址)
集_已还原 = 假
子程序名返回值类型公开备 注
还原 
变量名类 型静态数组备 注
n1整数型 
计次循环首 (取数组成员数 (集_原地址), n1)
释放指针数据 (集_目的地址 [n1], 集_原地址 [n1])
计次循环尾 ()
集_已还原 = 真
子程序名返回值类型公开备 注
取指针_通用型整数型 
参数名类 型参考可空数组备 注
变量通用型
置入代码 ({ 139, 69, 8, 201, 194, 4, 0 })
返回 (0)
子程序名返回值类型公开备 注
指针到数据整数型 返回值为目的变量原数据地址
参数名类 型参考可空数组备 注
源数据指针整数型
目的变量地址整数型
置入代码 ({ 139, 69, 12, 255, 48, 255, 117, 8, 143, 0, 88, 201, 194, 8, 0 })
返回 (0)
子程序名返回值类型公开备 注
释放指针数据  
参数名类 型参考可空数组备 注
变量地址整数型
原数据地址整数型
置入代码 ({ 139, 69, 8, 255, 117, 12, 143, 0 })

呵呵仙大神曾经写过一个易版指针,这个呢,则是汇编版本的哦
好的,那么我们就大胆调用吧!

最后还是那句老话:源码回复下载!!
最后说一句:如果你觉得可以的话,请:
一下(点2下又不会扣分,而且还会加精币哦!!!加精币哦!!!),源码回复下载!!
[hide=d996999] 执行命令.e (25.55 KB, 下载次数: 184) [/hide]

作者: Joniak    时间: 2018-7-17 11:04
我是沙发
作者: 扣扣    时间: 2018-7-17 11:09
这东西找了好久勒,谢谢!!

作者: Yulent    时间: 2018-7-17 11:13
【首发】调用易语言支持库里的命令,指针操纵(纯核心库,By超级用户)

作者: 流云思水    时间: 2018-7-17 11:18
#在这里快速回复#感谢发布原创作品,精易因你更精彩!
作者: DDSGXQ    时间: 2018-7-17 11:36
果然是超级用户。厉害了
作者: 谁的坏叔叔    时间: 2018-7-17 11:52

作者: kmskik    时间: 2018-7-17 12:14
谢谢分享好东西
作者: 邪魅天涯    时间: 2018-7-17 12:16
支持一下,用指针调用之后应该可以用高版本的VC编译器编译了吧

作者: Bszk    时间: 2018-7-17 12:34
大佬有好多好作品哎,可惜我一个都看不懂。。
作者: 天雨时晴    时间: 2018-7-17 13:13
感谢分享原创作品.
作者: cf2006a    时间: 2018-7-17 13:17
什么东东!!!干什么用呢?
作者: futiem    时间: 2018-7-17 13:18
如果你觉得可以的话,感谢分享原创作品.
作者: syamd29    时间: 2018-7-17 13:33
#在这里快速回复#而且还会加精币
作者: 这就是用户名    时间: 2018-7-17 13:35
kk
作者: ForeverXJie    时间: 2018-7-17 13:39
支持开源,感谢分享
作者: sunmoonstar    时间: 2018-7-17 14:07
顶上。。。。。。
作者: longsui48    时间: 2018-7-17 14:29
有没有用 看了再说

作者: kike    时间: 2018-7-17 14:40
不得不回复了,支持一个。
作者: wanyou52    时间: 2018-7-17 14:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: ilvxe    时间: 2018-7-17 14:58
学习了,下来了看看

作者: 情雅    时间: 2018-7-17 15:02
谢谢楼主分享
作者: 韦贝贝    时间: 2018-7-17 15:36
谢谢楼主分享
作者: 天机玄狐    时间: 2018-7-17 18:02
谢谢楼主的无私奉献!!!!!!

作者: 呵呵仙    时间: 2018-7-17 18:26
本帖最后由 呵呵仙 于 2018-7-17 18:29 编辑

一定好好学习,天天向上!加复内容自动变了?

作者: 401263018    时间: 2018-7-17 18:58
没看懂到底有啥用啊
作者: HeraLess    时间: 2018-7-17 23:01
        支持开源~!感谢分享
作者: static101    时间: 2018-7-18 00:02
哇塞,支持
作者: 解千语    时间: 2018-7-18 00:03
谢谢LZ分享!

作者: xslyhk    时间: 2018-7-18 00:27
谢谢分享哦
作者: wanzhenghe999    时间: 2018-7-18 09:10
辛苦,感谢分享~~
作者: 网络注册会员    时间: 2018-7-18 16:32
原来如此是这样的
作者: 凌哥    时间: 2018-7-18 18:05
...兼容其它支持库么

作者: 1185384801    时间: 2018-7-18 18:13
凌哥 发表于 2018-7-18 18:05
...兼容其它支持库么

没试过,但理论上可以
作者: jhai    时间: 2018-7-18 19:00
对楼猪只能说,你太伟大了!!

作者: 315215    时间: 2018-7-18 23:45
没看懂到底有啥用啊
作者: 练祖岚    时间: 2018-7-19 09:33
还是那句话,我是来拿精币的😏
作者: tl858    时间: 2018-7-19 15:51
完全看不懂,感觉好厉害的样子
作者: 财付通消息    时间: 2018-7-19 19:19
这个很强大~
作者: 神游时代    时间: 2018-7-20 03:04
支持开源~!感谢分享
作者: 毛超    时间: 2018-7-20 18:40

感谢楼主分享!!!!!
作者: YuSiuLow    时间: 2018-7-21 14:55
回复看帖子 谢谢分享。

作者: feng5555    时间: 2018-7-23 10:33
这样只是动态调用 静态链接呢 难道要内存load吗。。。
作者: 若曦年华    时间: 2018-7-23 12:10
可以,thank you


作者: qw1417    时间: 2018-7-23 17:47
可以,thank you
作者: 司徒西    时间: 2018-7-23 21:47
        支持开源~!感谢分享
作者: fengyishen    时间: 2018-7-24 03:55
新手救解。这个有何意义?减少编译体积?过检测?还是单纯技术研究!
作者: 网络注册网员    时间: 2018-7-24 10:15
支持一下支持
作者: gto250    时间: 2018-7-26 21:06
不懂有什么用处!!
作者: jr21066    时间: 2018-7-29 14:09
就想要个自动加模块的.不知能实现不
作者: wujun97185    时间: 2018-11-11 17:08
不太懂,看样子很厉害啊
作者: 2229755358    时间: 2018-11-13 00:29
路过下载,拿来研究
作者: a1140141768    时间: 2018-11-15 20:45
学习了。。。。。。。。
作者: wzx17520394175    时间: 2019-6-29 09:52
路过下载,拿来研究
作者: bustvr    时间: 2019-9-20 22:49
谢谢分享高精源码,来学习了.
作者: 陈道友    时间: 2019-11-12 11:49
3Q楼主分享
作者: 小码人    时间: 2020-3-14 14:15
超级用户很棒,加油,支持你!
作者: 2442295093    时间: 2020-5-23 18:01
我天啊,我居然看不懂这是干嘛的
作者: kirisame    时间: 2020-8-18 00:00
thanks for sharing
作者: french007    时间: 2022-1-8 14:11
大神 能hook 支持库里面的命令吗
作者: the68    时间: 2023-3-8 11:55
感谢分享




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4