Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

Защита от спама на сайтах и форумах

14.12.2008 | Категория: Web-мастеру и не только | Автор: ManHunter
Проблема спама в комментариях, гостевых книгах, сообщениях на форумах в настоящее время стоит очень остро. Раньше даже простенькая капча или подтверждение регистрации на форуме по e-mail были практически непреодолимым препятствием для спамботов и автосабмиттеров. Теперь появились достаточно мощные программы для авторегистрации и рассылки спама, способные реально обходить эти защиты. Никаких названий и ссылок на сайты указывать не буду, чтобы не делать рекламы этим ублюдкам. В описании одного из спамботов его аффтар хвалится:


Эксклюзивная возможность - программа обходит ЛЮБЫЕ виды защиты от автоматической регистрации и автосабмита! Такие, как:
- Защита при помощи пиктокода (тикетов) типа "Введите число, которое видите".
- Защита при помощи активации по e-mail.
- Защита при помощи некоторых Java-скриптов.
- Возможность распознавания защиты в виде арифметических операций и логических вопросов


а на следующей же страничке расписывается в своей беспомощности:


Изредка на некоторых форумах встречается защита от автосабмита в виде java- или VB-скрипта.
Как показала практика, чтобы научить программу обходить такого рода защиту, совсем необязательно писать полнофункциональный обработчик скрипта. Главное, чтобы такой вид защиты был достаточно распространён: нецелесообразно создавать обработчик, если такая защита используется только на одном-двух форумах.


Значит наш удар будет нанесен в самое слабое место спамботов - невозможность обрабатывать формы, защищенные при помощи скриптов JavaScript. Лично я противник использования на сайтах различных навороченных капчей, которые не то что робот, а и не каждый здоровый человек разберет. После первого же неправильного ввода желание оставлять комментарий, да и вообще посещать подобный ресурс, очень резко уменьшается. Туда же идут всякие "сколько будет 2+3", "что нарисовано на картинке" и прочие лишние телодвижения, не связанные непосредственно с комментированием.

Читать статью целиком »
Просмотров: 29480 | Комментариев: 64

Обработка перетаскивания файлов (Drag'n'Drop)

10.12.2008 | Категория: Образ мышления: Assembler | Автор: ManHunter
Если в вашем приложении используется обработка файлов, то кроме открытия через стандартные диалоги выбора файла и каталога, можно получать их из Проводника Windows перетаскиванием. Обработка перетаскивания файлов выполняется в два этапа. При инициализации диалогового окна приложения должна вызываться функция DragAcceptFiles. Параметр функции TRUE разрешает принятие файлов окном, а FALSE его запрещает, так что прием файлов можно регулировать динамически. Непосредственно прием файлов окном выполняется функцией DragQueryFile.
  1. ; Сегмент кода
  2. section '.code' code readable executable
  3.         ... 
  4. ; Процедура обработчика окна
  5. proc DialogProc hwnddlg,msg,wparam,lparam 
  6.         ...
  7.         ; Инициализация окна
  8.         cmp     [msg],WM_INITDIALOG
  9.         je      wminitdialog
  10.         ; Обработка перетаскивания файлов
  11.         cmp     [msg],WM_DROPFILES
  12.         je      wmdropfiles
  13.         ...
  14. wminitdialog:
  15.         ; Разрешить окну принимать файлы
  16.         invoke  DragAcceptFiles,[hwnddlg],TRUE
  17.         jmp     processed
  18.  
  19. wmdropfiles:
  20.         ; Обработка полученных файлов. Функция DragQueryFile возвращает имя
  21.         ; файла с указанным индексом (нумерация индексов начинается с нуля).
  22.         ; Для получения общего количества переданных файлов ее надо вызвать с
  23.         ; индексом равным 0FFFFFFFFh
  24.         invoke  DragQueryFile,[wparam],0FFFFFFFFh,NULL,NULL
  25.         ; В регистре EAX количество переданных файлов
  26.  
  27.         ; Перебрать по очереди все переданные окну файлы
  28.         xor     ecx,ecx
  29. process_file:
  30.         push    ecx eax
  31.         ; Получить имя файла или каталога в буфер fname
  32.         invoke  DragQueryFile,[wparam],ecx,fname,100h
  33.         ...
  34.         ; Тут будет обработчик переданных файлов и каталогов
  35.         ...
  36.         pop     eax ecx
  37.         inc     ecx
  38.         cmp     ecx,eax
  39.         jne     process_file
  40.         ...
Если требуется получить только один файл, то запрашивать общее количество файлов не обязательно, достаточно вызвать DragQueryFile с нулевым индексом файла. Исходники двух вариантов обработчиков с откомпилированными файлами прилагаются.

