能力值:
( LV3,RANK:20 )
2 楼
沙发还得自己坐,没人来帮忙解决下?
能力值:
( LV9,RANK:610 )
3 楼
找对地址然后WriteProcessMemory一下不就行了?
能力值:
( LV3,RANK:20 )
4 楼
我说的是静态读取,楼上好像没有看明白我的意思
能力值:
(RANK:410 )
5 楼
如果知道那串字符串位置在哪里的话就比较简单。
1、创建一个TFileStream流,用TFileStream流打开*.exe文件
2、用GetMem申请一个和TFileStream.Size大小的内存缓冲
3、用TFileStream.Read方法读取文件
4、定位到要修改的文件偏移地址(如果不知具体偏移的话,那只好用pos函数查找字符串取得偏移了)。用move函数进行修改内容。
5、用TFileStream.Write方法写回*.exe文件。
6、FreeMem释放申请到的内存
7、释放TFileStream流。
能力值:
( LV3,RANK:20 )
6 楼
谢谢楼上,我先试一试!
能力值:
( LV2,RANK:10 )
7 楼
版主,这是啥语言的?
能力值:
( LV3,RANK:20 )
8 楼
FileStream:=TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone);
FileSize:=FileStream.Size;
GetMem(pBuffer,FileSize);
for i:=$xxxxxxxx to $xxxxxxxx do
begin
FileStream.ReadBuffer(pBuffer[i]^,FileSize);
TmpStr:='$'+IntToHex(pBuffer[i]^,2);
s:=s+chr(StrToInt(TmpStr));
end;
循环到第二次就出现错误了,小虾可否提供一份测试通过的源码!
能力值:
( LV3,RANK:20 )
9 楼
顺便问下WinHex打开一个EXE文件是属于静态分析还是动态分析。像WinHex那样的分析代码该如何写?
能力值:
(RANK:410 )
10 楼
Delphi的Object Pascal语言
var fs:TFileStream;
od:TOpenDialog;
s:String;
begin
od := TOpenDialog.Create(self);
try
od.Filter := 'Exe Files(*.exe)|*.exe|All Files(*.*)|*.*||';
if od.Execute then // 选取要修改的*.exe文件
begin
fs := TFileStream.Create(od.FileName,fmOpenReadWrite); //打开要修改的*.exe文件
try
fs.Position := FileOffset; // 定位到要修改的文件偏移地址
s := 'xxxxxxxxxxx'; // 要修改的字符串(注意:除非你确定更改写入的字符串大小不会影响原*.exe文件,你所要修改的字符串最好还是和*.exe中的字符串长度一样比较好)。
fs.Write(Pointer(s)^,StringLength); // 写入要修改的字串。
finally
fs.Free;
end;
end;
finally
od.Free;
end;
end;
用打开命令打开的文件是属于分析静态文件,打开ROM的文件是属于分析执行中的文件。
不太清楚。可能是使用了内存映射流操作内存数据。
能力值:
( LV3,RANK:20 )
11 楼
就是读配置信息嘛,把字符串放到文件末尾处。
能力值:
( LV3,RANK:20 )
12 楼
var fs:TFileStream;
od:TOpenDialog;
s:String;
begin
od := TOpenDialog.Create(self);
try
od.Filter ...[/QUOTE] 我试了一下,用WinHex打开的EXE可以搜索到的字符串,而用UE和C32ASM等静态分析工具不能搜索到的字符串,好像不能用这种方法去读写,只能通过内存映射操作?说下思路或附下源码.谢谢
能力值:
( LV3,RANK:20 )
13 楼
类似OD或者WinHex这样的工具有人写过没?讲下原理。。。
能力值:
( LV3,RANK:30 )
14 楼
楼主向做生成器。。
能力值:
( LV3,RANK:20 )
15 楼
-------------------------------------------------------------------------
这你都看出来了,好眼力啊 呵呵
补充一点 是想做动态生成器!呵呵
不知道能否提供点思路!