Blog. Just Blog

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

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

Функции 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 раза больше исходных данных, это обусловлено особенностями алгоритма кодирования.

Читать статью целиком »
Просмотров: 5378 | Комментариев: 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 точно таким же примитивнейшим способом. Выводы о надежности этой поделки, думаю, сделаете сами.

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

Поздравляю с Рождеством Христовым!

07.01.2009 | Категория: Всякая всячина | Автор: ManHunter

Поздравляю с Рождеством Христовым!

Вот наступает Рождество,
Вчера закончились морозы,
А на снегу лежали розы
И, будто бы от них занозы,
Коснулись сердца моего.
Год пролетит - минует век,
Ах, время, как оно не вечно,
Течёт рекою скоротечной,
Каким же был вчера беспечным,
А ныне новый человек.
Журчит заботами своими
Жизнь, протекая, как вода,
То радости, а то беда,
То наступают холода,
Но оттепель грядёт за ними.


Просмотров: 4404 | Комментариев: 1

Новый Год под пальмами

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

Новый Год под пальмами

Вот я и вернулся из новогодней поездки в Египет. На этот раз я летал в курортный город Хургаду. Борт отправился рано утром из аэропорта "Внуково" и уже около 12 дня местного времени меня уже встречали в аэропорту представители турагенства. Дальше будет очень много фотографий, так что кто на платном трафике будьте аккуратнее.

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

Поздравляю с Новым Годом!

27.12.2008 | Категория: Всякая всячина | Автор: ManHunter

Поздравляю с Новым Годом!

Всех гостей моего блога, знакомых и незнакомых, поздравляю с Новым 0x7D9h годом! Старый год позади, он был трудным и напряженным, многое изменилось, что-то прошло, что-то появилось. Пусть новый год принесет только положительные эмоции, пусть сбываются все ваши мечты и исполняются желания. Счастья вам, крепкого здоровья, большой и чистой любви!

А я на Новый Год свалил на неделю в теплые края, буду водить хороводы под пальмами :) Когда вернусь, то выложу подробный фотоотчет о поездке. Не скучайте!

С уважением, -
ManHunter

Просмотров: 3225 | Комментариев: 5

01 ... 348 349 350 351 352 353 354 ... 362
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2022
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.16 сек. / MySQL: 2 (0.0503 сек.) / Память: 5 Mb
Наверх