Blog. Just Blog

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

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

Gothic Metal фест от агентства "Московский Рок клуб"

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

Gothic Metal фест от агенства "Московский Рок клуб"

Сегодня сходил в клуб "Plan B" на мероприятие с мудреным названием "Первый концерт МРК в поддержку неформального искусства и творческой молодежи", оно же Gothic/Industrial Metal фест от концертного агентства "Московский Рок клуб". Трудовая неделя явно затянулась, так что организм требовал встряски и позитива одновременно.

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

Meizu Music Card (Ritmix RF-7400)

14.01.2009 | Категория: Обзоры техники | Автор: ManHunter

Meizu Music Card (Ritmix RF-7400)

Надоело мучать свою мобилу несвойственными ей функциями MP3-плеера, поэтому к Рождеству сделал себе любимому такой приятный подарок. После лазания по "Савёле" остановился на этой модели. Выбор был сделан из желания получить не очень дорогой плеер с максимальной емкостью памяти для этой цены. Тактико-технические характеристики девайса без труда можно найти в интернете. Это не реклама, просто опишу свои личные ощущения от использования.

Управление очень простое. Все действия выполняются одной большой сенсорной кнопкой и одной маленькой кнопкой листания композиций. Сперва никак не мог приловчиться выполнять прокрутку, пытался делать это легким касанием, но оказалось что ее надо делать как раз с небольшим нажимом, а касание расценивается как команда "Ввод". Меню на русском языке, все интуитивно понятно. К тому же в комплекте идет внушительный мануал с картинками и описанием всех действий, тоже на русском языке. Чтобы кнопки случайно не нажались, например когда плеер лежит в кармане, на корпусе предусмотрен переключатель блокировки. Подключается через стандартный разъем mini-USB к компьютеру, системой определяется как обычная флешка. Заряжается через него же, не требует никаких посторонних батареек и аккумуляторов, что для меня является огромным плюсом. Заряд держит очень долго, даже при постоянном использовании. В документации заявлено более 20 часов непрерывной работы, похоже что так оно и есть.

Звук просто шикарный, особенно после телефона. Настраивается точно под ваши требования с использованием целой кучи опций, таких как объемный звук, усиление басов и высоких частот и т.д. На выходе дает такой громкий сигнал, что даже мой слух, тренированный разными брутальными стилями музыки, максимальную громкость в наушниках не выдерживает. Понимает форматы MP3, WMA, OGG, FLAC, WAV, все залитые в него композиции воспроизвелись без проблем. Также в устройстве есть FM-радио и диктофон. Ни тем, ни другим не пользуюсь, так что ничего больше про них сказать не могу. Еще из полезных мелочей присутствуют часы и календарик.

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

Runtime error R6002 floating point not loaded

13.01.2009 | Категория: Темная сторона Силы | Автор: ManHunter
После распаковки приложений, написанных на Microsoft Visual C++ и накрытых некоторыми протекторами (Armadillo, PECompact и другие) они могут падать при запуске или выполнении каких-либо действий с ошибкой Runtime error R6002 floating point not loaded. Причина ее возникновения следующая: программа была скомпилирована с Microsoft.VC80.CRT и при запуске в ней проверяются атрибуты секций.

Первый способ устранения ошибки R6002 заключается в выставлении атрибутов секций в распакованном файле в точности, как было в оригинальном. Сделать это можно с использованием бесплатной утилиты CFF Explorer VII. Второй вариант, более надежный и гарантированно рабочий - пропатчивание в исполняемом файле функции __fptrap, которая и отвечает за появление этого сообщения об ошибке. Дизассемблером IDA в файле она определяется примерно так:
  1. __fptrap  proc near
  2.           push    2             ; <--- заменить на RET
  3.           call    __amsg_exit
  4.           pop     ecx
  5.           retn
  6. __fptrap  endp
Ее надо пропатчить, заменив первую команду на немедленный возврат из функции RET. Сигнатура поиска 6A 02 E8 ?? ?? ?? ?? 59 C3. К сожалению, сигнатура достаточно короткая и в большом коде может быть найдено несколько совпадений, поэтому при анализе файла очень желательно пользоваться дизассемблером.

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

Функции base64 на Ассемблере

09.01.2009 | Категория: Образ мышления: Assembler | Автор: ManHunter
Алгоритм Base64 может использоваться в пользовательских почтовых приложениях, в качестве одного из уровней защиты шифрованием, для хранения двоичных данных и для решения многих других задачах. В большинстве языков высокого уровня используются штатные функции, в Ассемблере приходится все реализовывать самостоятельно.

