Blog. Just Blog

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

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

Деобфускация скриптов PHP и JavaScript

26.10.2008 | Категория: Темная сторона Силы | Автор: ManHunter

Деобфускация скриптов PHP и JavaScript

Одним из наиболее надежных на сегодняшний день способов защиты скриптов от изучения и модификации является обфускация.


Обфускация (от лат. obfuscare, "затенять, затемнять") - запутывание кода программы, то есть приведение исходного текста к виду, сохраняющему функциональность программы, но затрудняющему анализ, понимание алгоритмов работы и модификацию.


В отличие от однозначно обратимого шифрования и упаковки, обфускация представляет собой необратимое действие. Это значит, что восстановить код скриптов до первоначального вида не представляется возможным. Все без исключения обфускаторы PHP и JavaScript работают двумя способами: из исходного текста удаляются переносы строк и незначимые пробелы, а имена классов, переменных и функций заменяются на бессмысленный набор символов. Эти действия могут как комбинироваться, так и выполняться независимо.

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

Плоды прогресса (приключенческая повесть)

21.10.2008 | Категория: Всякая всячина | Автор: ManHunter
Нашел на компе в залежах фидошных приколов такой вот текст. Литературной ценности он не представляет, но он интересен тем, что все слова в нем начинаются на букву "П". К сожалению, авторство неизвестно. Навеяло вот этой цитатой с баша.

Плоды прогресса
(приключенческая повесть)

Посреди пустыни произрастала пальма. Под пальмой племя папуасов, пораженное проказой, попивало портвейн. Пальма плодоносила плохо, папуасы прозябали, питались падалью, пожирали попугаев, протухших пятнистых питонов. Процветали полиомиелит, паранойя, псориаз, понос, паркинсонизм.

Пытаясь предотвратить полную погибель папуасов, подкомитет помощи первобытным племенам прислал полпреда Попова. Попов, подобно Прометею, принес папуасам плоды прогресса: полупроводники, пылесос, плетизиограф, прочее. Получку Попов получал по пятницам, покупал пиво, пирожки, папайю, повидло - подкармливал проституток, пробуя поддержать популяцию папуасов. План Попова позорно провалился - подлые проститутки применяли противозачаточные пилюли. Племя подыхало. Пронырливые португальцы продавали портвейн по пятьдесят песо, получая пятьсот процентов прибыли. Папуасы пропивали последние плавки.

Пустыня приглянулась преуспевающему плантатору Педро Перейре. "Полью почву, посажу помидоры, пшеницу, перец" - планировал плантатор. Под пасху Педро пригласил Попова пообедать.

- Прогони папуасов, - предложил Перейра, подливая Попову пульке, пунш, пльзеньское пиво, подкладывая печеночный паштет. - Поделюсь прибылью. Пошли подальше поручение подкомитета - получишь парагвайское подданство, поместье, пеонов, пост посла.

- Пшел прочь, паскуда! - пробормотал Попов, пожирая поросенка.

- Подумай. Подарю полотно Пикассо, платиновую пепельницу, Пиночету представлю, - пообещал плантатор.



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

Работа с недокументированными API WHM и cPanel

20.10.2008 | Категория: Web-мастеру и не только | Автор: ManHunter

Работа с недокументированными API WHM и cPanel

cPanel является одной из самых популярных коммерческих панелей управления аккаунтами на серверах виртуального хостинга. Все действия выполняются обычно через web-интерфейс, но для использования в ваших проектах авторами предоставляется API.

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

Абсолютная защита

16.10.2008 | Категория: Темная сторона Силы | Автор: ManHunter

Абсолютная защита

Каждый день появляется все больше вредоносных программ, нацеленных на кражу паролей и другой приватной информации. Противодействие брони и снаряда идет с переменным успехом, талантливые программисты антивирусных лабораторий создают все более мощные средства обнаружения заразы, в это же время не менее талантливые представители андеграунда придумывают новые способы их обхода. Нет никакой уверенности, что обновление антивирусной базы скачается раньше, чем в системе окажется троян. Однако можно противопоставить им практически абсолютную защиту. Принцип ее основан на том, что все вредоносные программы ищут своих жертв по заранее известным параметрам: прописанные в реестре пути установки, фиксированные имена и расширения файлов с паролями. Ни в одной вредоносной программе не будет использоваться сложный алгоритм эвристики или поиска по содержимому, так как это увеличит размер троянов на порядки и затруднит их незаметное распространение.

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

Проверка похожести двух слов

