我想用delphi将一个目标EXE中的几行16进数据全改成00怎么弄?例如 将761820 到 769530之间的16进制数据全替换成00 然后保存成新的exe 应该怎样写?高人请贴代码,谢谢!!!

解决方案 »

  1.   

    用流啊,看帮助 Stream.read,stream.write
      

  2.   

    还弱弱的问一句 大侠们看的都是英文帮助吗? 我的delphi的help里 就没一个中文字
      

  3.   

    Create一个MemoryStream
    用LoadFromFile读入文件
    用Position设置偏移量
    然后Write数据进去
    再SaveToFile
    最后Free掉
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var fm:TFileStream;
        b:array[0..8191] of byte;
        i:integer;
    begin
        i:=769530-761820;
        fillchar(b,sizeof(b),0);
        fm:=TFileStream.Create ('c:\1.exe',fmOpenReadWrite);
        fm.Position :=761820;
        fm.Write(b,i);
        fm.Free ;
    end;