Сейчас на форуме: rtsgreg1989, zds, _MBK_ (+5 невидимых)

 eXeL@B —› Основной форум —› Оверлеи
Посл.ответ Сообщение

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

Создано: 07 июня 2006 10:37
· Личное сообщение · #1

Подскажите, есть сетап состоящий из 2-х частей: собственно модуль инсталлера упакованных upx-ом и приделанный оверлеем файл данных. Хочется распаковать модуль и приделать к нему оверлей обратно. Как можно это сделать? Простое бинарное копирование не помогает. Видимо нужно где-то еще подправить адреса. На форуме подобный вопрос был но остался без ответа. Помогите.
Спасибо.



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

Создано: 07 июня 2006 11:08
· Личное сообщение · #2

отодарать у оригинального, распаковать, прикрепить обратно

а upx -d не катит?



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

Создано: 07 июня 2006 11:20
· Личное сообщение · #3

Вопрос не понят. Я спрашиваю как прикрепить обратно. Что я сделал: Отодрал, распаковал, попробовал сделать copy /B unpmod.exe + data.dat newmod.exe - непрокатило, не находит данных.
Вопрос: что еще нужно подправить чтобы находил?



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

Создано: 07 июня 2006 11:24
· Личное сообщение · #4

jfx
лови CreateFileA на свой исполняемый файл и смотри по какому смещению пытается прочитать, потом либо правь адреса либо двигай оверлей

-----
Подписи - ЗЛО! Нужно убирать!




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

Создано: 07 июня 2006 11:28 · Поправил: Asterix
· Личное сообщение · #5

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



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

Создано: 07 июня 2006 11:48
· Личное сообщение · #6

Возможно что после распаковки некорректно прописались размеры секций? Может такое быть?



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

Создано: 07 июня 2006 12:28
· Личное сообщение · #7

зависит от того, наверно, как ты распаковывал, upx -d или вручную под дебаггером



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 07 июня 2006 12:30
· Личное сообщение · #8

jfx пишет:
Что я сделал: Отодрал, распаковал, попробовал сделать copy /B unpmod.exe + data.dat newmod.exe - непрокатило, не находит данных.

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




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

Создано: 07 июня 2006 13:03
· Личное сообщение · #9

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



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

Создано: 07 июня 2006 13:21
· Личное сообщение · #10

Суть проблемы немного глубже (вопрос уже поднимался и решение было найдено, просто сейчас это решение не работает, поэтом ищутся другие пути).
Есть инсталлер DXperience - .NET компоненты то DevExpress. Инсталлер лежит одним файлом, состоит из модуля на Delphi упакованного UPX-ом и оверлея - запароленного RAR архива. В ресурсах модуля лежит unrar.dll, она грузится прямо из модуля, без сохранения на диск. Что нужно? В архиве лежат исходники нужных компонентов, нужно их оттуда повыковыривать. Пароль к архиву лежит гдето внутри.
Отступление: К сожалению закейгенить нет возможности, т.к. используется RSA подпись с длинной ключа 400 бит.

Как решалось прошлый раз: Под отладчиком дожидался распаковки модуля, затем в памяти, в ресурсах, до загрузки, в начало процедуры RARSetPassword ставил CCh и запускал дальше. пропатченный unrar.dll грузился в память, откудато вызывался RARSetPassword и собственно останавливался в начале процедуры. Результат - пароль в стеке.

В новой версии так не получается, почему не пойму - под отладчиком валится в ексепшн Причину незнаю. Что хочется: не ковырятся в памяти, а распаковать модуль, пропатчить в файле unrar.dll, приделать обратко rar ну а дальше по старому сценарию.



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

Создано: 07 июня 2006 14:45
· Личное сообщение · #11

Блин, ответ лежал на поверхности: они жали upx-ом не сам модуль, а все вместе, модуль и оверлей. Сам upx справился с распаковкой. Затем патчь и запаковка обратно upx-ом дали нужный результат



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

Создано: 21 августа 2007 11:44
· Личное сообщение · #12

В ресурсах модуля лежит unrar.dll, она грузится прямо из модуля, без сохранения на диск
Может кому еще интересно будет, вот статья по теме:
_http://www.joachim-bauch.de/tutorials/load_dll_memory.html/en



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

Создано: 24 августа 2007 10:41
· Личное сообщение · #13

Дяденьки помогите, а?
Библиотеки лежат в ресурсах, грузятся в память средствами самой проги а не операционки... IDA соответственно ничего про импорт сказать не может... Как бы помочь IDA чтобы она поняла что из этих DLL-ок импортируются функции и расставила бы их названия в теле...
Заранее спасибо.



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 24 августа 2007 16:28
· Личное сообщение · #14

думаю придется написать скрипт/плагин...



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

Создано: 26 августа 2007 14:22
· Личное сообщение · #15

Можно немного поподробней? Я бы и руками порасставлял, их там не много, но вопрос как найти эти вызовы?


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


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