![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Что называется сказано, сделано. Прикрепляю логи "выдеральщика" написанного по вашему алгоритму.
Подопытной прогой стал сам выдеральщик размер лога 301кб, тогда как размер экзешника 359кб, учитывая форматирование текстового файла, в лог попало около 240кб из экзешника, что составляет более половины его размера. Что после этого скажете о вероятности совпадения? Просмотрите логи. Много ли там полезного текста? С таким же успехом можно было открыть его в блокноте и искать текст без всякой обработки. Проверялись 3 подряд идущих символа. Если они были допустимыми, то проверялся текст идущий за ними, все что больше 3х символов считалось строкой. Просмотр лога показал, что увеличение минимального числа символов до 4 или 5 ти много эффективности не добавит, но зато приведет к тому, что увеличится потеря полезного текста. Такой алгоритм явно требует дополнительной обработки и структурного подхода. Присоединённый файл ( Кол-во скачиваний: 6 )
log.txt 301,83 Kb-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| W4FhLF |
|
||||||||||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 6 Всего: 121 |
Ок, просто уточнил, дабы не расходиться в рассуждениях
1. Я не знаю как работает ваша хвалёная программа, но могу с уверенностью сказать, если она и перестраивает таблицу секций, что даёт уменьшение размера программы, то происходит это за счёт отбрасывания нулей в конце секции, а эти нули и есть выравнивание по FileAlignment, которые само собой учтеные в таблице секций в поле PointerToRawSize. 2. Оверлеи найти легко, можно взять последнюю секцию, суммировав её смещение в файле и размер на диске можно получить указатель на оверлей или же можно взять ImageBase из заголовка и просуммировать его с SizeOfImage из того же опционального заголовка, получим виртуальный указатель на оверлей. Только я не понял к чему это? 3. Вообще совсем не учитывать таблицу импорта я бы не стал, лучше сделать это опциональной функцией алгоритма, впрочем, не об этом речь.
На практике много чего встретишь, Вы бы попробовали.
alexeis1, Вы не перестаёте меня поражать... что за отношение к делу? Вы готовы идти любыми путями или я произвожу впечатление глупово человека? Посмотрите внимательно в свой лог, 80% строк, если не больше, включают в себя непечатаемые символы, хотя может вы являетесь обладателем какой-нибудь расширенной клавиатуры и у Вас есть возможность набрать такое(пример из лога): ѓД]_^[ГђSVWѓДм‹щ‰$Ќ или может быть такое: Ђы-tbЂы+t_Ђы$t_ЂыxtZЂыXtUЂы0u
Ну во-первых секции я могу обозвать как душей угодно, они вообще названия могут не иметь, лоадер винды на это не смотрит, во-вторых у нас, что свет клином сошёлся на С++ и Delphi? Я не буду описывать тут все тонкости техники определения компилятора, но скажу, что занимался этой проблемой довольно плотно и каждый день сталкиваюсь с этим на практике, я могу программу на делфи спрятать так, что определить то, что она на делфи сможет лишь опытный реверсер, да и то по косвеным признакам. Поэтому писать анализатор в данном случае нет никакого смысла. Попробуйте загнать программу весом 365 Кб в тот же PEiD он едва ли выдаст лог больше 20 Кб размером, при том, что он не учитывает компилятор. Это сообщение отредактировал(а) W4FhLF - 10.12.2006, 10:35 -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
||||||||||
|
|||||||||||
| Alexeis |
|
||||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
От того что я его не упомянул не значит, что там ненужно искать. Хорошо, что вы про него вспомнили. Это я к тому, что если нужно искать такие строки, то одного этого средства будет явно недостаточно.
Это все символы которые могут встречаться в тексте, другое дело, что вероятность их появления невысока! Часть из них являются символами из математики другие просто спец. символы. Некоторые являются русскими символами с ударением. Чем больше их убрать тем больше шансов потерять полезные строки. Вот, например, во второй строке из редких только Ђ - и то это греческая буква. Во первой есть символ ‰ - его можно убрать, можно еще убрать ударные символы, так как они достаточно редкие, хорошо, уберу еще самые редкие символы. Это зависит от целей программки, если она направлена на взлом (что тут не обсуждается), то к ней одни требования, если она просто служит для изучения или поиска строк в своей программе или еще для чего, то тут совершенно другие требования. О назначении программы тут не было ни одного слова, потому пути реализации тоже могут отличаться. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||||
|
|||||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Вот изменил, убрал кучу лишних символов, в результате логи 198кб, т.е. уменьшились всего на треть.
Вот такое множество участвовало в поиске
Присоединённый файл ( Кол-во скачиваний: 3 )
log.zip 89,51 Kb-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| W4FhLF |
|
||||||||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 6 Всего: 121 |
Вот ключевая фраза описывающая весь алгоритм. Программа удаляет релоки, которые исполняемому файлу фактически ни к чему, но некоторые компиляторы по стандарту всё равно суют их в файл, т.к. на системах ниже NT, если у файла нестандартный ImageBase(ниже 400000h), то без релоков он просто не запустится.
Вы как раз сказали, что нужно искать только в сегментах и то не во всех.
Это становится просто смешно... Вот честно, просто бред... Никто и никогда в подобных анализаторах не станет учитывать символы, которые не могут быть введены с клавиатуры, иначе с таким подходом можно уйти очень далеко. Я имею кое-какой опыт в исследовании алгоритмов и вообще программ, и никогда я ещё не встречал всяких греческих букв и прочих спецсимволов в качестве полезных данных. В принципе я не исключаю возможность, что такой исход событий возможен, но это настолько ничтожная вероятность, что ей можно и более того нужно пренебречь, дабы повысить качество алгоритма для абсолютно подавляющего большинства программ.
Ну знаете, если эта программа в конечном счёте не будет вспомогательным инструментом при исследовании программы(коим, кстати, является PEiD, который, как мне казалось, здесь обсуждается), то сложно себе представить область применения данной функции. Это сообщение отредактировал(а) W4FhLF - 10.12.2006, 17:40 -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
||||||||
|
|||||||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Это вы неверно интерпретировали мои слова. Я не вижу тут такой фразы. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Voyager |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 8.2.2005 Репутация: 2 Всего: 18 |
Подумал что речь идет про секции в заголовке и проч., а оказывается из всего файла вытянуть нужно. Это сообщение отредактировал(а) Voyager - 11.12.2006, 13:20 |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 6 Всего: 121 |
Вот, ответ именно на это вопрос я изначально и хотел услышать, но тут вмешался alexeis1
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| ASGDeveloper |
|
|||
|
developer ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 1.4.2006 Репутация: 1 Всего: 1 |
||||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Неужели такой вариант подходит? -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| ASGDeveloper |
|
|||
|
developer ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 1.4.2006 Репутация: 1 Всего: 1 |
||||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| ASGDeveloper |
|
|||
|
developer ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 1.4.2006 Репутация: 1 Всего: 1 |
||||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |