Blog. Just Blog

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

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

Концерт группы Lacuna Coil в "Точке"

16.12.2008 | Категория: Жизнь в оффлайне | Автор: ManHunter

Концерт группы Lacuna Coil

Давно не был на хороших концертах, поэтому сегодня с радостью отправился на Lacuna Coil. Несмотря на мировой кризис, клуб был полон народа. Я дополнил присутствующий электорат своей тушкой и приготовился получать кайф. Как ни странно, концерт начался практически вовремя, 30 минут задержки вообще не в счет. Горячие итальянцы стартанули вообще без разогрева, но он был и не нужен. С первых же аккордов вверх взметнулся целый лес рук, который не опускался до самого окончания концерта. После пары затравочных песен со сцены хлынул просто водопад хитов - "Closer", "Swamped", "Daylight Dancer"... Очаровательная Кристина и Андре выкладывались на сцене на полную, благодарные зрители радостно подпевали, кричали и хлопали. Кавер на песню Depeche Mode "Enjoy The Silence" вместе с Кристиной пел практически весь зал. После этого группа как-то резво свалила в полном составе за кулисы, оставив публику в легком недоумении. Большинство начали скандировать "Lacuna! Lacuna!", другие пожимали плечами "И это все что ли?". Но через несколько минут музыканты вернулись на сцену, Кристина обрадовала, что в программе есть еще парочка песен, и шоу продолжилось. Красивую точку в этом незабываемом зрелище поставила забойная композиция "Our Truth" с их последнего альбома. Уходя со сцены, музыканты побросали в зал мелкие денежки из карманов, бутылки с водой и даже барабанные палочки (почему-то их оказалось аж целых три).

Сказать что я остался доволен концертом - не сказать ничего. Это просто супер!!! В общей сложности Lacuna Coil отыграли около полутора часов. Было очень вкусно, но очень мало. Но очень вкусно!

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

Задача на применение логических инструкций

16.12.2008 | Категория: Образ мышления: Assembler | Автор: ManHunter
Когда-то кому-то помогал с решением задачи на ассемблере, формулировка задания была такая:


Дан массив из 5 байт. Рассматривая его как массив из восьми 5-битных слов, посчитать количество слов с четным числом единиц в слове.


Алгоритм хитровывернутый, комментарии специально не прописывал, чтобы тупая и ленивая школота не смогла объяснить преподу, откуда взялось такое решение и как оно работает.
  1. ;---------------------------------------------------------------
  2. ; Задача на применение логических инструкций
  3. ;
  4. ; Дан массив из 5 байт. Рассматривая его как массив из восьми
  5. ; 5-битных слов, посчитать количество слов с четным числом
  6. ; единиц в слове.
  7. ;
  8. ; Решение: ManHunter / PCL
  9. ;---------------------------------------------------------------
  10.  
  11. format PE GUI 4.0
  12. entry start
  13.  
  14. include 'win32a.inc'
  15.  
  16. ;---------------------------------------------------------------
  17.  
  18. section '.data' data readable writeable
  19.  
  20. xbytes   db 00111000b ; Данные для задачки, взяты с потолка :)
  21.          db 11111110b
  22.          db 01010101b
  23.          db 00001001b
  24.          db 00000110b
  25.  
  26. mask     db 'Count: %i',13,10,13,10
  27.          db '%i%i%i%i%i - %i%i%i%i%i - %i%i%i%i%i - %i%i%i%i%i',13,10
  28.          db '%i%i%i%i%i - %i%i%i%i%i - %i%i%i%i%i - %i%i%i%i%i',13,10
  29.         db 0
  30.  
  31. title    db 'Solution',0
  32. tmp      rb 100
  33.  
  34. ;---------------------------------------------------------------
  35.  
  36. section '.code' code readable executable
  37. start:
  38.          mov     esi,xbytes+4
  39. loc_1:
  40.          lodsb
  41.          mov     ecx,8
  42. loc_2:
  43.          xor     edx,edx
  44.          test    al,00000001b
  45.          jz      loc_3
  46.          inc     edx
  47. loc_3:
  48.          push    edx
  49.          shr     al,1
  50.          loop    loc_2
  51.  
  52.          dec     esi
  53.          dec     esi
  54.          cmp     esi,xbytes
  55.          jnb     loc_1
  56.  
  57.          xor     eax,eax
  58.          xor     esi,esi
  59. loc_4:
  60.          xor     edi,edi
  61.          mov     ecx,5
  62. loc_5:
  63.          add     edi,[esp+eax*4]
  64.          inc     eax
  65.          loop    loc_5
  66.  
  67.          test    edi,edi
  68.          jz      loc_6
  69.          test    edi,1
  70.          jnz     loc_6
  71.          inc     esi
  72. loc_6:
  73.          cmp     eax,40
  74.          jb      loc_4
  75.  
  76.          invoke  wsprintf,tmp,mask,esi
  77.          add     esp,12+(8*5*4)
  78.  
  79.          invoke  MessageBox,HWND_DESKTOP,tmp,title,MB_OK
  80.          invoke  ExitProcess,0
  81.  
  82. ;---------------------------------------------------------------
  83.  
  84. section '.idata' import data readable writeable
  85.  
  86. library kernel32,"KERNEL32.DLL",\
  87.          user32,"USER32.DLL"
  88.  
  89. include "apia\kernel32.inc"
  90. include "apia\user32.inc"
Исходник и скомпилированный файл прилагаются.

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

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

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


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


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


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


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

Читать статью целиком »
Просмотров: 29510 | Комментариев: 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 с нулевым индексом файла. Исходники двух вариантов обработчиков с откомпилированными файлами прилагаются.

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

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

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

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

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

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

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