赞 | 86 |
VIP | 0 |
好人卡 | 1 |
积分 | 136 |
经验 | 14048 |
最后登录 | 2021-1-24 |
在线时间 | 2753 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 13562
- 在线时间
- 2753 小时
- 注册时间
- 2014-10-4
- 帖子
- 756
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
我用了 VA rgss301
加载so库的原理
so本质是dll
ruby对一个比方 aa.so 的库 加载就是调用它的 Init_aa 导出函数
而拓展库需要用到ruby一些函数 比方定义类 方法 新建字符串啥的
rgss是闭源的 意味着这些函数没有作为导出函数
我们要加载so 只要建立这个函数导出表 然后调用 Init 就行
然后 有些内部函数蛮好找的 只要和同版本的源码比照
不过有几个坑
一是有些函数rgss用不到 所以就删掉了 也就是没了
这时候得自己去补充 靠子函数写全
二是rgss的编译优化导致子函数调用规范不那么正常
比方有些是 eax 作为第一个参数 其余压栈 有些是 ebx作为第一个参数 等等
三依旧是优化 很多函数展开了...
最大的坑还是烦人
win32ole大概需要一百来个函数吧 找了一天 找全了
然后刚刚顺便补全了 Fiber 的功能
没写win32ole的范例 因为有些控件不是每台电脑上有的 主要还是..我懒
请自行测试吧!
先这样
睡觉了
win32ole.zip
(1.41 MB, 下载次数: 117)
|
评分
-
查看全部评分
|