Русский / Russian English / Английский

Сейчас на форуме:
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

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

Ранг: 2.6 (гость)
Статус: Участник

Создано: 21 марта 2014 14:19 New!
Цитата · Личное сообщение · #1

Привет всем. Ковыряюсь с программой уже долгое время.
Опыта и знаний в этом деле 0. Но очень уж интересная тема. Зацепило.
Как завороженный прогоняю код через ольку и смотрю что и как.

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

Задача заменить старые md5 суммы на новые везде где есть строка danger.
Просьба у кого есть свободное время поковыряться с этим файлом.
Понимаю что кол-во реализаций огромный вариант. Интересно посмотреть кто что умеет.
В идеале было неплохо вынести эту базу в отдельный файл для редактирования.
Занопить проверку последней версии в инете. Добавить к строке фразу билда (версии) "exp A1"
После простой упаковки был одним файлом.

Все лавры конечно достанутся не мне, обидно до жути. Сурсов нет, иначе было бы проще.
Для всего этого безобразия видимо придется снять защиту. В Die 0.82 следующее:
1. ASProtect(1.23-2.56)[EXE32] ... + ASPriNFv1.6beta = 2.58 build 11.11
2. Enigma Virtual Box(-)[EXE32]

Список md5 для добавления:

A95161EFC064B18A405068590CE548AC
2273C5B5042B8C7BAA4822C5FF58C30E
C5DAD63FC2C6C0733FF05E20331BAC2B
E2D1F0C0DB02FB0D739BB95D5313BF4F
AC44F0ABEDECD6D290ED24680AA5B552
F51B36DD9317B4336482A3728C9A3A4E
B59248115B178B29738E0A8BB09C163D
38C38C9B244DDF1122033C4A9B3678F6
241169F3DB8354FE2089F7B0730291A4
EA91617F68E2ABB14C0BFE55F176ED55
58A19D8997E4585D1F5552FBF68930C1
D087E9700DFD2A17154DA0CF09547961
B53CC2DD3566927570915DC408B08B3A
183956D2CAAC76B9195299DCF9ACD617
441E7B94A34E4B7DF3ADF2C3351C09CF
DA235284AB32EB5AD718E2D8F94D8D56
B5E03911B5B41D636DCF9D021601D803
52A5BD9C26B75036E9D8B5AEB64C56CB
81818E9EB8CEAB010B10048385B920CB
A0DA2D839F60541613928DD7CB6F0D81
8845D70EAB7B28BB829C378A37121DDF

Одна MD5: B5F54D9A11D1EAE71F35B5907C6B9D3A ✔ уже в базе. По ней поиск.
Все секции распаковываются уже на этапе выбора файла по списку. Эти суммы лежат в приватной безымянной секции.
Плюс "exe" запакован в виртуалку, распаковываются еще 19 файлов во время работы в папку pdk-**-**.
Массив перебирается модулем perl516.dll как начинается анализ файла (после выбора и отказа 2 раза от патча)
Попробовал прикола ради заменить в памяти значения на новые, все отлично.

В аттаче екзкшник helpme.exe, новый файл для анализа sample.bin ..
Для примера отчет файла старой версии где полный гууд.
Новый отчет собственно сами сгенерируете вот так:

Распаковываем все в одну папку, открываем прогу, выбираем цифрой наш сэмпл,
отказываемся от патча 2 раза, пойдет распаковка семпла в промежуточный вариант (не нужен),
потом анализ с общим выводом сколько там ошибок и прочее .. тыкаем в итоге ввод и откроется страница данных.

http://rghost.ru/53227835

Ну-с, буду ждать ответов. На большее меня не хватит.
Надеюсь, пинать не будут. ))) Если что упустил, спрашивайте.



Ранг: 2.6 (гость)
Статус: Участник

Создано: 22 марта 2014 22:00 · Поправил: Nialon New!
Цитата · Личное сообщение · #2

После публикации нашел золотую жилу. Что-ни день замечаю что-то новое.
Секция в которой исполняемый код высокого уровня. Видимо, подобие блокнота, которая проходит через перл интерпретатор.
Это самое элегантное и простое решение. Не знаю почему там дублирующий код и мусор в конце.
Сделал запрет проверки, новую строку и, к сожалению, замененные старые данные. Отчет работает все 100%.
Хочу проработать этот вариант дальше. Вопрос гуру форума:

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

