Сейчас на форуме: Rio, vsv1 (+4 невидимых)

 eXeL@B —› Вопросы новичков —› Определение того, что файл упакован
Посл.ответ Сообщение

Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 06 мая 2008 05:47
· Личное сообщение · #1

Есть какие-нибудь надежные способы програмной проверки того, что исполняемый файл упакован? При этом знать чем именно он упакован не нужно.




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 06 мая 2008 05:54
· Личное сообщение · #2

Самый тупой и быстрый способ.
В архив сожми и посмотри насколько размер файла изменится. Если больше чем в 2 раза (примерно), значит не запакован. Если процентов на 20, то запакован.

P.S. На 100%-ю надежность способ, конечно, не претендует.




Ранг: 279.1 (наставник)
Активность: 0.160
Статус: Участник
wizard

Создано: 06 мая 2008 06:10 · Поправил: MACKLIA
· Личное сообщение · #3

В ресурсах покопайся ,а с архивацией прикольный способ ,а так почитай про ручную распаковку - многое прояснится.

P.S. тема для раздела новичков

-----
Что один человек сделал , другой всегда сломать может...





Ранг: 192.7 (ветеран), 154thx
Активность: 0.070
Статус: Участник
The ONE

Создано: 06 мая 2008 06:16
· Личное сообщение · #4

Psycho
Ну дык энтропию посчитай и будет понятно упакован или нет.

-----
Сотрудник DHARMA





Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 06 мая 2008 07:26
· Личное сообщение · #5

самый простой, имхо, открыть ресторатором. если ресурсы видно - значит нормальный, невидно - упакован. правда в некотрых случаях с армой и другими протекторами ресурсы могут быть видны. можно просто посмотреть заголовки секций. архивация не всегда тоже даст точный ответ. если выбраны опции типа "без сжатия" или минимальное, то файл в архиве сожмётся неплохо.
короче, самый надёжный на мой взгляд способ - просмотр заголовков секций...

-----
Do Not Get Mad Get Money! ;)





Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 06 мая 2008 07:56 · Поправил: 4kusNick
· Личное сообщение · #6

Тему в рездел новичков, а упакованность\запротекченность можно задетектить разными способами - энтропия, секции глянуть (можно юзать всякие утилиты, типа PEiD, DiE и тд), попробовать в олли пихнуть и на первые байты глянуть. В общем, читай статьи по ручной распаковке и экспериментируй. Я обычно смотрю секции, т.к. и можно определить не только упакованность\запротекценность проги, но и узнать чем была прога покрыта\упакована.

PS да уж, с архивом идея оригинальная

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 63.8 (постоянный), 2thx
Активность: 0.030
Статус: Участник

Создано: 06 мая 2008 09:30 · Поправил: drin
· Личное сообщение · #7

4kusNick пишет:
PS да уж, с архивом идея оригинальная

практически та же энтропия правда на счет "Если процентов на 20, то запакован. " не совсем верно. Да и никто не заставляет при навешивании протектора использовать компрессию




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 06 мая 2008 10:07
· Личное сообщение · #8

drin Есть понятие упаковка а есть защита. Если файл упакован, то метод WELL'а весьма надежен при условии что упакована не только первая секция и остальные секции небольшие.

А определение защищен ли нужно делать спец софтом или руками.

-----
Yann Tiersen best and do not fuck





Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 06 мая 2008 10:11
· Личное сообщение · #9

Psycho
100 % способа конечно не существует, однако если использовать сразу несколько способов, то можно почти с полной уверенностью определить, что файл упакован.
1. Определение по энтропии файла (например, посредством Die).
2. Определение на битость ресурсов (например, посредством Restorator, если не открываются, а прога написана на С, то значит пакован, при этом соответветствующее сообщение будет, что ресурсы сжаты или зашифрованы).
3. По названиям секций (посредством любого файлового аналзатора, можно увидеть характерные названия для какого-либо пакера\прота).
4. Самый тупой - запустить прогу, а потом непропатченную Олю. Если появится надпись, что отладчик найден, или же просто прога закроется, тогда можно быть уверенным, что использован како-то прот.