11.10.2008 | Категория: Web-мастеру и не только | Автор: ManHunter
Точное сравнение двух символьных строк, даже регистронезависимое, выполнить нетрудно. А как быть, если в одной их них встречаются символы другого алфавита, похожие по написанию? Так, буква "E" в русской и английской раскладке имеет одинаковое написание, или вместо русской "Н(н)" можно написать английскую "H(h)". Этим могут воспользоваться всякие ублюдки, например оставить сообщение на форуме якобы от администрации, зарегистрировав ник, внешне похожий на ник одного из админов. Для проверки похожести двух строк я использую следующую функцию:
  1. // -----------------------------------------------------
  2. // Функция проверки похожести двух слов
  3. // Параметры: $name1 и $name2 - слова для проверки
  4. // $register = TRUE - проверка регистронезависима
  5. //           = FALSE - проверка с учетом регистра
  6. // На выходе: TRUE - слова похожи, FALSE - отличаются
  7. // -----------------------------------------------------
  8. function chk_similarity($word1$word2$register=false) {
  9.   // Очистить слова от служебных символов
  10.   $word1=eregi_replace("[^0-9a-zа-я]","",$word1);
  11.   $word2=eregi_replace("[^0-9a-zа-я]","",$word2);
  12.  
  13.   // Возврат FALSE если длина слов различается
  14.   // или хотя бы одно из них пустое
  15.   if ((strlen($word1)!==strlen($word2)) || strlen($word1)*strlen($word2)==0) {
  16.     return false;
  17.   }
  18.  
  19.   // Заполнить таблицу соответствий
  20.   $pattern1="";
  21.   $pattern2=Array();
  22.  
  23.   $pattern1.="aа";
  24.   $pattern2[]="[аa]";
  25.   $pattern2[]="[аa]";
  26.  
  27.   $pattern1.="AА";
  28.   $pattern2[]="[АA]";
  29.   $pattern2[]="[АA]";
  30.  
  31.   $pattern1.="BВ";
  32.   $pattern2[]="[BВ]";
  33.   $pattern2[]="[BВ]";
  34.  
  35.   $pattern1.="bь";
  36.   $pattern2[]="[bь]";
  37.   $pattern2[]="[bь]";
  38.  
  39.   $pattern1.="cс";
  40.   $pattern2[]="[cс]";
  41.   $pattern2[]="[cс]";
  42.  
  43.   $pattern1.="CС";
  44.   $pattern2[]="[CС]";
  45.   $pattern2[]="[CС]";
  46.  
  47.   $pattern1.="eе";
  48.   $pattern2[]="[eе]";
  49.   $pattern2[]="[eе]";
  50.  
  51.   $pattern1.="EЕ";
  52.   $pattern2[]="[EЕ]";
  53.   $pattern2[]="[EЕ]";
  54.  
  55.   $pattern1.="HН";
  56.   $pattern2[]="[HН]";
  57.   $pattern2[]="[HН]";
  58.  
  59.   $pattern1.="iI1l";
  60.   $pattern2[]="[iI1l]";
  61.   $pattern2[]="[iI1l]";
  62.   $pattern2[]="[iI1l]";
  63.   $pattern2[]="[iI1l]";
  64.  
  65.   $pattern1.="kк";
  66.   $pattern2[]="[kк]";
  67.   $pattern2[]="[kк]";
  68.  
  69.   $pattern1.="KК";
  70.   $pattern2[]="[KК]";
  71.   $pattern2[]="[KК]";
  72.  
  73.   $pattern1.="MМ";
  74.   $pattern2[]="[MМ]";
  75.   $pattern2[]="[MМ]";
  76.  
  77.   $pattern1.="nп";
  78.   $pattern2[]="[nп]";
  79.   $pattern2[]="[nп]";
  80.  
  81.   $pattern1.="oо0";
  82.   $pattern2[]="[oо0]";
  83.   $pattern2[]="[oо0]";
  84.   $pattern2[]="[oо0]";
  85.  
  86.   $pattern1.="OО0";
  87.   $pattern2[]="[OО0]";
  88.   $pattern2[]="[OО0]";
  89.   $pattern2[]="[OО0]";
  90.  
  91.   $pattern1.="pр";
  92.   $pattern2[]="[pр]";
  93.   $pattern2[]="[pр]";
  94.  
  95.   $pattern1.="PР";
  96.   $pattern2[]="[PР]";
  97.   $pattern2[]="[PР]";
  98.  
  99.   $pattern1.="rг";
  100.   $pattern2[]="[rг]";
  101.   $pattern2[]="[rг]";
  102.  
  103.   $pattern1.="TТ";
  104.   $pattern2[]="[TТ]";
  105.   $pattern2[]="[TТ]";
  106.  
  107.   $pattern1.="uи";
  108.   $pattern2[]="[uи]";
  109.   $pattern2[]="[uи]";
  110.  
  111.   $pattern1.="xх";
  112.   $pattern2[]="[xх]";
  113.   $pattern2[]="[xх]";
  114.  
  115.   $pattern1.="XХ";
  116.   $pattern2[]="[XХ]";
  117.   $pattern2[]="[XХ]";
  118.  
  119.   $pattern1.="yу";
  120.   $pattern2[]="[yу]";
  121.   $pattern2[]="[yу]";
  122.  
  123.   $pattern1.="YУ";
  124.   $pattern2[]="[YУ]";
  125.   $pattern2[]="[YУ]";
  126.  
  127.   $pattern1.="З3";
  128.   $pattern2[]="[З3]";
  129.   $pattern2[]="[З3]";
  130.  
  131.   $pattern1.="ч4";
  132.   $pattern2[]="[ч4]";
  133.   $pattern2[]="[ч4]";
  134.  
  135.   $pattern1.="Ч4";
  136.   $pattern2[]="[Ч4]";
  137.   $pattern2[]="[Ч4]";
  138.  
  139.   // Составить регулярное выражение для проверки
  140.   $tmp="^";
  141.   for ($i=0$i<strlen($word1); $i++) {
  142.     $letter=$word1[$i];
  143.     $pos=strpos($pattern1,$letter);
  144.     if ($pos===false) {
  145.       $tmp.=$letter;
  146.     }
  147.     else {
  148.       $tmp.=$pattern2[$pos];
  149.     }
  150.   }
  151.   $tmp.="$";
  152.  
  153.   // Возврат TRUE - слова похожи или равны
  154.   // FALSE - слова отличаются
  155.   return($register?eregi($tmp,$word2):ereg($tmp,$word2));
  156. }
Примеры использования:

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

Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2026
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.1 сек. / MySQL: 2 (0.0334 сек.) / Память: 4.5 Mb
Наверх