我用writeprocess写入到004xxxx地址可以实现
但是用到copymemory却会出现
access violation at address 0148ebee in module '1.dll'. Write of address 00468242.
OK ,我再用内嵌汇编 先用读的 具体代码:
  asm
    pushad
    push eax
    mov eax,[$00468242]
    mov tp,eax
    pop eaxtp为integer OK OK 用汇编终于可以读到00468242的内存值了
那我就继续用汇编的方法来写内存,具体代码:
tp:=541522585;
asm
push eax
push ebx
mov eax, $00468242
mov ebx,tp
mov [eax],ebx
pop ebx
pop eax 但是竟然诡异的出现了access violation at address 0148ebee in module '1.dll'. Write of address 00468242.
这个错误。 搞不懂为什么会这样。 请教各位高手帮帮忙.

解决方案 »

  1.   

    writeprocess可以写其它线程或进程的"可操作"地址
    copymemory不可以的吧保护模式下的汇编没大用,delphi的内嵌汇编更没大用
      

  2.   

    那请问除了writeprocess函数还有virtualallocex函数还有什么函数可以写其它线程或进程的"可操作"地址 ?
      

  3.   

    我用copymemory 写00axxxxx的地址却可以写 而004xxx却不可以
      

  4.   

    去看 WINDOWS核心编程 第13章Windows的内存结构 先,得对自己要搞的东西最起码有个基本认识,别老问最基础的问题