Не выходит распаковать ASProtect (руками)

Тема в разделе "WASM.RESEARCH", создана пользователем DenisMallex, 17 ноя 2004.

  1. DenisMallex

    DenisMallex New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2004
    Сообщения:
    1
    Адрес:
    Russia
    Дело было так:



    Есть программа PEiD говорит: ASProtect 1.2x - 1.3x [Registered] -> Alexey Solodovnikov.



    Еще какой то Id (не помню который) говорит: ASProtect 1.2x [New Strain]



    Вот. Приступаем.

    1. OEP нашел вроде: 00410847, но там:


    Код (Text):
    1.  
    2. xor eax, eax
    3. push 00000000
    4. cmp dword ptr[esp+08], eax
    5. push 00001000
    6.  


    Прога изначально писана на VC - это явно не начало, значит украл ASPR гад, ищем в мусоре находим аналог следующему:
    Код (Text):
    1.  
    2. PUSH EBP
    3. MOV EBP,ESP
    4. PUSH   -1
    5. PUSH   425D30
    6. PUSH   4108AC
    7. MOV EAX,DWORD PTR FS:[0]
    8. PUSH EAX
    9. MOV DWORD PTR FS:[0],ESP
    10. SUB ESP,58
    11. PUSH EBX
    12. PUSH ESI
    13. PUSH EDI
    14. MOV DWORD PTR SS:[EBP-18],ESP
    15. CALL DWORD PTR DS:[424228]               ; kernel32.GetVersion
    16. XOR EDX,EDX
    17. MOV DL,AH
    18. MOV DWORD PTR DS:[431904],EDX
    19. MOV ECX,EAX
    20. AND ECX,000000FF
    21. MOV DWORD PTR DS:[431900],ECX
    22. SHL ECX,8
    23. ADD ECX,EDX
    24. MOV DWORD PTR DS:[4318FC],ECX
    25. SHR EAX,10
    26. MOV DWORD PTR DS:[4318F8],EAX
    27. PUSH 1
    28.  


    Т.е. начало C-шной программы - дальше в обычной проге как раз Call на то что мы нашли как OEP.

    (Даже ф-цию в себя затянул ASPR гад).

    Кстати перед "OEP" - пустых байт или мусора нету - т.е. украл но как-то не обычно, ладно - это мы обойдем - прилепим наш кусок в конец секции (там места хватает) туда поставим OEP и сдалаем какраз Call на этот обрубок.



    Пока все ОК. Программа на "OEP" делаем dump (PE Tools или LordPE). Берем ImpRec 1.6F ставим наш OEP-Base в "OEP" т.е. 00010847. Жмем IAT Auto Search имеем: RVA 00024000 Size 000004A4 - функций в оригинальной проге импортируется раз-два и обчелся. Жмем GetImports 122 resolved, 1 - нет. К той одной plug-in ASProtect 1.22 - ресолвится как GetProcAdress. Т.е. все resolved - FixDump - суем дамп.



    Вроде должно работать но как бы не так.

    1. Открываем полученное в W32Dasm и вместо импорта видим типа такого:
    Код (Text):
    1.  
    2.  Addr:087E393C hint(0000) Name: б|й_с"щ_щ_щ_щ"щ_щ_щ°щРшШd3жалиvоxрzф|ш р=,
    3.  Addr:83C0BE0F hint(BE0F) Name: б|й_с"щ_щ_щ_щ"щ_щ_щ°щРшШd3жалиvоxрzф|ш р=,
    4.  Addr:06EB38E8 hint(0000) Name: б|й_с"щ_щ_щ_щ"щ_щ_щ°щРшШd3жалиvоxрzф|ш р=,
    5.  Addr:83C0BE0F hint(BE0F) Name: б|й_с"щ_щ_щ_щ"щ_щ_щ°щРшШd3жалиvоxрzф|ш р=,
    6.  Addr:464631E8 hint(0000) Name: б|й_с"щ_щ_щ_щ"щ_щ_щ°щРшШd3жалиvоxрzф|ш р=,
    7.  Addr:7C14453B hint(0000) Name: б|й_с"щ_щ_щ_щ"щ_щ_щ°щРшШd3жалиvоxрzф|ш р=,
    8.  




    Что я криво сдалал ?? Причем один раз удалось (не помню как) получит нормальный импорт в W32Dasm. Даже тут нас поджидает главная загвоздка:



    В листинге есть вызовы вида Call 00EE0000 во МНОГИХ случаях, например - рядом с "OEP" там где в нормально программе Call на HeapCreate и во множесте других случаев.



    Что я не сделал или сделал не так. Может кто объяснит и/или поможет распаковать ??



    Программу вышлю на e-mail если кто может помочь (~300Kb

    один .exe, не требует инсталляции). Или можно скачать

    линк



    Unpack-erы типа AsprStripperXP 1.35, Stripper 2.07F, Stripper 2.11RC2 - программу не берут. С чем вылетает первый - не помню, а Stripper-ы: происходит запуск программы, затем срабатывание защиты - Protection Error в одном случае Error 80 в другом Error 85 - для какого Stripper-а какой Error - не помню да и не важно это.



    Сама же программа защищена ключем в реестре (видимо) которого естественно нету. Попытка не распаковывая выявить алгоритм проверки ключа (видимо что-то типа контрольной суммы) - мне не удалась - запутано сильно, причем похоже что частью к этому приложил руку ASPR.
     
  2. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    C распаковкой дествительно проблемы...



    >>Сама же программа защищена ключем в реестре (видимо) которого естественно нету.

    Не реестр а ключивой файл.
     
  3. Bit hack

    Bit hack New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2004
    Сообщения:
    7
    "plug-in ASProtect 1.22 - ресолвится как GetProcAdress."

    Многие плагины ЧАСТО глючат.=> Не юзай, ручками.

    1. Открываем полученное в W32Dasm и вместо импорта видим типа такого:

    Юзай иду, в виндизасме чёто кудато ещё надо добавить для просмотра импорта!