Алгоритм Base64 обратимый, то есть из закодированного текста можно в точности получить исходные данные. Начнем с функции кодирования.
  1. ;---------------------------------------------------------------
  2. ; Функция кодирования Base64
  3. ;---------------------------------------------------------------
  4. ; Параметры:
  5. ; lpFrom - указатель на исходные данные
  6. ; lpTo   - указатель на буфер для приема кодированных данных
  7. ; dSize  - размер исходных данных
  8. ; Функция ничего не возвращает
  9. ;---------------------------------------------------------------
  10. proc    base64_encode lpFrom:dword, lpTo:dword, dSize:dword
  11.         pusha
  12.  
  13.         mov     ebx,.base64
  14.         mov     esi,[lpFrom]
  15.         mov     edi,[lpTo]
  16.         mov     ecx,[dSize]
  17.  
  18.         or      ecx,ecx
  19.         jz      .r3
  20. .encode_loop:
  21.         lodsd
  22.         mov     edx,eax
  23.         bswap   edx
  24.         xor     eax,eax
  25.  
  26.         shld    eax,edx,6
  27.         shl     edx,6
  28.         xlatb
  29.         stosb
  30.  
  31.         xor     eax,eax
  32.         shld    eax,edx,6
  33.         shl     edx,6
  34.         xlatb
  35.         stosb
  36.         dec     ecx
  37.         jz      .r2
  38.  
  39.         xor     eax,eax
  40.         shld    eax,edx,6
  41.         shl     edx,6
  42.         xlatb
  43.         stosb
  44.         dec     ecx
  45.         jz      .r1
  46.  
  47.         xor     eax,eax
  48.         shld    eax,edx,6
  49.         shl     edx,6
  50.         xlatb
  51.         stosb
  52.  
  53.         dec     esi
  54.         dec     ecx
  55.         jnz     .encode_loop
  56.  
  57.         jmp     .r3
  58. .r2:
  59.         mov     al,'='
  60.         stosb
  61. .r1:
  62.         mov     al,'='
  63.         stosb
  64. .r3:
  65.         xor     eax,eax
  66.         stosb
  67.         popa
  68.  
  69.         ret
  70.  
  71. .base64 db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  72.         db 'abcdefghijklmnopqrstuvwxyz'
  73.         db '0123456789+/'
  74. endp
Параметры вызова: lpFrom - указатель на кодируемые данные, lpTo - указатель на буфер для приема кодированных данных и dSize - размер кодируемых данных. Все параметры обязательные. Размер буфера-приемника должен быть примерно в 1,3 раза больше исходных данных, это обусловлено особенностями алгоритма кодирования.

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

Обход эвристики Avira AntiVir в JavaScript

08.01.2009 | Категория: Web-мастеру и не только | Автор: ManHunter
Последние несколько дней посетители сайта стали жаловаться, что их антивирус эвристически определяет в HTML-коде страниц сайта вредоносный код. Их объединяло одно: они все пользовались "антивирусом" (в кавычках) под гордым названием Avira AntiVir. После недолгого расследования и тестирования было выяснено, что эта недоделка ругается на скрипт добавления страницы в закладки, а конкретно на его часть, отвечающую за работу в Internet Explorer:
  1. // Internet Explorer
  2. window.external.AddFavorite(urltitle);
Не знаю что надо курить, чтобы додуматься распознавать это действие как опасное, однако факт остается фактом: абсолютно безопасный код распознается этим "антивирусом" как вредоносный. Эвристика ругается на добавление страницы в закладки официально документированными средствами! Отличный пример как НЕ надо писать программы. Чтобы заткнуть Avira достаточно в скрипте чуть-чуть изменить сигнатуру "AddFavorite", а при выполнении привести ее в первоначальный вид:
  1. // Internet Explorer
  2. eval("window.external.AddFa-vorite(url, title)".replace(/-/g,''));
Приношу извинения пользователям за доставленные неудобства. А тупым дрочерам из младших классов, которые писали этот "антивирус", могу только порекомендовать поменьше лазать по порносайтам, тогда и в закладки ничего ставиться не будет. Ну и напоследок: реально вредоносный код на HTML-страницах можно спрятать от Avira AntiVir точно таким же примитивнейшим способом. Выводы о надежности этой поделки, думаю, сделаете сами.

Просмотров: 9368 | Комментариев: 16

01 ... 355 356 357 358 359 360 361 ... 369
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2023
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.1 сек. / MySQL: 3 (0.0297 сек.) / Память: 4.75 Mb
Наверх