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

 eXeL@B —› Основной форум —› Распаковка Dll запакованной ASPR
Посл.ответ Сообщение

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

Создано: 19 июля 2006 18:28
· Личное сообщение · #1

Всем привет.

Никак не могу распаковать dll запаковынную ASPr'ом. Вроде нормально восстановил API calls. Сдампил, восстановил импорт, но прога не работает. Стал сравнивать работу исходной dll с дампом и выяснил, что секция 1140F000 заполнена данными, а там должны быть нули. И из за этого происходит вызов по неправильному адресу. Попытался обнулить секцию в WinHex'е, но после этого дамп вообще перестал работать. Наверное нельзя просто обнульть данные. Подскажите как надо это делать.
Я стал обнулять секцию из Olly каждый раз при запуске, но дамп все-равно не рабочий. Чувствую что я долго так провожусь и не факт, что к чему то приду. Помогите пожалуйста.

прога называется TestComplete Demo 4.23
www.automatedqa.com/downloads/testcomplete423demo.exe

Наверное качать всю прогу не нужно. В архиве исходная dll'ка и мой дамп.

www.mytempdir.com/813258

Заранее спасибо.



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

Создано: 19 июля 2006 18:34
· Личное сообщение · #2

старенькая статья, но кое-что можно подчерпнуть
www.reng.ru/articles/052002/ASProtected%20dll%20unpack.htm



Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

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

egorovshura
Выложи все импортируемые библиотеки, кроме системных.

-----
MicroSoft? Is it some kind of a toilet paper?




Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

Создано: 20 июля 2006 16:01
· Личное сообщение · #4

Вот, всего лишь несколько файлов...

tccomponents.bpl
tccomponentsex.bpl
tccppscriptparser.dll
tccsscriptparser.dll
tcdscriptparser.dll
tcjscriptparser.dll
tcrtl.bpl
tcscripting.bpl
tcvbscriptparser.dll

P.S. И ведь они тоже могут что-то импортировать... короче какая-то.

-----
MicroSoft? Is it some kind of a toilet paper?




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

Создано: 21 июля 2006 01:22
· Личное сообщение · #5

Там библиотек на 30 метров. Мне не под силу такое выложить. Наверное проще из дистрибутива их взять.

Для меня так и осталось непонятным почему ломается dll при обнулении секции данных. Ошибка происходит на этапе загрузки. Я пробовал обнулять не всю область а частями, так вот если я обнуляю начало, то dll загружается, а если обнуляю конец области, то возникают проблемы. LordPE и PETools просто вылетают при загрузке. Видимо я порчу какие-то важные данные, непонятно.



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

Создано: 21 июля 2006 06:43 · Поправил: Bitfry
· Личное сообщение · #6

Asterix пишет:
старенькая статья, но кое-что можно подчерпнуть

По мне так очень мутная статья. Для того чтобы там что-то подчеркнуть, нужно хорошо понимать, что делает автор =).

egorovshura, а ты знаешь, чем dll отличается от большинства exe?
Если нет, почитай эту тему:
http://exelab.ru/f/action=vthread&forum=5&topic=5445
Только в случае с Аспром, всё ещё проще. Он кажется релоки не трогает (могу и ашибаться, так как ещё ниразу в жизни не снимал Аспр =) ).
Нужно просто найти оригинальную секцию релоков в дампе (если с компилятором не было сюрпризов).
Линковщик обычно вставляет её последней, то есть она будет перед секциями созданными Аспром.
Обычно она начинается с "00 10 00 00" или что-то в этом духе, этот dword будет указывать на RVA первой страницы и, как правило, это именно 1000h.
Дальше будет явно заметен массив word начинающихся с тройки. Теперь прочитай внимательно ЧАСТЬ 5 из той статьи что указал брат Asterix. ;)

