Vb.net 如何锁定WriteProcessMemory以使值保持不变
我已经成功地在vb.net中实现了WriteProcessMemory函数(WOOP!)。但是,当我尝试更改某个值时,它有时会自动更改回以前的值。如果可能的话,我想要一种锁定和解锁这些值的方法 以下是更改值的代码:Vb.net 如何锁定WriteProcessMemory以使值保持不变,vb.net,memory,Vb.net,Memory,我已经成功地在vb.net中实现了WriteProcessMemory函数(WOOP!)。但是,当我尝试更改某个值时,它有时会自动更改回以前的值。如果可能的话,我想要一种锁定和解锁这些值的方法 以下是更改值的代码: _memManager.TryAttachToProcess("SomeAPP") Dim bytes() As Byte = _memManager.ReadBytes(xpos(0), 4) Dim currentx As Double = BitConv
_memManager.TryAttachToProcess("SomeAPP")
Dim bytes() As Byte = _memManager.ReadBytes(xpos(0), 4)
Dim currentx As Double = BitConverter.ToSingle(bytes, 0)
Dim targetx As Double = currentx + 2
bytes = BitConverter.GetBytes(targetx)
For i = 0 To xpos.GetLength(0) - 1
_memManager.WriteBytes(xpos(i), bytes.Length, bytes)
Next
_memManager.DetachFromProcess()
RichTextBox1.AppendText("compleate" & Chr(13))
任何帮助/建议或链接都很好 我相信那些“gamehack”程序通常做的只是更改计时器上的值。假设内存值每100ms左右设置一次新值。
您试图针对的程序中可能包含反回火机制,例如使用多个变量作为1值。如果该值未存储在其他位置,则无法重置为以前的值,也许您应该找到该位置并在那里更改该值。
我不相信你真的可以永久地锁定对其他一些程序的部分内存的写访问,但我可能错了。我猜目标会因为内存损坏错误而立即崩溃 你确定这值得吗,真的?对不起?你的意思是什么?你可以调试目标应用程序,看看是什么过程覆盖了你的值,看看这个值从哪里来,然后改变它,除非它驻留在私有内存中,在这种情况下,一旦目标字段被改变,你只需粗暴地覆盖它(每x毫秒检查一次,如果值发生变化,就覆盖它)好的,以上是您优化性能的尝试,对吗?