WELL пишет:
Самый тупой и быстрый способ.
В архив сожми и посмотри насколько размер файла изменится. Если больше чем в 2 раза (примерно), значит не запакован. Если процентов на 20, то запакован.

Интересный метод.

-----
Программист SkyNet





Ранг: 327.3 (мудрец)
Активность: 0.250
Статус: Участник

Создано: 06 мая 2008 11:44
· Личное сообщение · #10

а каким способом это определяет Process Explorer ?
В списке процессов пакованые отображаются фиолетовым цветом.

-----
in search of sunrise




Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 06 мая 2008 11:51
· Личное сообщение · #11

PE_Kill пишет:
метод WELL'а весьма надежен

Особенно на приватных крипторах где 10% код а остальное джипеговая тетка...



Ранг: 51.7 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 06 мая 2008 12:09
· Личное сообщение · #12

Ага и ещё Фимка на 2 метра



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 06 мая 2008 16:25
· Личное сообщение · #13

Господа, все это конечно хорошо, но вы все забываете одну важную вещь. Требуется не узнать, что файл упакован, а написать программу, которая бы определяла это. Поэтому способы с использованием Оли, Ресторатора не катят. Сжатие еще может быть и осуществимо, правдо придется писать архиватор руками. Еще какие-нибудь варианы?

P.S. Насчет того, что тема в раздел новичков, я не согласен. Если кто-то так считает, то жду от вас работающего метода. А когда вы мне назовете штук пять стабилных, тогда я соглашусь, что с веткой промазал.




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 06 мая 2008 16:34
· Личное сообщение · #14

ну... ты загнул... 100% определение пакованности файла может быть произведенно только несколькими способами. и не забывай, о человеском факторе...
а кому вообще нужна такая софтина, если есть пейд, дай и т.д.?

-----
Do Not Get Mad Get Money! ;)




Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 06 мая 2008 16:41
· Личное сообщение · #15

Psycho пишет:
Сжатие еще может быть и осуществимо, правдо придется писать архиватор руками

а если заюзать готовое - aplib нопремер (быстро и просто) ? И поступить так:
WELL пишет:
В архив сожми и посмотри насколько размер файла изменится. Если больше чем в 2 раза (примерно), значит не запакован. Если процентов на 20, то запакован.

P.S. На 100%-ю надежность способ, конечно, не претендует.

Psycho пишет:
Насчет того, что тема в раздел новичков, я не согласен

а я согласен

-----
все багрепорты - в личные сообщения




Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 06 мая 2008 16:46
· Личное сообщение · #16

Это не совсем софтина, это только очень маленькая ее часть. Я ведь не прошу 100% гарантии определения того, что файл упакован. Просто нужен метод который работает. Например с архивацией - сомневаюсь... Например если файл исполняемый сесит 1 кб. То не думаю, что после упаковки или архивации он будет весить намного меньше. В данном случае возможно использование упаковки, как способ обойти антивирус, а не средство уменьшения размера файла. Кажется в таком случае, архивация не спасет. В случае с энтропией, то придется сильно повозится и поэкперементировать, чтобы узнать порог, при котором файл считать упакованым. А это довольно таки сложно. Особенно если учесть, что он может оказаться разным для x86 и x64.




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 06 мая 2008 17:14
· Личное сообщение · #17

тогда заголовки секций. внеси в список заголовки после различных компиляторов. если заголовк не совпадает с тем, что есть в списке - файл запакован...

-----
Do Not Get Mad Get Money! ;)




Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 06 мая 2008 17:17
· Личное сообщение · #18

Ну в принципе можно глянуть на секцию импорта практически у всех пакеров там только необходимые тоесть очень мало импортируемых функций

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74




Ранг: 163.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 06 мая 2008 18:55
· Личное сообщение · #19

