![]() |
eXeL@B —› Вопросы новичков —› Определение того, что файл упакован |
Посл.ответ | Сообщение |
|
Создано: 06 мая 2008 05:47 · Личное сообщение · #1 |
|
Создано: 06 мая 2008 05:54 · Личное сообщение · #2 |
|
Создано: 06 мая 2008 06:10 · Поправил: MACKLIA · Личное сообщение · #3 |
|
Создано: 06 мая 2008 06:16 · Личное сообщение · #4 |
|
Создано: 06 мая 2008 07:26 · Личное сообщение · #5 самый простой, имхо, открыть ресторатором. если ресурсы видно - значит нормальный, невидно - упакован. правда в некотрых случаях с армой и другими протекторами ресурсы могут быть видны. можно просто посмотреть заголовки секций. архивация не всегда тоже даст точный ответ. если выбраны опции типа "без сжатия" или минимальное, то файл в архиве сожмётся неплохо. короче, самый надёжный на мой взгляд способ - просмотр заголовков секций... ----- Do Not Get Mad Get Money! ;) ![]() |
|
Создано: 06 мая 2008 07:56 · Поправил: 4kusNick · Личное сообщение · #6 Тему в рездел новичков, а упакованность\запротекченность можно задетектить разными способами - энтропия, секции глянуть (можно юзать всякие утилиты, типа PEiD, DiE и тд), попробовать в олли пихнуть и на первые байты глянуть. В общем, читай статьи по ручной распаковке и экспериментируй. Я обычно смотрю секции, т.к. и можно определить не только упакованность\запротекценность проги, но и узнать чем была прога покрыта\упакована. PS да уж, с архивом идея оригинальная ![]() ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. ![]() |
|
Создано: 06 мая 2008 09:30 · Поправил: drin · Личное сообщение · #7 |
|
Создано: 06 мая 2008 10:07 · Личное сообщение · #8 |
|
Создано: 06 мая 2008 10:11 · Личное сообщение · #9 Psycho 100 % способа конечно не существует, однако если использовать сразу несколько способов, то можно почти с полной уверенностью определить, что файл упакован. 1. Определение по энтропии файла (например, посредством Die). 2. Определение на битость ресурсов (например, посредством Restorator, если не открываются, а прога написана на С, то значит пакован, при этом соответветствующее сообщение будет, что ресурсы сжаты или зашифрованы). 3. По названиям секций (посредством любого файлового аналзатора, можно увидеть характерные названия для какого-либо пакера\прота). 4. Самый тупой - запустить прогу, а потом непропатченную Олю. Если появится надпись, что отладчик найден, или же просто прога закроется, тогда можно быть уверенным, что использован како-то прот. WELL пишет: Самый тупой и быстрый способ. В архив сожми и посмотри насколько размер файла изменится. Если больше чем в 2 раза (примерно), значит не запакован. Если процентов на 20, то запакован. Интересный метод. ![]() ----- Программист SkyNet ![]() |
|
Создано: 06 мая 2008 11:44 · Личное сообщение · #10 |
|
Создано: 06 мая 2008 11:51 · Личное сообщение · #11 |
|
Создано: 06 мая 2008 12:09 · Личное сообщение · #12 |
|
Создано: 06 мая 2008 16:25 · Личное сообщение · #13 Господа, все это конечно хорошо, но вы все забываете одну важную вещь. Требуется не узнать, что файл упакован, а написать программу, которая бы определяла это. Поэтому способы с использованием Оли, Ресторатора не катят. Сжатие еще может быть и осуществимо, правдо придется писать архиватор руками. Еще какие-нибудь варианы? P.S. Насчет того, что тема в раздел новичков, я не согласен. Если кто-то так считает, то жду от вас работающего метода. А когда вы мне назовете штук пять стабилных, тогда я соглашусь, что с веткой промазал. ![]() |
|
Создано: 06 мая 2008 16:34 · Личное сообщение · #14 |
|
Создано: 06 мая 2008 16:41 · Личное сообщение · #15 Psycho пишет: Сжатие еще может быть и осуществимо, правдо придется писать архиватор руками а если заюзать готовое - aplib нопремер (быстро и просто) ? И поступить так: WELL пишет: В архив сожми и посмотри насколько размер файла изменится. Если больше чем в 2 раза (примерно), значит не запакован. Если процентов на 20, то запакован. P.S. На 100%-ю надежность способ, конечно, не претендует. Psycho пишет: Насчет того, что тема в раздел новичков, я не согласен а я согласен ----- все багрепорты - в личные сообщения ![]() |
|
Создано: 06 мая 2008 16:46 · Личное сообщение · #16 Это не совсем софтина, это только очень маленькая ее часть. Я ведь не прошу 100% гарантии определения того, что файл упакован. Просто нужен метод который работает. Например с архивацией - сомневаюсь... Например если файл исполняемый сесит 1 кб. То не думаю, что после упаковки или архивации он будет весить намного меньше. В данном случае возможно использование упаковки, как способ обойти антивирус, а не средство уменьшения размера файла. Кажется в таком случае, архивация не спасет. В случае с энтропией, то придется сильно повозится и поэкперементировать, чтобы узнать порог, при котором файл считать упакованым. А это довольно таки сложно. Особенно если учесть, что он может оказаться разным для x86 и x64. ![]() |
|
Создано: 06 мая 2008 17:14 · Личное сообщение · #17 |
|
Создано: 06 мая 2008 17:17 · Личное сообщение · #18 |
|
Создано: 06 мая 2008 18:55 · Личное сообщение · #19 |
|
Создано: 06 мая 2008 18:56 · Поправил: MACKLIA · Личное сообщение · #20 Psycho пишет: данном случае возможно использование упаковки, как способ обойти антивирус Чтобы антивирус обойти таким способом над упакованым файлом еще поработать придется ,да ито гарантия не 100%.Если EntryPoint начинается с pushad то это неким образом уже будет свидетельствовать об упакованости файла,а push ebp о неупакованости ![]() ----- Что один человек сделал , другой всегда сломать может... ![]() |
|
Создано: 06 мая 2008 22:27 · Личное сообщение · #21 У AntiVir можно поучиться ![]() Структура заголовков, секций, выравнивания, расположение директорий, Анилиз тойже директории импорта, на количество и наличие определенных API, энтропии секций... В комплексе можно на сказать, что файл был чем-то изменен, упакован... В принципе можно подогнать анализ под структуру современных компиляторов, если отличная, то уже какие-то изменения были ![]() ![]() |
|
Создано: 07 мая 2008 05:29 · Личное сообщение · #22 GlOFF пишет: У AntiVir можно поучиться Антивирусы так и обманываются ![]() ![]() ----- Что один человек сделал , другой всегда сломать может... ![]() |
|
Создано: 07 мая 2008 06:09 · Личное сообщение · #23 |
|
Создано: 07 мая 2008 06:28 · Личное сообщение · #24 Psycho пишет: Есть какие-нибудь надежные способы програмной проверки того, что исполняемый файл упакован Вопрос сам по себе некорректен. Что считать упаковкой? PE - это контейнер, в различных секциях могут быть различные "вещи", не говоря уже о том, что все секции могут быть слиты в одну - и тогда усредненная оценка также информативна, как средняя температура по больнице. Многие файлы уже содержат в себе архивы, не являясь при этом упакованными: инсталляторы, файлы содержащие звук и графику итп. Кроме того, статистически невозможно отличить упаковку от шифрования. Так что для простых случаев подойдет подсчет энтропии (это делает большинство анализаторов, есть несколько плагинов к PEiD), а в сложных - только глазами смотреть. ![]() |
|
Создано: 07 мая 2008 16:18 · Личное сообщение · #25 Psycho пишет: Я ведь не прошу 100% гарантии определения того, что файл упакован. Просто нужен метод который работает. По сигнатурам тогда от PEiD'а делай... Посмотри gAPE, там похожая реализация "В программе используется формат плагинов от PEiD (для совместимости)." Авторы местные, спишись с ними, может чем помогут ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 07 мая 2008 19:54 · Личное сообщение · #26 |
|
Создано: 07 мая 2008 20:19 · Личное сообщение · #27 |
![]() |
eXeL@B —› Вопросы новичков —› Определение того, что файл упакован |