| eXeL@B —› Основной форум —› Распаковка Dll запакованной ASPR | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 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 Заранее спасибо. ![]()  | 
| 
 | 
Создано: 19 июля 2006 18:34  · Личное сообщение · #2  | 
| 
 | 
Создано: 20 июля 2006 15:22  · Личное сообщение · #3  | 
| 
 | 
Создано: 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? ![]()  | 
| 
 | 
Создано: 21 июля 2006 01:22  · Личное сообщение · #5 Там библиотек на 30 метров. Мне не под силу такое выложить. Наверное проще из дистрибутива их взять. Для меня так и осталось непонятным почему ломается dll при обнулении секции данных. Ошибка происходит на этапе загрузки. Я пробовал обнулять не всю область а частями, так вот если я обнуляю начало, то dll загружается, а если обнуляю конец области, то возникают проблемы. LordPE и PETools просто вылетают при загрузке. Видимо я порчу какие-то важные данные, непонятно. ![]()  | 
| 
 | 
Создано: 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 и дампить, а если нет, то по ситуации (внимательно читай топик приведённый выше). ----- Всем привет, я вернулся ![]()  | 
| 
 | 
Создано: 21 июля 2006 08:21  · Личное сообщение · #7  | 
| 
 | 
Создано: 21 июля 2006 13:09  · Личное сообщение · #8  | 
| 
 | 
Создано: 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? ![]()  | 
| 
 | 
Создано: 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. Мне это пока не нужно, поэтому я не смотрел. ![]()  | 
| 
 | 
Создано: 23 июля 2006 00:24  · Личное сообщение · #11  | 
| 
 | 
Создано: 23 июля 2006 02:12  · Личное сообщение · #12  | 
| 
 | 
Создано: 23 июля 2006 09:30  · Личное сообщение · #13  | 
| 
 | 
Создано: 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 но мне кажется должно подойти ![]()  | 
| 
 | 
Создано: 02 ноября 2006 06:30  · Личное сообщение · #15  | 
| 
 | 
Создано: 02 ноября 2006 08:05  · Личное сообщение · #16  | 
| eXeL@B —› Основной форум —› Распаковка Dll запакованной ASPR | 
| Эта тема закрыта. Ответы больше не принимаются. | 




 какая-то.
:



 Для печати