RGSS/Ruby 运行x86原生代码的一种方法

今天研究RPG Maker中使用API callback的时候想到的一种方法。将代码加载到虚拟内存中,给予RWE权限,然后使用EnumWindows回调启动我们的代码。
例如以下代码

编译后反汇编,得到

省事起见,字符串和MessageBoxA的地址用Ruby做后续修正。大概过程为

写成Ruby:

运行后即可弹出消息框。

发表评论