A程序想修改B程序的00000580H。。修改后的内容是自定义的。
00000580H并不是文件头的第一个地址
请问该如何实现?

解决方案 »

  1.   

    没看明白。
    这个00000580H是B程序的什么东东? 是B程序中某处(或某几处)出现的内容? 还是B程序从头开始偏移580H处?
      

  2.   

    00000580H是用UE打开B程序后显示的地址。是要修改B程序中的某几处。。比如:B程序中存在一个字符串为:“abcderdddd”。我想把他修改为“121111111”这样的。
      

  3.   

    var
      Source:TFileStream;//文件流
      p1:pchar;//指针
      size1:integer;//指定大小
      addr1:longint;//文件指针也就是UE地址addr1:=$000000;//UE中地址
    p1:=pchar(edit1.text);//指针指向edit1.text
    size1:=length(edit1.text);//写入数据大小
    Source:=TFileStream.Create('文件路径');//创建对象
    Source.Seek(addr1,sofrombeginning);//移动指针到指定地址
    source.WriteBuffer(p1^,size1);//写入数据
    source.SaveToFile('保存新文件路径');//保存,这个不要解释了吧
    source.Free;//最后释放对象
      

  4.   

    你是指要修改物理文件,还是在运中的进程? 如果是前者可以看楼上的.如果是写进程中的
    地址,可以在msdn中查找一下写远程进程的相关API