вопрос про upx к Asterix

Тема в разделе "WASM.BEGINNERS", создана пользователем kosfz, 28 авг 2006.

  1. kosfz

    kosfz New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2006
    Сообщения:
    45
    Адрес:
    Russia
    просматривал старые темы и наткнулся на созданную Asterix'ом:"Замаскировать UPX от PEiD!" Так вот я добился того, что PEiD просекает что это упкс только при hardcore method 2. Как с этим бороться? Вопрос к Asterix'у прежде всего, потому что он нашел какие байты нужно затереть, но если у кого-нибудь есть предложения я весь внимания. Заранее спасибо.
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    1. Заюзать UPX последней версии, т.к. в ней изменился стартовый код (и переход на OEP).
    2. Переименовать секции.
    3. Вытереть ВЕСЬ заголовок upx (в статье про упаковщики подробно описано где лежит этот заголовок и сколько занимает).
     
  3. kosfz

    kosfz New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2006
    Сообщения:
    45
    Адрес:
    Russia
    1. используемая версия UPX 2.0
    2. Переименовал секции
    3. вытер весь заголовок начинается вроде с 2.00 UPX! и т.д.
    4. изменил oep

    Что еще можно сделать? Т.к. все равно при hardcore scan PEiD показывает UPX и т.д. и т.п.
     
  4. ssx

    ssx Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    336
    зачем тебе это? тот же peid с плагином generic unpacker влет распакует
     
  5. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    с тех времен столько воды утекло, PEiD сто раз обновился ;)
     
  6. Avoidik

    Avoidik New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2004
    Сообщения:
    288
    Адрес:
    Russia
    kosfz, тупо поксорь первые 20-байт OEP запакованного файла и при загрузке расшифровывай
     
  7. kosfz

    kosfz New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2006
    Сообщения:
    45
    Адрес:
    Russia
    ssx
    с плагином generic unpacker влет падает - хотя может версия не та. у меня PEiD 0.93, а плагин 0.1. Есть и PEiD 0.94, но плагин тот же, помоему с плагином что-то не то. LordPE с этим справился, но мне интересно именно как PEiD обойти.
    Asterix
    и все же подскажи где эти байты. ты вроде писал, что там всего пара байт была, если конечно помнишь.
    Avoidik
    щас гляну, но что-то кажется не проканает.
    Quantum
    спрошу пока случай представился, а можно как нить файл запакованный upx'ом и с испорченным дос-заголовком в Recover UPX открыть, а то выдает что-то вроде: "could not load the specified PE"?

    И что самое обидное PE Tools upx вообще не засекает.
     
  8. kosfz

    kosfz New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2006
    Сообщения:
    45
    Адрес:
    Russia
    Avoidik
    я ксорить не стал - для эксперимента попробовал просто удалить первые 20 байт сигнатуры upx с помощью hiew, чтоб посмотреть на результат - результат нулевой PEiD показывает, что это UPX, будь он не ладен. Попробую удалить поболее.

    Честно говоря думал, что обойдется без модернизации ну раз надо, значит надо. Пошел пробовать дальше.

    Так PEiD при hardcore scan, что по всему файлу сигны из своей базы ищет.
     
  9. BaGiE

    BaGiE New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2005
    Сообщения:
    84
    Адрес:
    Mordor
    а не пробовал поболее 20 байт поксорить? всю секцию (или почти всю) например? сигнатуры то ведь и не только на ep могут быть
     
  10. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    у меня тоже
    (сегодня проверил те файлы что сделал ранее на нынешнем PEiD)
    для UPX можно написать простенький криптор, так делают многие
     
  11. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    BaGiE
    В импорте, наверно, ещё есть... И в заголовке (атрибуты секций и т.д.)
     
  12. BaGiE

    BaGiE New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2005
    Сообщения:
    84
    Адрес:
    Mordor
    я про то же. но над упх не обязательно так извращатья
     
  13. kosfz

    kosfz New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2006
    Сообщения:
    45
    Адрес:
    Russia
    BaGiE
    пробовал - не определяет, что это UPX, и достаточно всего 42 байта заксорить, но если тупо ксорить можно все заксорить.
    Asterix
    тогда решалось с помощью изменения двух байт и сейчас то же самое, но криптор все же напишу, чтоб был.

    вообщем все сделал - результат:
    PEiD 0.93 :: Nothing found *
    PEiD 0.94 :: UPolyX 0.5*
    Пусть будет, на UPolyX я согласен.
     
  14. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    kosfz
    Там такой код:
    Код (Text):
    1.             ; -----------------------------
    2.             ; Let's perform initial parsing
    3.             ; -----------------------------
    4.             invoke ReadFile,hFile,OFFSET sTmp,0F8h,OFFSET hInst,0
    5.             cmp hInst,0F8h
    6.             jne @exeerr
    7.             cmp WORD PTR [sTmp],'ZM'
    8.             jne @exeerr
    9.             ; Get "Table offset"
    10.             cmp WORD PTR [sTmp + 24],40h
    11.             jl @exeerr
    @exeerr как раз и выдаёт сообщение об ошибке. В аттаче весь исходник.
     
  15. kosfz

    kosfz New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2006
    Сообщения:
    45
    Адрес:
    Russia
    Quantum
    Спасибо большое - избавился от
    Код (Text):
    1. cmp WORD PTR [sTmp + 24],40h
    2. jl @exeerr
    и все стало отлично открываться. Восстановил upx сигну, потом, чтоб распаковать использовал модифицированный upx, а он говорит, что заголовок плохой. Попробовал добавить куда надо 40h - тоже самое - видно в upx тоже надо какую-то проверку убирать.
     
  16. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    kosfz
    Когда писалась статья, под рукой не было ни одного скрамблера, портящего дос-заголовок. Поэтому я даже не обратил внимания в исходниках upx есть ли проверка целостности этого самого заголовка. Чтоб не гадать что и где восстанавливать, предлагаю посмотреть исходники.
     
  17. kosfz

    kosfz New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2006
    Сообщения:
    45
    Адрес:
    Russia
    Quantum
    Сейчас скачаю исходники и гляну.
     
  18. kosfz

    kosfz New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2006
    Сообщения:
    45
    Адрес:
    Russia
    а там вот какая строчка в файле p_exe.cpp
    Код (Text):
    1. if (ih.m512+ih.p512*512u < sizeof (ih))
    2.         throwCantPack("illegal exe header");
    у меня при испорченном заголовке вылетает с сообщением "illegal exe header", так что наверное надо либо ручками править дос заголовок, либо пересобирать upx.
     
  19. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    kosfz
    Не выйдет, т.к. релизный upx использует приватный алгоритм сжатия, а в исходниках используется другой алгоритм, менее эффективный, но открытый. Зато можно сравнить скомпилированные версии до и после исправления данного if и на основании этого пропатчить релизный upx. Но проще заголовок исправить :)
     
  20. kosfz

    kosfz New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2006
    Сообщения:
    45
    Адрес:
    Russia
    Quantum
    так наверное и сделаю, а потом что-нибудь придумаю, чтоб процесс автоматизировать.

    Всем спасибо за помощь. Тему можно закрывать.