Если бы я распаковывал эту dll, я бы в Оли запустил скрипт из одной строки:
go EP
где вместо EP разумеется правильное значение пакованной точки входа.
Если после запуска такого скрипта мы окажемся там, и это действительно будет код EP нужной нам dll, то можно двигаться к OEP и дампить, а если нет, то по ситуации (внимательно читай топик приведённый выше).

-----
Всем привет, я вернулся




Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

Создано: 21 июля 2006 08:21
· Личное сообщение · #7

egorovshura
полностью рабочий, чистенький дамп - найди 3 отличия :
rapidshare.de/files/26479407/ghetto.rar.html
пароль: мое имя маленькими буквами.

-----
MicroSoft? Is it some kind of a toilet paper?




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

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

Всем большое спасибо за помощь!!! Буду разбираться. Я уже сделал loader, который патчит нужные байтики. Но все-таки распакованный вариант будет лучше.



Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

Создано: 21 июля 2006 14:46
· Личное сообщение · #9

egorovshura
кстати, там довольно много ограничений... на сайте написано следующее:

Each project can contain no more than 2 script units.
Each script unit can contain no more than 500 lines.
A project suite can include no more than 6 projects.

P.S. Если не трудно, расскажи, где nop'ить .

-----
MicroSoft? Is it some kind of a toilet paper?




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

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

Проверка там осуществляется в двух процедурах. В цикле выполнения скрипта и еще есть одна процедура с проверкой, видимо для подстраховки.


Patches:

1:

1130C3CE 7E 09 JLE SHORT tcCore.1130C3D9

2:

1130C3FF 7E 09 JLE SHORT tcCore.1130C40A

3:

1130C458 7C 06 JL SHORT tcCore.1130C460

4:

112F27BA 7E 0A JLE SHORT tcCore.112F27C6

5:

112F280E 7C 0A JL SHORT tcCore.112F281A


Джампы меняем на безусловные, т.е. 7E и 7C на EB.

Только вот такой патч все равно не снимает ограничения с плагинов. Например в плагине LoadTest есть ограничение на количество одновременных пользователей - 5. Мне это пока не нужно, поэтому я не смотрел.



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

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

Tim

А ты не мог бы в двух словах рассказать, что ты сделал с дампом, а то я что-то запутался.

Кстати борландовский tdump отказывается понимать распакованые dll-ки. Интересно, почему.



Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

Создано: 23 июля 2006 02:12
· Личное сообщение · #12

egorovshura
что за Turbo Dump?

-----
MicroSoft? Is it some kind of a toilet paper?




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

Создано: 23 июля 2006 09:30
· Личное сообщение · #13

Tim
Это аналог MS dumpbin. Консольная утилитка для просмотра информации о выполняемых файлах. Идет со всеми IDE от борланда.



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 ноября 2006 05:59
· Личное сообщение · #14

egorovshura пишет:
Проверка там осуществляется в двух процедурах. В цикле выполнения скрипта и еще есть одна процедура с проверкой, видимо для подстраховки.


Patches:

1:

1130C3CE 7E 09 JLE SHORT tcCore.1130C3D9

2:

1130C3FF 7E 09 JLE SHORT tcCore.1130C40A

3:

1130C458 7C 06 JL SHORT tcCore.1130C460

4:

112F27BA 7E 0A JLE SHORT tcCore.112F27C6

5:

112F280E 7C 0A JL SHORT tcCore.112F281A


Джампы меняем на безусловные, т.е. 7E и 7C на EB.


А как применить эти патчи? Нужно распаковывать tcCore.dll? Можешь скинуть пропатченный файл. У меня версия 4.25 но мне кажется должно подойти




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

Создано: 02 ноября 2006 06:30
· Личное сообщение · #15

а теперь посмотри на дату

-----
Тут не могла быть ваша реклама




Ранг: 24.2 (новичок)
Активность: 0.010
Статус: Участник

Создано: 02 ноября 2006 08:05
· Личное сообщение · #16

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


 eXeL@B —› Основной форум —› Распаковка Dll запакованной ASPR
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати