перехват CreateProcessW рушит проводник windows 7

Тема в разделе "WASM.BEGINNERS", создана пользователем Postscripter, 19 май 2010.

  1. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    K10
    Есчо и полноценный дизасм.. всё это хорошо, только вот ни вы, ни автор не используете.
     
  2. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Clerk
    Ну я вобще несколько другими методами перехвата пользуюсь, тот кодес старый просто валялся.
    В Мс-Ремовской либе же есть дизасм длин?
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    K10
    ldasm не достаточно, темболее он кривой на сколько я знаю. Нужен полноценный дизассемблер для перемещения например ветвлений. Когдато я использовал для патча не безусловное ветвление, а процедурное, что позволяло использовать один хэндлер который определял откуда был вызов чтением ссылки из стека. Для подобных ситуаций не достаточно простого дизасма длин. Вдобавок просто копировать инструкции не достаточно, это нужно делать динамически с поправкой Ip в контекстах.
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Postscripter
    Это целевая функа:
    Код (Text):
    1. ; Routine
    2. Ip1:
    3.     push ebx
    4. Ip2:
    5.     push esi
    6. Ip3:
    7.     push edi
    8.     ...
    9. IpN:
    10.     ...
    Это буфер:
    Код (Text):
    1. ; Buffer
    2. Ip1':
    3.     push ebx
    4. Ip2':
    5.     push esi
    6. Ip3':
    7.     push edi
    8.     ...
    9.     jmp IpN
    При энуме тредов выполняете следующее.
    Как частный случай:
    rEip = @Ip2: rEip -> @Ip2'
    В общем если все инструкции без поправок:
    rEip = @IpX: rEip -> @IpX'
    rEip -> rEip + (@Buffer - @Routine)
    Универсально:
    rEip = @IpX: rEip -> @[IpX']
    o Сохранение префиксов.
    o Замена Loop, Jecxz etc.
    o Пересчёт и поправка смещений.
    o Корректировка ссылок в стеке для процедурных ветвлений.
    o ldasm лучший этот http://www.eof-project.net/sources/Malum/VirXasm32_v1.5adv/
    o Использование эмулятора/пермутатора - универсально и круто, но сложно ;)
    o Взять Detour, не юзал, вероятно костыли.
    o У z0mbie вроде был двиг для сплайса и у других авторов.
     
  5. Postscripter

    Postscripter New Member

    Публикаций:
    0
    Регистрация:
    15 май 2009
    Сообщения:
    63
    Где-то у Рема была остановка потоков - надо будет прикрутить. И... если сообщение 44 адресовано мне, то я ничего не понял :dntknw: писать такое в разделе для новичков... ... ... ) Судя по всему, останавливая все нити кроме своей в момент модификации кода, можно свести на нет все минусы этого метода, так ведь? Если что-нибудь попробует перехватить уже перехваченную функцию, то сначала вызовет свою, а затем - мою, по измененной ссылке.
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Postscripter
    Что именно не понятно ?
     
  7. barmaley57

    barmaley57 New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2009
    Сообщения:
    58
    Типичное предвзятое отношение. Все в нем прекрасно работает :)
     
  8. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    barmaley57
    Мощность компилятора определяется не только гибкостью скрипта, но и средствами управления. Он включает слишком много мусора и этим нельзя управлять в достаточной степени насколько знаю(я плохо знаком с дельфе). Ктото им и драйвера компилил, но это извращение.
     
  9. barmaley57

    barmaley57 New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2009
    Сообщения:
    58
    Clerk
    Ну насчет мусора - да, есть такое. Но где этого нет? При желании можно максимально избавиться от мусора, используя чистый API без "родных" библиотек.
     
  10. Butters

    Butters New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2010
    Сообщения:
    47
    Clerk
    Ну так если не знаком - тогда чего лезешь со своими советами? :)

    Небольшой оффтопик.
    Мсрем в бытности своей написавший этот ужасный (а он и правда ужасный и глючный см. особенно SaveOldfunction) код этак в 2005 году, когда большинства из вас здесь и в помине не было умудрился таки срубить на этом ужасном, глючном коде, скомпилированным ужасным (с) человек который вообще не знает делфи, компиляторе больше бабла, чем господин Clerk сейчас получает и будет получать в перспективе в ближайшие лет 10, будучи среднестатистическим быдлоадмином (а он быдлоадмин) в РБ. И заметьте и тот и другой занимались малварью, но о заслугах мс-рема знает весь мир, а о заслугах господина Clerk'a знают только в лучшем случае СНГ, и то когда в разговорах упоминают "эй да это тот неуравновешенный гик с васма?", "читал его гуиту, парню нечем заняться", "закосивший под зомбу?".

    На деле, вместо того, чтобы поправить баги в скопипащенном топикстартером коде, умник с припиской vx (хотя о его vx заслугах неизвестно ничего кроме унылого говно-тхт блога на народе.ру, который имеет весьма отдаленное отношение к vx) решил в очередной раз продемонстрировать длину и толщину своего полового органа.

    Мальчик мой, когда уже у тебя мерилом станет профит и количество выполненных тобой коммерческих (ну или хотя бы опен-сурс) проектов, а не вот эта херня, которой ты тут маешься в свободное от быдлоадминства время?:) Удиви меня.
     
  11. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    Butters Ну ты фантазееер.. Профдеятельность Клерка очень далека от компьютеров и кодинга в частности. Челом движет исключительно любопытство и интерес, и если так рассматривать данный вопрос - он далеко продвинулся.
    Никогда не защищал Клерка, зная его неуравновешенность, но в последнее время такого не замечал.. Все имхо.
     
  12. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Butters
    Слышал это уже стопяцот раз. Спрошу снова, причём тут деньги ?
     
  13. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Наверно он хотел сказать, что клерку пора направить свои знания и в практическое русло...
     
  14. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Кстати правка таблицы импорта является изменением кодосекций?
     
  15. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Butters
    Клерк нагенерил кучу всяких интересных техник и идей, и его блог имеет непосредственное отношение к vx. Более того, он постоянно активен на форуме, помогает и направляет многих людей. Сравнение с мсремом тоже не корректно, т.к. это разные временные промежутки, в то время средства защиты были более примитивными, сейчас техники гораздо сложнее и изощренее чем тогда.
     
  16. Postscripter

    Postscripter New Member

    Публикаций:
    0
    Регистрация:
    15 май 2009
    Сообщения:
    63
    Тут становится жарко)) Но может подскажете ещё одну вещь - почему этот самый перехват, сплайсинг, не подходит для 64-битных систем? Он там просто не действует, хотя и ошибок тоже не выдаёт.

    Подробнее сказать не могу - Virtual box будет качаться ещё часов 18...
     
  17. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Postscripter
    Отладчик берите и дебажить.
    Butters
    Ну где вы ?
    Не слышу ответа про деньги. мб ушёл обратно на ксакеп вместе с ремой и остальной своей школотой кодесы компилить.. вобщем в очередной раз я убедился что псевдокод в качестве защиты от подобного нубья и скомерсантов рулет.
     
  18. Postscripter

    Postscripter New Member

    Публикаций:
    0
    Регистрация:
    15 май 2009
    Сообщения:
    63
    Во засада... Нету утменя семёрки! Да ещё и 64-битной. На 32 всё хорошо, может есть просто какие-то нюансы, хорошо известные людям, профессионально этим занимающимся? как например невозможность обращения в физической памяти как к виртуальному устройству в 64-битных вистах, к неразмонтированному диску посекторно (тоже только на x64), или запрет на сплайсинг ядра (что-то слышал подобное)... ?
     
  19. Postscripter

    Postscripter New Member

    Публикаций:
    0
    Регистрация:
    15 май 2009
    Сообщения:
    63
    Это только ведь к ядру относится?
     
  20. viktoor81

    viktoor81 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2009
    Сообщения:
    1
    вопрос следующий...возможно ли скомпиллировать выше названные участки кода на Borland C++ Builder6?..т.е. будет ли работать?