просматривал старые темы и наткнулся на созданную Asterix'ом:"Замаскировать UPX от PEiD!" Так вот я добился того, что PEiD просекает что это упкс только при hardcore method 2. Как с этим бороться? Вопрос к Asterix'у прежде всего, потому что он нашел какие байты нужно затереть, но если у кого-нибудь есть предложения я весь внимания. Заранее спасибо.
1. Заюзать UPX последней версии, т.к. в ней изменился стартовый код (и переход на OEP). 2. Переименовать секции. 3. Вытереть ВЕСЬ заголовок upx (в статье про упаковщики подробно описано где лежит этот заголовок и сколько занимает).
1. используемая версия UPX 2.0 2. Переименовал секции 3. вытер весь заголовок начинается вроде с 2.00 UPX! и т.д. 4. изменил oep Что еще можно сделать? Т.к. все равно при hardcore scan PEiD показывает UPX и т.д. и т.п.
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 вообще не засекает.
Avoidik я ксорить не стал - для эксперимента попробовал просто удалить первые 20 байт сигнатуры upx с помощью hiew, чтоб посмотреть на результат - результат нулевой PEiD показывает, что это UPX, будь он не ладен. Попробую удалить поболее. Честно говоря думал, что обойдется без модернизации ну раз надо, значит надо. Пошел пробовать дальше. Так PEiD при hardcore scan, что по всему файлу сигны из своей базы ищет.
а не пробовал поболее 20 байт поксорить? всю секцию (или почти всю) например? сигнатуры то ведь и не только на ep могут быть
у меня тоже (сегодня проверил те файлы что сделал ранее на нынешнем PEiD) для UPX можно написать простенький криптор, так делают многие
BaGiE пробовал - не определяет, что это UPX, и достаточно всего 42 байта заксорить, но если тупо ксорить можно все заксорить. Asterix тогда решалось с помощью изменения двух байт и сейчас то же самое, но криптор все же напишу, чтоб был. вообщем все сделал - результат: PEiD 0.93 :: Nothing found * PEiD 0.94 :: UPolyX 0.5* Пусть будет, на UPolyX я согласен.
kosfz Там такой код: Код (Text): ; ----------------------------- ; Let's perform initial parsing ; ----------------------------- invoke ReadFile,hFile,OFFSET sTmp,0F8h,OFFSET hInst,0 cmp hInst,0F8h jne @exeerr cmp WORD PTR [sTmp],'ZM' jne @exeerr ; Get "Table offset" cmp WORD PTR [sTmp + 24],40h jl @exeerr @exeerr как раз и выдаёт сообщение об ошибке. В аттаче весь исходник.
Quantum Спасибо большое - избавился от Код (Text): cmp WORD PTR [sTmp + 24],40h jl @exeerr и все стало отлично открываться. Восстановил upx сигну, потом, чтоб распаковать использовал модифицированный upx, а он говорит, что заголовок плохой. Попробовал добавить куда надо 40h - тоже самое - видно в upx тоже надо какую-то проверку убирать.
kosfz Когда писалась статья, под рукой не было ни одного скрамблера, портящего дос-заголовок. Поэтому я даже не обратил внимания в исходниках upx есть ли проверка целостности этого самого заголовка. Чтоб не гадать что и где восстанавливать, предлагаю посмотреть исходники.
а там вот какая строчка в файле p_exe.cpp Код (Text): if (ih.m512+ih.p512*512u < sizeof (ih)) throwCantPack("illegal exe header"); у меня при испорченном заголовке вылетает с сообщением "illegal exe header", так что наверное надо либо ручками править дос заголовок, либо пересобирать upx.
kosfz Не выйдет, т.к. релизный upx использует приватный алгоритм сжатия, а в исходниках используется другой алгоритм, менее эффективный, но открытый. Зато можно сравнить скомпилированные версии до и после исправления данного if и на основании этого пропатчить релизный upx. Но проще заголовок исправить
Quantum так наверное и сделаю, а потом что-нибудь придумаю, чтоб процесс автоматизировать. Всем спасибо за помощь. Тему можно закрывать.