首页
社区
课程
招聘
求助,用VB怎么写内存补丁?
发表于: 2006-11-2 13:18 5110

求助,用VB怎么写内存补丁?

2006-11-2 13:18
5110
我利用OD找到一个血的地址006B1DD2 mov dword prt[ecx+4f4],edx
如果我找到的这个地址是准确的,并且如果我把空白地址确定为009D7ea0
是不是可以下面这样写:
006b1dd2 jmp 009d7ea0(原来的地址中代码改为跳转到空白地址)

009d7ea0 mov dword prt[ecx+4f4],edx 在空白地址处写原代码
009d7eb0 mov dword prt[9d7ed0] ,edx 把血的值写到9d7ed0处
009d7ec0 jmp 006b1dd8 转回原代码的下一句

想法是最后把血的值写在009d7ED0处,程序读009d7ED0就可以了,
上面的想法对不?

那上面的代码在VB中该如何写呢?我查了下jmp 009d7ea0的机器码是E9 C9 60 32 00
那我要写006b1dd2 jmp 009d7ea0(原来的地址写上转到空白地址的代码) 在VB中写法是怎样的?是下面的语句吗
WriteProcessMemory hProcess 006b1dd2, lpBuffer, nSize, 0
那lpbuffer和nsize二个变量都要怎么写的,请各位大哥指点。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
还没解决,斑竹有空吗,帮我下啊,
2006-11-2 19:24
0
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
最初由 ccpdg 发布
我利用OD找到一个血的地址006B1DD2 mov dword prt[ecx+4f4],edx
如果我找到的这个地址是准确的,并且如果我把空白地址确定为009D7ea0
是不是可以下面这样写:
006b1dd2 jmp 009d7ea0(原来的地址中代码改为跳转到空白地址)

........


直接用OD改写不就得了?干吗一定要用VB写呢?

2006-11-2 20:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我在用VB编写内存补丁啊。
2006-11-2 20:47
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
5
Private Declare Sub WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpDestBuff As Long, ByVal lpPatchBuff As Long, ByVal CodeSizeLen As Long, ByVal lpNumByWrite As Long)

Dim lpBuff(5) As Byte
lpBuff(0) = &HE9 '这里开始写你的补丁机器码
lpBuff(1) = &HC9
lpBuff(2) = &H60
lpBuff(3) = &H32
lpBuff(4) = 0
WriteProcessMemory hProcess, &H006b1dd2, VarPtr(lpBuff(0)),5,0
2006-11-2 23:17
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢斑竹,我去试下
2006-11-3 11:25
0
游客
登录 | 注册 方可回帖
返回
//