Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #88, АПРЕЛЬ 2006 г.

Форум в топку

f0gg0t (f0gg0t@gmail.ru)

Хакер, номер #088, стр. 088-108-2


if pos('admin_email', ansilowercase(Result))>0 then begin

inc(floodc);

Result:='';

exit;

end;

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

[реггер]

Дай угадаю, ты думал, что столько «мяса» для флудера ты будешь регистрировать руками? Как бы не так. Напишем реггер и не просто реггер, а автоматическую машину регистрации с распознаванием картинок. Я не стал делать его универсальным, а просто выбрал самый сложный вариант с самой хитрой картинкой. Если ты разберешься с тем, как он работает, то накодить реггеры для всех остальных вариантов не составит труда. Итак, наш план действий:

1)скачать страницу регистрации

2)считать хитрый код и прибавить к url’у форума

3)скачать картинку

4)конвертировать

5)распознать картинку

6)завершить регистрацию

Вроде бы с 1-3 пунктами осложнений быть не должно (см. сорцы и все предыдущие выпуски Хакера). Конвертация – это две строчки кода: сначала полностью разжимаем JPG, а потом присваиваем битмапу. А вот чтобы распознать картинку, придется немного попотеть.

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

index.php?act=Reg&coppa_user=0&termsread=1&coppa_pass=1&agree_to_terms=1

Находим Id-картинки по строке: "regid" value="."

Прибавляем значение к index.php?act=Reg&CODE=image&rc=.

Теперь у нас есть полный путь к картинке. Но со скачиванием картинки при помощи WinSock также возникают определенные трудности, ведь картинка - не текст и содержит нулевые символы, поэтому помещать ее в string нельзя, для этого воспользуемся потоками(TStream) и посчитаем ее из сокета побайтово. Далее остается только загрузить битмап из потока функцией LoadFromStream и распознать.

[опознание]

Начать писать распознаватель нужно с создания эталонов, то есть идеальных букв или цифр для определенных картинок. Для этого нужно сопоставить несколько вариантов написания цифр и создать из них максимально похожую сразу на все картинку. От этого действа будет зависеть качество распознавания. Стоит учесть, что во всех картинках IPB посередине идет линия, если серединного куска цифр нет нигде, то и не стоит пририсовывать ее к эталону. Хм… Пора составлять план распознавания.

1)определить вертикальные и горизонтальные границы

2)убрать все ненужные нам цвета, оставить только черный и близкий к черному цвет

3)выделить активные зоны, то есть те места на картинке, где располагаются наши цифры

4)сравнить каждую цифру с каждым эталоном

Назад на стр. 088-108-1  Содержание  Вперед на стр. 088-108-3