Сейчас на форуме: asfa (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Восстановление релоков dll после армы |
Посл.ответ | Сообщение |
|
Создано: 04 июня 2010 11:16 · Личное сообщение · #1 Помогите разобраться как правильно восстановить релоки после распаковки армы Запротектил армой dll одной проги. Распаковываю стандартно: VirtualProtect + find 558BEC83EC2C83 retn + CreateThread выхожу на OEP + дамплю + восстанавливаю импорт. Вроде как знаю, что арма трогает релоки, поэтому нужно их полностью восстанавливать. Есть тулза для этого ReloX, но что-то не соображу как правильно нужно загружать dll по разному ImageBase. Проблема еще состоит в том, что нужно сравнивать разные дампы пакованой dll. Из readme: NOTE : The example is on a DLL which was not packed. For packed ones, you will have to "block" at OEP to dump them. Кто умеет, опишите, пожалуйста, подробно на данном примере. Если нужно править размер/адрес таблицы релоков потом, то исходя из чего получаются эти данные. Тестовая прога + ReloX (1.3 Mb): rghost.net/1797032 ----- Array[Login..Logout] of Life ![]() |
|
Создано: 04 июня 2010 11:41 · Личное сообщение · #2 Kindly пишет: Вроде как знаю, что арма трогает релоки Не разу невидал чтоб арма трогала релоки,прот очень "педатичный" поэтому релоки всегда лежат на месте в твоём случае Base relocation Table 00089000 size 000054DC. Начало релоков начинается 00001000 в ольке вкючить отображение Long=>Address,конец он и в африке конец, увидешь цепочку нулевых байт начало этих байт и есть конец вычитаешь с конца начало и получишь размер ![]() ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]() |
|
Создано: 04 июня 2010 12:15 · Личное сообщение · #3 |
|
Создано: 05 июня 2010 12:01 · Поправил: Kindly · Личное сообщение · #4 И все же - не везет. Реальная прога, которую мучаю: Раньше ломал в ней commonforms.dll, он был не пакован, там просто поставить mov al,1 retn на переходнике aus_AppRegistered, который считывает процедуру из aushelper.dll и прога зарегена. Авторы смекнули что к чему и запаковали еще и ее (commonforms.dll, aushelper.dll была пакована). Конечно, на руборде есть серийник уже, но мне необходимо разобраться в чем проблема распаковки, или восстановление импорта или релоков, или есть еще проверка самой прогой CRC у dll. Прога хорошая, комплекс твиков идеальный. Когда будет выходить новая версия хотелось бы самостоятельно ломать, а не ждать карденый серийник, который впоследствии банится. p.s. сама dll которую выкладывал - слишком лекгкий вариант, действительно релоки не трогает ![]() ----- Array[Login..Logout] of Life ![]() |
|
Создано: 05 июня 2010 17:36 · Личное сообщение · #5 |
|
Создано: 06 июня 2010 08:53 · Поправил: Kindly · Личное сообщение · #6 При восстановлении импорта ImpRec выдает такие сообщения. Это нормально? Fixing a dumped file... 2D (decimal:45) module(s) 140 (decimal:320) imported function(s). *** New section added successfully. RVA:001C6000 SIZE:00004000 Can't match RVA:009211E8 to offset (Exact call) -- вот эти сообщения Can't match RVA:009211E0 to offset (Exact call) Can't match RVA:009211D8 to offset (Exact call) Can't match RVA:009211D0 to offset (Exact call) Can't match RVA:009211C8 to offset (Exact call) Can't match RVA:009211C0 to offset (Exact call) и т.д. Обычно они не выдаются, на что это влияет? Image Import Descriptor size: 384; Total length: 3E2E C:\Program Files\Auslogics\Auslogics BoostSpeed\Dumped_.dll saved successfully. Таблица после сохранения видится корректно. Кодесплайсинга и ImportElimitation вроде нет. Еще. Прописывая Relocation Directory RVA и Relocation Directory Size, следует ли изменить еще что-то? В итоге после такого восстановления импорта, правлю размер и адрес таблицы релоков в хидере - программа валится все равно в итоге с ошибкой, ссылаясь на некорректный commonforms.dll. Может и нет проверки CRC,т.к. я удалял цифровую подпись, размер уменьшился, а файл работал правильно. ----- Array[Login..Logout] of Life ![]() |
|
Создано: 06 июня 2010 11:15 · Личное сообщение · #7 Незнаю что ты там делал но две делкы расспаковываются нормально ![]() Kindly пишет: Кодесплайсинга и ImportElimitation вроде нет Кодесплайсинг есть ... Вот расспакованные делки Из aushelper.dll вызывается aus_AppRegistered_D3A43287BA87 где идёт проверка лицензии если в ЕАХ ложится 0,то прога незарегана если на оборот то зарегана,aushelper.dll уже пропатчена такчто всё работает нормально ![]() ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]() |
|
Создано: 06 июня 2010 20:23 · Поправил: Kindly · Личное сообщение · #8 |
![]() |
eXeL@B —› Вопросы новичков —› Восстановление релоков dll после армы |
Эта тема закрыта. Ответы больше не принимаются. |