如何用DELPHI程序去修改另外一个EXE文件的内容

来源:百度知道 编辑:UC知道 时间:2024/06/09 22:04:41
假如一个EXE文件中有一些英文或中文字符串。。。比如网址,文字之类的,或者其他信息。我该用什么方法去找到这个EXE文件中这些信息的所在位置,并用自己的DELPHI程序来修改这些信息呢?

虽然分析那个EXE文件的方法有点超出本论坛的主题,但是我想解决问题是不能局限于一个小的范围内的。希望各位能解答的详细一点。先谢了。
谢谢懒虫007的回答,但是可否具体点呢?是否太笼统了?FileStream读进来的还是二进制文件吧?怎么检索字符串啊?希望能给出一些简单的例子,谢谢了。

简单的方法:
用一个FileStream读入指定内容,然后在FileStream里面检索字符串,找到指定位置之后,对流进行写入即可

这种方法需要自己处理一个长度匹配的问题,不然极有可能出现乱码的情况。即被修改内容和修改的内容在长度上保持一致。

在流中直接查找ASCII字符即可,在网上有在流中查找字符的函数:

function ScanStream(T:Tstream;S:String):integer;
var
i,j:integer;
p:Pchar;
begin
getMem(p,T.size);//·ÖÅäÄÚ´æ
T.ReadBuffer(p^,t.Size );//¶Á

for i:=0 to T.Size -1 do
begin
for j:=1 to length(S) do
if p[i+j]<>S[j] then
break;//ÓÐÒ»¸ö²»Í¬¼´Í˳ö
if j>length(S) then
begin //ÒÀ¾Ý
result:=i+1;
break; //Íê³É
end;
end;
FreeMem(p);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
F: TFileStream;
lPositi