Читать статью целиком »
Просмотров: 4236 | Комментариев: 1

Готовим свинину в пиве

06.12.2008 | Категория: А еще я туда ем! | Автор: ManHunter

Готовим свинину в пиве

Как я и говорил, мясо я люблю больше шоколада. Поэтому сегодня у меня на обед свинина в пиве.

Читать статью целиком »
Просмотров: 9269 | Комментариев: 4

Фишинг серийников в Blumentals Screensaver Factory

04.12.2008 | Категория: Темная сторона Силы | Автор: ManHunter
При помощи программы Blumentals Screensaver Factory вы можете создавать красивые скринсейверы в виде слайдшоу из ваших фотографий. Саму "фабрику" можно без проблем найти в интернете, но речь сейчас не о ней, а о скринсейверах, которые сделаны с ее помощью. В Blumentals Screensaver Factory есть возможность создания коммерческих скринсейверов, защищенных серийным номером, и некоторые аффтары умудряются торговать подобными дешевками, на создание которых было затрачено всего несколько минут. Такие скринсейверы можно узнать по окну настроек:


Окно настроек скринсейвера

В зависимости от использованной версии "фабрики" вкладок может быть больше или меньше, но общий стиль оформления остается неизменный.

Читать статью целиком »
Просмотров: 5017 | Комментариев: 1

Окно поверх всех окон (Always On Top)

03.12.2008 | Категория: Образ мышления: Assembler | Автор: ManHunter
Установка окна поверх всех других окон бывает удобна, когда надо привлечь внимание пользователя к важной информации, или окно с какими-либо данными должно находиться всегда перед глазами. Такое свойство окна можно прописать сразу в ресурсах, а можно изменять динамически, например при нажатии на кнопку-чекбокс "Always on top" или при изменении каких-нибудь внутренних настроек вашей программы.

Для создания окна поверх всех других окон, оно должно быть описано в ресурсах с флагом DS_SYSMODAL. Для динамического изменения используется функция SetWindowPos с флагами SWP_NOMOVE и SWP_NOSIZE. Флаги нужны для того, чтобы не изменять размеры и положение окна.
  1. ; Идентификатор чекбокса в ресурсах
  2. ID_ONTOP        = 101
  3.  
  4. ; Сегмент кода
  5. section '.code' code readable executable
  6.         ...
  7. ; Процедура обработчика окна
  8. proc DialogProc hwnddlg,msg,wparam,lparam
  9.         ; Обработка нажатия на кнопку-чекбокс
  10.         cmp     [wparam],BN_CLICKED shl 16 + ID_ONTOP
  11.         je      .ontop
  12.         ...
  13. .ontop:
  14.         ; Получить состояние чекбокса
  15.         invoke  IsDlgButtonChecked,[hwnddlg],ID_ONTOP
  16.         cmp     eax,BST_CHECKED
  17.         ; По умолчанию будем считать что галочка поставлена
  18.         mov     eax,HWND_TOPMOST
  19.         je      @f
  20.         ; Галочка не поставлена, убрать атрибут "поверх всех окон"
  21.         mov     eax,HWND_NOTOPMOST
  22. @@:
  23.         ; Установить параметр окна "поверх всех окон", изменение размера
  24.         ; и положения окна не производится, это установлено флагами
  25.         invoke  SetWindowPos,[hwnddlg],eax,0,0,0,0,SWP_NOMOVE+SWP_NOSIZE
  26.         jmp     .processed
  27.         ...
  28.  
  29. ; Секция ресурсов
  30. section '.rsrc' resource data readable
  31. ; Диалог описан со стилем DS_SYSMODAL - поверх всех окон
  32. dialog demonstration, 'Always on top Demo', 0, 0, 190, 55,\
  33.         WS_CAPTION+WS_SYSMENU+DS_CENTER+DS_SYSMODAL
  34.         ...
  35.         ; Кнопка-чекбокс, которая будет управлять положением окна
  36.         dialogitem 'BUTTON','Always on top', ID_ONTOP, 5, 150, 63, 13,\
  37.         WS_VISIBLE+BS_AUTOCHECKBOX+BS_FLAT
  38.         ...
В приведенном примере при поставленной галочке "Always on top" окно будет находиться поверх других окон. Исходник с откомпилированным файлом прилагается.

Читать статью целиком »
Просмотров: 10641 | Комментариев: 3

01 ... 278 279 280 281 282 283 284 ... 290
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2019
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.12 сек. / MySQL: 2 (0.0299 сек.) / Память: 4.75 Mb
Наверх