找回密码
 加入
搜索
查看: 4806|回复: 6

[效率算法] [已解决] 如何修改内存中的数据?

  [复制链接]
发表于 2010-12-10 20:54:11 | 显示全部楼层 |阅读模式
本帖最后由 guland 于 2010-12-11 12:44 编辑

如题,在论坛中翻了半天也没找到相关资料.....

其实我只是想要在一个固定的内存地址中写入一个66字节的数据
发表于 2010-12-10 21:56:07 | 显示全部楼层
http://www.autoitx.com/thread-3735-1-1.html

我这个贴可能对你有点帮助
 楼主| 发表于 2010-12-11 08:32:21 | 显示全部楼层
回复 2# my788521


    这篇文章早就拜读过了,一直都是写入失败,不知道是什么原因
发表于 2010-12-11 09:42:47 | 显示全部楼层
调用例子
        $kernel32 = DllOpen('kernel32.dll')
        $pid = Run(@ScriptDir & '\SRO_Client.exe 0 /4 1 0')
        $mid = memopen($pid)
        memwrite($mid, 0x65F33C, '8B0D5C79D3008B118B4214FFD05F83C410C3')
        memclose($mid)
        $kernel32 = DllOpen('kernel32.dll')
        DllClose($kernel32)
相关函数
Func memopen($pid)
        Local $mid = DllCall($kernel32, 'int', 'OpenProcess', 'int', 0x1F0FFF, 'int', 1, 'int', $pid)
        Return $mid[0]
EndFunc   ;==>memopen

Func memread($mid, $adress, $type = 'dword')
        Local $struct = DllStructCreate($type)
        DllCall($kernel32, 'int', 'ReadProcessMemory', 'int', $mid, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', '')
        Return DllStructGetData($struct, 1)
EndFunc   ;==>memread

Func memwrite($mid, $adress, $hex)
        Local $struct = DllStructCreate('byte[' & BinaryLen('0x' & $hex) & ']')
        For $i = DllStructGetSize($struct) To 1 Step -1
                DllStructSetData($struct, 1, BinaryMid('0x' & $hex, $i, 1), $i)
        Next
        Local $x = DllCall($kernel32, 'int', 'VirtualProtectEx', 'int', $mid, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', 0x40, 'dword*', 0)
        DllCall($kernel32, 'int', 'WriteProcessMemory', 'int', $mid, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', 0)
        DllCall($kernel32, 'int', 'VirtualProtectEx', 'int', $mid, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', $x[5], 'dword*', 0)
EndFunc   ;==>memwrite

Func memclose($mid)
        DllCall($kernel32, 'int', 'CloseHandle', 'int', $mid)
EndFunc   ;==>memclose
发表于 2011-2-2 13:54:02 | 显示全部楼层
不太懂,先收藏,慢慢读
发表于 2013-9-11 09:56:27 | 显示全部楼层
挺麻烦,论坛里好像有个红色警戒修改器,就这个
发表于 2013-11-14 03:36:26 | 显示全部楼层
测试过,对于我来说,lanfeng的不能用,这个可以用。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-11 04:00 , Processed in 0.075032 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表