Запускаю прогу до входа 00401000. Ищу "ntdll.ZwMapViewOfSection" (ctrl+g), ставлю бряк и открываю карту памяти (alt+m).
Тыкая F9, слежу за создаваемыми секциями, сразу после большого доб вначале, следующие новые 2 пустые секции.
Примечательно в регистре появляется ST5 empty 1000.0. Еще раз F9 и появляются данные в дампе.
Ее адрес 495 в семерке и размер 10.000 .. Тыкаем и меняем по адресу 049892FD набор байтов на свой. Все.

То есть знаю где и что менять в динамике. Теперь нужно решение, зафиксировать на уровне экзешника.
Правда это другой вариант, статика, в моем понимании сейчас сделать патч по принципу скриптов в оле.



Ранг: 92.1 (постоянный)
Статус: Участник

Создано: 22 марта 2014 22:31 · Поправил: vovanre New!
Цитата · Личное сообщение · #3

Я наверное чегото не понимаю, но что мешает сделать лоадер , только вместо адресов , сигнатуры (слово для гугля: AOBscan)
Ну или за инлайнить (примеры есть в статьях на главной )



Ранг: 2.6 (гость)
Статус: Участник

Создано: 26 марта 2014 19:12 New!
Цитата · Личное сообщение · #4

vovanre, все бы ничего, лень вникать в ассемблер.
AOBscan работает в паре с "Cheat Engine"? Как-то неудобно будет. Инлайн в этом плане интереснее.
Пока не смог найти промежуточную точку от данных до запуска программы. Иначе только цикл.
Не написал даже скрипт для оли. Нет толковой документации для bpcnd, FINDMEM.
Пардон, только методом тыка. Ссылки мертвые.

Скачано 6 раз, у кого есть уже результаты, интересное?



Ранг: 423.1 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

Создано: 26 марта 2014 19:52 New!
Цитата · Личное сообщение · #5

Nialon пишет:
Привет всем. Ковыряюсь с программой уже долгое время.
Опыта и знаний в этом деле 0.

Не надо было писать целый блог после этих трех предложений. В Вашем случае целесообразно использовать топик "Запросы на взлом программ".



Ранг: 92.1 (постоянный)
Статус: Участник

Создано: 26 марта 2014 20:32 New!
Цитата · Личное сообщение · #6

Nialon пишет:
AOBscan работает в паре с "Cheat Engine"?

Нет. Самый простой вариант:
Пишешь dll с аоб сканом. на ЛЮБОМ языке. далее куришь --> Статью <--



Ранг: 2.6 (гость)
Статус: Участник

Создано: 06 апреля 2014 13:26 · Поправил: Nialon New!
Цитата · Личное сообщение · #7

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

Попробовал прикрутить в импорт тестовую функцию через PE_lord.
Вроде верно, но ехе крешится еще на запуске и его раздувает в размерах.
Там с таблицей бардак. Кто может прикрутить мне библу на любое имя?

Правда это полбеды, надо знать где. Тоже вопрос.
У меня в скрипте стоит бряк по условию: bpcnd 00859DAC, "EAX==00000164"
Если писать загрузчик, как имитировать эту строку .. да и как сам загрузчик пишется?
Через CreateProcess / Delphi / ? Пойду ковыряться дальше.

ппс: Прога написана на Visual С++. А там в отличии от Делфи, где-то вычитал, таблицы нет.
ТАк что почти все скрипты внекрылова по анпаку не работают по скольку завязана на IAT.



Ранг: 261.2 (наставник)
Статус: Участник

Создано: 06 апреля 2014 16:01 New!
Цитата · Личное сообщение · #8

Nialon пишет:
Прога написана на Visual С++. А там в отличии от Делфи, где-то вычитал, таблицы нет.
ТАк что почти все скрипты внекрылова по анпаку не работают по скольку завязана на IAT.

О
МОЙ
БОГ
!

| Сообщение посчитали полезным: CyberGod



Ранг: 990.2 (! ! !)
Статус: Модератор
Author of DiE

Создано: 06 апреля 2014 17:14 New!
Цитата · Личное сообщение · #9

Nialon для добавления длл и апи в импорт попробуй IIDKing 2.0

Nialon пишет:
ппс: Прога написана на Visual С++. А там в отличии от Делфи, где-то вычитал, таблицы нет.ТАк что почти все скрипты внекрылова по анпаку не работают по скольку завязана на IAT.


нет - это бред.



Ранг: 2.6 (гость)
Статус: Участник