Посчёт энтропии и сжатие (тоже самое + лишние действия) - следствия теоремы Шеннона о кодировании источника (Shannon's source coding theorem). Применять конечно надо только к секциям файла без PE header.




Ранг: 279.1 (наставник)
Активность: 0.160
Статус: Участник
wizard

Создано: 06 мая 2008 18:56 · Поправил: MACKLIA
· Личное сообщение · #20

Psycho пишет:
данном случае возможно использование упаковки, как способ обойти антивирус


Чтобы антивирус обойти таким способом над упакованым файлом еще поработать придется ,да ито гарантия не 100%.Если EntryPoint начинается с pushad то это неким образом уже будет свидетельствовать об упакованости файла,а push ebp о неупакованости ,хотя при написании на Microsoft Visual C++ ,будет вот так -> PUSH 74

-----
Что один человек сделал , другой всегда сломать может...




Ранг: 51.7 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 06 мая 2008 22:27
· Личное сообщение · #21

У AntiVir можно поучиться
Структура заголовков, секций, выравнивания, расположение директорий, Анилиз тойже директории импорта, на количество и наличие определенных API, энтропии секций... В комплексе можно на сказать, что файл был чем-то изменен, упакован...
В принципе можно подогнать анализ под структуру современных компиляторов, если отличная, то уже какие-то изменения были




Ранг: 279.1 (наставник)
Активность: 0.160
Статус: Участник
wizard

Создано: 07 мая 2008 05:29
· Личное сообщение · #22

GlOFF пишет:
У AntiVir можно поучиться


Антивирусы так и обманываются


234f_06.05.2008_CRACKLAB.rU.tgz - Модифицируем троян или как обойти AVP.txt

-----
Что один человек сделал , другой всегда сломать может...





Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 07 мая 2008 06:09
· Личное сообщение · #23

Угу, я когда-то давно тоже писал подобное: wellsite.chat.ru/CrackVirus.zip




Ранг: 170.1 (ветеран), 96thx
Активность: 0.090.01
Статус: Участник

Создано: 07 мая 2008 06:28
· Личное сообщение · #24

Psycho пишет:
Есть какие-нибудь надежные способы програмной проверки того, что исполняемый файл упакован

Вопрос сам по себе некорректен. Что считать упаковкой? PE - это контейнер, в различных секциях могут быть различные "вещи", не говоря уже о том, что все секции могут быть слиты в одну - и тогда усредненная оценка также информативна, как средняя температура по больнице. Многие файлы уже содержат в себе архивы, не являясь при этом упакованными: инсталляторы, файлы содержащие звук и графику итп. Кроме того, статистически невозможно отличить упаковку от шифрования. Так что для простых случаев подойдет подсчет энтропии (это делает большинство анализаторов, есть несколько плагинов к PEiD), а в сложных - только глазами смотреть.




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 07 мая 2008 16:18
· Личное сообщение · #25

Psycho пишет:
Я ведь не прошу 100% гарантии определения того, что файл упакован. Просто нужен метод который работает.

По сигнатурам тогда от PEiD'а делай... Посмотри gAPE, там похожая реализация
"В программе используется формат плагинов от PEiD (для совместимости)."
Авторы местные, спишись с ними, может чем помогут

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 07 мая 2008 19:54
· Личное сообщение · #26

все пишут что метод WELLa, метод WELLa, мне кажется что это самый очевидный метод ака самый простой в плане реализации...




Ранг: 192.7 (ветеран), 154thx
Активность: 0.070
Статус: Участник
The ONE

Создано: 07 мая 2008 20:19
· Личное сообщение · #27

WELL пишет:
Самый тупой и быстрый способ

Я еще тупее и быстрее знаю - берем плагин типа GenOEP или пишем сами и проверяем через него OEP, если EP совпадает с ОЕР - то все пучком, файл не упакован, если EP и OEP разные - то упакован, если не определился - один хрен упакован

-----
Сотрудник DHARMA



 eXeL@B —› Вопросы новичков —› Определение того, что файл упакован
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати