Посл.ответ |
Сообщение |
Ранг: 56.4 (постоянный) Активность: 0.02↘0 Статус: Участник
|
Создано: 07 июня 2006 10:37 · Личное сообщение · #1
Подскажите, есть сетап состоящий из 2-х частей: собственно модуль инсталлера упакованных upx-ом и приделанный оверлеем файл данных. Хочется распаковать модуль и приделать к нему оверлей обратно. Как можно это сделать? Простое бинарное копирование не помогает. Видимо нужно где-то еще подправить адреса. На форуме подобный вопрос был но остался без ответа. Помогите.
Спасибо.
| Сообщение посчитали полезным: |
|
Ранг: 450.1 (мудрец) Активность: 0.26↘0 Статус: Участник
|
Создано: 07 июня 2006 11:08 · Личное сообщение · #2
отодарать у оригинального, распаковать, прикрепить обратно
а upx -d не катит?
| Сообщение посчитали полезным: |
Ранг: 56.4 (постоянный) Активность: 0.02↘0 Статус: Участник
|
Создано: 07 июня 2006 11:20 · Личное сообщение · #3
Вопрос не понят. Я спрашиваю как прикрепить обратно. Что я сделал: Отодрал, распаковал, попробовал сделать copy /B unpmod.exe + data.dat newmod.exe - непрокатило, не находит данных.
Вопрос: что еще нужно подправить чтобы находил?
| Сообщение посчитали полезным: |
Ранг: 384.1 (мудрец) Активность: 0.25↘0 Статус: Участник www.int3.net
|
Создано: 07 июня 2006 11:24 · Личное сообщение · #4
jfx
лови CreateFileA на свой исполняемый файл и смотри по какому смещению пытается прочитать, потом либо правь адреса либо двигай оверлей
----- Подписи - ЗЛО! Нужно убирать! | Сообщение посчитали полезным: |
Ранг: 450.1 (мудрец) Активность: 0.26↘0 Статус: Участник
|
Создано: 07 июня 2006 11:28 · Поправил: Asterix · Личное сообщение · #5
по идее для оверлея не важно смещение, только если прога спецом не делает проверки, главное чтоб он находился сразу за последней секцией файла
| Сообщение посчитали полезным: |
Ранг: 56.4 (постоянный) Активность: 0.02↘0 Статус: Участник
|
Создано: 07 июня 2006 11:48 · Личное сообщение · #6
Возможно что после распаковки некорректно прописались размеры секций? Может такое быть?
| Сообщение посчитали полезным: |
Ранг: 450.1 (мудрец) Активность: 0.26↘0 Статус: Участник
|
Создано: 07 июня 2006 12:28 · Личное сообщение · #7
зависит от того, наверно, как ты распаковывал, upx -d или вручную под дебаггером
| Сообщение посчитали полезным: |
Ранг: 310.8 (мудрец), 29thx Активность: 0.43↘0 Статус: Участник
|
Создано: 07 июня 2006 12:30 · Личное сообщение · #8
jfx пишет:
Что я сделал: Отодрал, распаковал, попробовал сделать copy /B unpmod.exe + data.dat newmod.exe - непрокатило, не находит данных.
Распакованный экзе на совпадает с оригинальным - присутствует секция распаковщика. Поэтому и не прокатит. Зачем мучиться : либо засунь в ресурсы, либо работай просто как с файлом - ты ведь все равно оверлей отдельным файлом в дистре держать будешь.
| Сообщение посчитали полезным: |
 Ранг: 124.7 (ветеран) Активность: 0.07↘0 Статус: Участник
|
Создано: 07 июня 2006 13:03 · Личное сообщение · #9
буквально на днях ломал коалаплейр, там тоже распаковываешь инстал и клеишь оверлей, но не работало.. забил ибо кейген писался легко и просто
| Сообщение посчитали полезным: |
Ранг: 56.4 (постоянный) Активность: 0.02↘0 Статус: Участник
|
Создано: 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.02↘0 Статус: Участник
|
Создано: 07 июня 2006 14:45 · Личное сообщение · #11
Блин, ответ лежал на поверхности: они жали upx-ом не сам модуль, а все вместе, модуль и оверлей. Сам upx справился с распаковкой. Затем патчь и запаковка обратно upx-ом дали нужный результат
| Сообщение посчитали полезным: |
Ранг: 56.4 (постоянный) Активность: 0.02↘0 Статус: Участник
|
Создано: 21 августа 2007 11:44 · Личное сообщение · #12
В ресурсах модуля лежит unrar.dll, она грузится прямо из модуля, без сохранения на диск
Может кому еще интересно будет, вот статья по теме:
_http://www.joachim-bauch.de/tutorials/load_dll_memory.html/en
| Сообщение посчитали полезным: |
Ранг: 56.4 (постоянный) Активность: 0.02↘0 Статус: Участник
|
Создано: 24 августа 2007 10:41 · Личное сообщение · #13
Дяденьки помогите, а?
Библиотеки лежат в ресурсах, грузятся в память средствами самой проги а не операционки... IDA соответственно ничего про импорт сказать не может... Как бы помочь IDA чтобы она поняла что из этих DLL-ок импортируются функции и расставила бы их названия в теле...
Заранее спасибо.
| Сообщение посчитали полезным: |
Ранг: 352.4 (мудрец), 4thx Активность: 0.15↘0 Статус: Участник retired
|
Создано: 24 августа 2007 16:28 · Личное сообщение · #14
думаю придется написать скрипт/плагин...
| Сообщение посчитали полезным: |
Ранг: 56.4 (постоянный) Активность: 0.02↘0 Статус: Участник
|
Создано: 26 августа 2007 14:22 · Личное сообщение · #15
Можно немного поподробней? Я бы и руками порасставлял, их там не много, но вопрос как найти эти вызовы?
| Сообщение посчитали полезным: |