Создано: 07 апреля 2014 10:46 · Поправил: Nialon New!
Цитата · Личное сообщение · #10

Хорошо, попробую IIDKing 2.0. Уже натыкался тут. Изучаю механизмы инжекта\хука. Бяка..

Ну вот, теперь я лОсь. Ссылку ту теперь не найду *привет йоде*. )) Значит я чего-то сииильно не понимаю.
Могу и по-другому аргументировать. Дуем --> сюда <--. ОТкрываем часть 2, стр 3.
Пардон, я мог перепутать термины INIT. =( Цитирую:

Если же таблица INIT не закриптована, или она отсутствует (для программ, написанных
на других языках программирования), значение флажка Z равно 1,
Естественно, что для поиска этой волшебной точки нужно использовать строку ASCII
“60”, которая, как я отметил выше, имеется во всех версиях Asprotect.dll.

Проверял лично, так и есть. МОжно юзать скрипт "Восстановление таблицы INIT.osc", выскочит окно.

Вообще отд тема, "Восстановление таблицы IAT и вызовов APIs.osc" восст все вызовы по 0.
Хотя скрипт "Поиск OEP (SBOEP).osc" фиксирует наличие:

Программа имеет следующие опции защиты:
+ эмулированные APIs!
+ SBOEP!
+ вызовы APIs Asprotect 2.xx SKE!

И куча другого непонятного. Кто хотя бы ковырялся, в курсе..

"ТАк что почти все скрипты внекрылова по анпаку не работают по скольку завязана на IAT."

Тут я еще имел ввиду следующее. Это например 10 часть. Глава. 16.3 Цитирую:

скрипт “Восстановление таблицы IAT и вызовов APIs.osc” сохраняет
все основные параметры распаковываемой программы в файле “main_parameters.bin”,
который используется при работе скриптов “Восстановление эмулированных подпрограмм в коде программы.osc”,
“Устранение проверки целостности кода (CRC) программы.osc”, “Эмуляция APIs Asprotect,
вызываемых из кода программы.osc” и “Восстановление секции импорта (.idata) в распакованных программах.osc”.

Короче все завязано друг на друге, у меня нет файла main_parameters.bin .....



Ранг: 2.6 (гость)
Статус: Участник

Создано: 08 апреля 2014 00:07 · Поправил: Nialon New!
Цитата · Личное сообщение · #11

Перепробовал IIDKing, PElord, Cff. Все что может добавить функцию в импорт.
Отлично добавляется, но не работает. Сунул в обычную программу, все грузится вместе с библиотекой.
Не понятно почему Import Tible Size меньше чем в оригинале после сборки. Из-за защиты?
Тут я уже не силен.. Я так понял импорт прикручивают на распакованный экзешник. печаль.



Ранг: 95.1 (постоянный)
Статус: Участник

Создано: 08 апреля 2014 01:11 New!
Цитата · Личное сообщение · #12

Nialon пишет:
Я так понял импорт прикручивают на распакованный экзешник. печаль.

Естественно на распакованный, куда же еще ? Чтобы он функционировал нормально или вообще функционировал как до применения к нему защитных механизмов.



Ранг: 2.6 (гость)
Статус: Участник

Создано: 11 апреля 2014 15:03 · Поправил: Nialon New!
Цитата · Личное сообщение · #13

Туплю, у меня скрипт "Восстановление таблицы IAT и вызовов APIs" клинит на:
"Ошибка!!! SBOEP: Таблица прыжков не найдена!" Есть решение?
Поэтому нет файла main_parameters.bin, это финал скрипта с дампами и коррекцией..

Дублирую ссылку на скрипты. Из поста выше.


Upd: Оказалось, виртуальная машина тоже неправильно работает, включая семерку.
На ХР проблема в следующем, не работает скрипт в области 3 прививки API3, при дополнительной защите импорта.

Сама прививка рабочая, пробовал распаковывать аспр той же версии и опции. Проблема в данных.

Связанный вопрос, какая стоит защита? Die 0.82 врет или нет?
Я так понял сначала пакуется пакет файлов в Enigma Virtual Box, потом на файл - ASProtect.
Тогда должен правильно ковыряться с приоритетом, первый ASProtect.

По хуку zwmapviewofsection ничего не нашел ... Написано: давно известно, уже палится ...
Как выглядит толково в реализации не понял и прочее.. Пока забил.


 eXeL@B —› Протекторы —› Снятие, распаковка, модификация, сборка утилиты пирогов

Видеокурс ВЗЛОМ