当前位置:编程学习 > VB >>

vb注入机器指令问题求解

碰到个问题纠缠我半天 我想使用WriteProcessMemory写入机器码指令到p2BaseAddress  这个地址
p2BaseAddress = &HEE41EEE

首先&HEE41EEE 的原始代码是 
下面是我读的&HEE41EEE的代码
  Dim abyte(0 To 5) As Byte
  p2BaseAddress = &HEE41EEE
  ReadProcessMemory qjpro, ByVal p2BaseAddress, abyte(0), 6, 0&
读出的abyte从0-5值129[16进制值是81],225[16进制值是E1],255[16进制值是FF],3[16进制值是3],0,0  对应的机器码是:81E1FF030000
实际上相当于指令 and ecx,000003FFh

我想通过WriteProcessMemory 将我构造的abyte 写进去 也就是将
and ecx,000003FFh 替换成mov ecx,00000160h 
mov ecx,00000160h 的机器码是B960010000 但是他只有5byte 前面的读出来的是6byte 所以我加入一个
控制令 nop 90
写入的就是90B960010000
开始构造 数组

  abyte(0) = &H90
  abyte(1) = &HB9
  abyte(2) = &H60
  abyte(3) = &H1
  abyte(4) = 0
  abyte(5) = 0

WriteProcessMemory qjpro, ByVal p2BaseAddress, abyte(0), 6, 0&
当写入的时候 游戏就死机了什么情况 是不是修改了代码就会导致死机
不知道神马情况 有没有高手来指点一下啊
还是应该怎么办
--------------------编程问答-------------------- 自己先沙发 求高手解答 怎么处理死机问题 --------------------编程问答--------------------
写别人的进程是不厚道的吧.
用内存补丁之类的现成程序.
如果你写的内存处的代码处于运行中,你说会怎么样?

更细节的你的找原理性的东西,和vb没关系. --------------------编程问答-------------------- 内存访问需要权限。 --------------------编程问答-------------------- 内存访问我都能读出来 而且我写入了 用ce 去查看代码确实编程了我写入的代码 
但是游戏就死机了  --------------------编程问答-------------------- 游戏不能阻止你的注入,你也不能阻止它自尽! --------------------编程问答-------------------- 用debug。exe能写入不。如果能,就shell --------------------编程问答-------------------- 楼上的能说下具体的做法吗 用debug.exe ??????? --------------------编程问答-------------------- 搞这种东西用VC好点,要不用易语言也不错,VB这么弄很多问题不是出在理论上,而是出在VB本身的结构上。
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,