赞 | 0 |
VIP | 8 |
好人卡 | 27 |
积分 | 49 |
经验 | 41413 |
最后登录 | 2012-10-21 |
在线时间 | 833 小时 |
Lv3.寻梦者 弓箭手?剑兰
- 梦石
- 0
- 星屑
- 4869
- 在线时间
- 833 小时
- 注册时间
- 2010-11-17
- 帖子
- 1140
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
首先,
为了取得某个 String 的指针,我在 VX/RGE/XP 下写这个脚本:- RtlMoveMemory_pi = Win32API.new("kernel32", "RtlMoveMemory", "pii", "i")
- ab = "abcdefg"
- address = "xxxx"
- RtlMoveMemory_pi.call(address, ab.object_id * 2 + 12, address.size)
- address = address.unpack("L")[0] # 这个就是内存位置的开头
- buff = " " * ab.size # 将成为 "abcdefg" 的复制本
- RtlMoveMemory_pi.call(buff, address, ab.size)
- p buff
复制代码 那时候的 object_id * 2 + 12 是"撞"出来的,所以我没有查到 Ruby 的内存结构。
ACE 的时候,发现不管用,而且出现全"\0"和全"?",并且程序有一定几率死掉(似乎因为读取内存不属于程序)。
问题是结构和 object_id 有什么分别? |
|