EXECryptor & OllyDbg

Тема в разделе "WASM.RESEARCH", создана пользователем Asterix, 28 апр 2005.

  1. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Проблема в следующем, под NT+ протектор не стопорится на EP в OllyDbg,

    под win98 всё нормально.

    Поступило предложение что это связано с секцией tls, может кто-нибудь

    может пролить свет на эти хитрости?
     
  2. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    Ставь бряку в первый tls-callback, первый декриптор там :derisive:
     
  3. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Для TLS можешь ещё задействовать опцию [Break on debug string]

    Если включить игнорирование всех exception, кроме single-step, то можно выловить установки TF

    Через Set Condition и Trace\Animate into можно выловить RDTSC

    А ты что, собрался ломать? :) Там этих фич хватает, лучше отключи все exception и приатачся к уже запущеной проге, потом только откроешь main поток в CPU, один раз нажмешь F7, потом Ctrl+F8 и F12 (включается режим бога %) и можешь ставить бряки (иногда будет вылетать, но трейсить можно), у меня голого энтузиазма хватило ровно на два дня Ж)

    Я так понимаю там нужно разобратся с HFE? т.е. какие параметры ему и для чего надо, жаль по нему на русском я чет ничего не нашел
     
  4. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Спасибо.

    Нужно мне про tls где-то прочитать поподробнее :)







    Хотел как-то проверить запускаемость под Olly,

    а также антиотладочные трюки посмотреть, как я понимаю

    это был первый трюк %)
     
  5. QuickeneR

    QuickeneR New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2003
    Сообщения:
    21
    Про tls все есть в доках http://wasm.ru/docs/2/pe_docs.zip



    А вот как сделать, чтобы он не определял Олю, как только ее запустишь - это вопрос :)
     
  6. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Ольку надо пропатчить, чтобы регистрировала класс окна не OLLYDBG, тогда под ней нормально запускается
     
  7. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Отрывок из третьих упаковщиков:



    Есть еще один трюк, о котором нам хотелось бы рассказать. Во второй части упаковщиков упоминалось о tls-секции в PE-файле. Так вот, в [8] предложено создавать массив указателей на функции в tls-секции dll. Благодаря следующей цепочке в DLL-loader’e – ntdll.dll:


    Код (Text):
    1. LdrpInitializeProcess -> LdrpRunInitializeRoutines -> LdrpCallTlsInitializers -> LdrpCallInitRoutine




    возможен вызов этих функций ДО передачи управления отладчику. Т.е. появляется неконтролируемый код, который может делать все, что заблагорассудится. Например, проверять IsDebuggerPresent в самом наивном варианте. Пример такого файла лежит в директории codeflow\testers\tls\compileable. Оригинальный исходник можно найти в [8] (MASM). В нашем примере убраны макросы оптимизации импорта и поддержка dll.. Основные моменты просты:



    PUBLIC _tls_used

    ;это имя обязано присутствовать и должно быть объявлено как PUBLIC



    _tls_used TLS_DIRECTORY <_tls_start, _tls_end, _tls_index, __xl_a, 0, ?>

    ;__xl_a - это просто массив указателей на код, который и будет вызываться лоадером



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


    Код (Text):
    1. // codeflow.сpp
    2. #ifdef TRACE_TLS_INITIALIZERS      
    3.         CatchTLSCallbacks(pmi);    
    4. /* pmi объявлен как PMODULE_INFORMATION –> codeflow.h – служебная
    5. структура, хранящая информацию о загруженных модулях;
    6. CatchTLSCallbacks анализирует TLS-директорию на предмет callbacks */
    7. #endif
     
  8. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    8. http://www.anticracking.sk/EliCZ/
     
  9. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Вот очень сокращенный лог из олли, это до EP
    Код (Text):
    1.            New process with ID 0000031C created
    2. 0051089D   Main thread with ID 000001A0 created
    3. 77FA14E3   Debug string: LDR: PID: 0x31c started - '"C:\temp\EXECryptorCrackMe.exe"'
    4. 77FA14E3   Debug string: LDR: NEW PROCESS
    5. 77FA14E3   Debug string: LDR: Snapping imports for EXECryptorCrackMe.exe from kernel32.dll
    6. 77FA14E3   Debug string: LDR: Snapping imports for EXECryptorCrackMe.exe from user32.dll
    7. 77FA14E3   Debug string: LDR: Tls Found in EXECryptorCrackMe.exe at 50fa3c
    8. 77FA14E3   Debug string: LDR: TlsVector 132660 Index 0 = 132660 copied from 50fa54 to 132670
    9. 77FA144B   System startup breakpoint
    10. 77FA14E3   Debug string: LDR: Real INIT LIST
    11. 77FA14E3   Debug string:      C:\WINNT\system32\kernel32.dll init routine 793ace51
    12. 77FA14E3   Debug string:      C:\WINNT\system32\user32.dll init routine 77e311c5
    13. 77FA14E3   Debug string: LDR: Tls Callbacks Found. Imagebase 400000 Tls 50fa3c CallBacks 50fa68
    14. 77FA14E3   Debug string: LDR: Calling Tls Callback Imagebase 400000 Function 51049c
    15. 00510271   Exception C000001E (INVALID LOCK SEQUENCE)
    16. 0050FF75   Single step event at EXECrypt.0050FF75
    17. 00510B29   INT3 command at EXECrypt.00510B29
    18. 77FA14E3   Debug string: NAME - LoadLibraryA
    19. 77FA14E3   Debug string: NAME - GetProcAddress
    20. 77FA14E3   Debug string: LDR: Calling Tls Callback Imagebase 400000 Function 4762ef
    21. 00000026   Access violation when executing [00000026]
     
  10. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    bogrus





    Вобще-то пропатчена, это у тебя просто крякмис устаревший,

    я запускал сам протектор, было это неделю назад

    тогда же он и был скачан, т.е. уже нового образца.

    А вот против OutputDebugString нужно код в плагин дописать, а то меня уже и арма этим эксплоитом достала.





    volodya

    Ой :) А у меня ведь этот кусок есть, ничего не помню %)



    Вобще-то действительно есть смысл отладчику предупреждать

    хотя бы о наличии секции tls, иначе можно так виря случайно

    запустить.
     
  11. test

    test New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2003
    Сообщения:
    4
    Адрес:
    Russia
  12. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576




    Я знаю. Стремный он.
     
  13. test

    test New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2003
    Сообщения:
    4
    Адрес:
    Russia
    Asterix

    Есть у меня еще одинн... Он скрывает олю от Execryptora :)
     
  14. nice

    nice New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2003
    Сообщения:
    42
    Адрес:
    Russia
    test

    О как! А реально получить это чудо?
     
  15. test

    test New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2003
    Сообщения:
    4
    Адрес:
    Russia
  16. Relayer

    Relayer New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2004
    Сообщения:
    27




    1) на русском ничего нет - можешь не искать

    2) трактор, автомобиль и телега имеют много общего - например четыре колеса :) но там не hfe :) хотя и чем то похоже :)







    пошел посыпать голову пеплом :)))