跟踪其他修改器修改的内存地址(和SOFTICE+金山取的相同),取得被修改地址为&H163254,然后写程序,思路如下,用FindWindow取窗口句柄,GetWindowThreadProcessId转换为进程句柄,而后ReadProcessMemory读内存值如果不是预定值就WriteProcessMemory写进去。应该没问题吧可是写的时候写不进去呢。。是用下面这个函数取的内存数据,4字节方式吧?取回来是10进制数。Public Function Ncnr(lppid As Long, lpADDress As Long) As Long
Dim pHandle As Long ' 储存进程句柄
' 使用进程标识符取得进程句柄
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, lppid)
' 在内存地址中读取数据
ReadProcessMemory pHandle, ByVal lpADDress, ByVal VarPtr(Ncnr), 4, 0&
' 关闭进程句柄
CloseHandle pHandle
End Function
这样调用:M = Ncnr(mPid, &H163254)然后修改这个地址的内容,就出问题了,没弄明白,到底咋了,非让我一个字节一个字节写么,疯了WriteProcessMemory lhProcess, ByVal lpDestAddr, ByVal lpSrcAddr, blen, Null
就这句了
lhProcess  是目标进程句柄,用GetWindowThreadProcessId获取的
lpDestAddr 是目标进程中目标地址
lpSrcAddr  是要写入的内容,是一个指针吧
Dim mBuff(3) As BytemBuff(0) = &H0
mBuff(1) = &H0
mBuff(2) = &H2
mBuff(3) = &H1C然后这样调用WriteProcessMemory mPid, &H163254, ByVal VarPtr(mBuff(0))没反应啊?????郁闷,数据怎么就没变呢
WriteProcessMemory的声明没错吧:
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
lpNumberOfBytesWritten 的意思是麻?内存操作类型吗,看的代码都是用0或者&0(也就是Null)。
疯了,求教。。哪位有现成的函数给发一个吧!!另外上次HOOK封包的程序没继续做啊,现在修改成能在进程一开始的时候就截获封包了而已。还没整理,很乱啊,呵呵。

解决方案 »

  1.   

    忘记说了,哈哈,GetWindowThreadProcessId以后OpenProcess了,再读或写的。
      

  2.   

    WriteProcessMemory mPid, &H163254, ByVal VarPtr(mBuff(0))
    ------------------------------用vb来写这些东西,不得不佩服一下先
    mPid是用OpenProcess打开的句炳么?另外,你的参数个数好象都不对(不会vb,难道另有玄机?),最后,你没有传你需要拷贝的大小,你需要返回的已写入的大小,你没有做返回值的出错处理
      

  3.   

    lpNumberOfBytesWritten 的意思是麻?看E文就知道是成功写入的BYTE数量啊。WriteProcessMemory mPid, &H163254, ByVal VarPtr(mBuff(0))这个API需要5个参数的!!!!!!!!!
      

  4.   

    HOHO。。呵呵,确实出了点问题,我把函数里面的东西拿出来了,后面两个参数分别是4和Null
    WriteProcessMemory mPid, &H163254, ByVal VarPtr(mBuff(0)), 4, Null
    这样不过我似乎知道问题所在了,不知道为什么,我把写内存函数里面OpenProcess给注释了哈哈
      

  5.   

    不知道原因啊!郁闷,我的代码写的是正确的。用TSPY看了一下,把注释掉的恢复就能用了。还在看,能修改是能修改,地址也对,数值上还有一点小问题,就是
     ByVal VarPtr(mBuff(0)) 这个明显不对么,传的是指针,这可不成,把指针当数了。
      

  6.   

    哦,这次可以了,把定义搞TMD错了,哈哈。。代码么,写完了。其实啊,还得说说,是往坛子里复制的时候没注意,我写的时候参数是全的。呵呵。不过既然差这点分升级也得给啊。。
      

  7.   

    写了个
    ★传颂之物汉化版★ (全年龄) Version1.00
    的人物能力修改器,在以前写的东东基础上改的,没什么好说了。
      

  8.   

    Thank you .Need 25p to level up now.