![]() |
eXeL@B —› Основной форум —› molebox распакованная прога просит dll... |
Посл.ответ | Сообщение |
|
Создано: 21 мая 2006 06:43 · Личное сообщение · #1 с молбоксом уже дело имел. но тут что то в тупик зашло. клевая логическая игрушка от miniclip www.miniclip.com/zenpuzzlegarden/zenpuzzlegarden.htm ну там как обычно, все в одном файле. сам экзешник распаковал без проблем. В imprec получилось, что всего грузятся 5 dll. Из них две типа mbx. Сдампил две mbx@... dll-ки, которые грузятся в память кодом пакера (т.е. до перехода на OEP). у меня называются так: mbx@1fc@9030a8.### mbx@1fc@9030b8.### настоящие названия были такие SDL.DLL SDL_MIXER.DLL и те и другие положил в папку на всякий случай. Но при загрузке распакованной проги в олли, сразу же вылетает mbx@144@9330a0.### was not found Тут я подумал, что это какая то третья dll, но в любом случае как двигаться дальше, если даже в олли распакованную прогу загрузить не получается. Дальше я подумал, что может быть это надо одну из распакованных мной dll переименовать.... Но дело в том, что при попытке запустить распакованную прогу вообще без dll, она сначала требует мои две распакованные dll именно с теми именами mbx@1fc@9030a8.### и mbx@1fc@9030b8.###. Если переименовать первую (то есть mbx@1fc@9030a8.### в mbx@144@9330a0.###) , то при запуске вылетает failed to initialize properly (0xC0000005) если вторую, то the procedure entry point SDL_RWFromFP could not be located in the dynamic link library... Больше идей нету. Делитесь своими ![]() ПОнятно, что там еще ресурсы зашиты в экзешник. Их я потом достану - уже опыт есть (см. мои посты про arcalands) Но сначала надо в олли суметь загрузить дамп... Подозреваю, что третья длл вызывается одной из распакованных двух. Как бы ее достать... ![]() |
|
Создано: 21 мая 2006 09:46 · Личное сообщение · #2 |
|
Создано: 21 мая 2006 09:54 · Личное сообщение · #3 |
|
Создано: 22 мая 2006 10:55 · Личное сообщение · #4 |
|
Создано: 22 мая 2006 12:06 · Личное сообщение · #5 2 tundra37 www.miniclip.com/zenpuzzlegarden/zen_demo.exe я тоже люблю с осла ![]() Да, моль заменяет переходники функций типа createfile, readfile и т.д. на свои. Надо узнать на какие. Затем надо вручную найти список всех файлов и таблицу указателей на имена файлов. Затем организовать цикл по чтению файлов в память с помощью молевских апи и сразу же дампить в файл на диск. Mario555 Можно ли так достать mbx@#%&$.xxx dll? Всем Кажется я понял, в чем ошибка. Как я уже сказал две dll я достал. Я думал, что есть 3-я но ее нет! Просто имя длл всегда разное - случайно задается. Неслучайна там только буква a или b в названии. Во второй из распакованных длл импортируются функции из первой (а вовсе не из какой-то третьей). Но экзешник и длл я распаковал по очереди, поэтому для одной и той же длл экзешник требует одно имя, а длл другое. вообщем нужно поменять название длл внутри другой длл (ну или в экзешнике, тогда сам файл длл тоже переименовать). Пошел тестировать... ![]() |
|
Создано: 22 мая 2006 22:38 · Личное сообщение · #6 |
|
Создано: 23 мая 2006 16:50 · Личное сообщение · #7 |
|
Создано: 23 мая 2006 17:06 · Личное сообщение · #8 |
|
Создано: 25 мая 2006 04:47 · Личное сообщение · #9 pavka спасибо! загрузить в олли получилось. но теперь прога вылетает по другой причине. Гружу файл в олли. Получается такая вот лабуда. Сначала вызывается createfilea 0041888F |. E8 FCB40000 CALL <JMP.&kernel32.CreateFileA> ; \CreateFileA нажимаем F7 оказываемся здесь. Вроде все хорошо. Адрес 004B72A4 действительно содержит 7C801A24 т.е переход на createfile! 00423D90 $-FF25 A4724B00 JMP DWORD PTR DS:[<&kernel32.CreateFileA>] ; kernel32.CreateFileA Однако после очередного F7 попадаем на совершенно другой адрес. 7C801ACC 90 NOP 7C801ACD 90 NOP 7C801ACE 90 NOP 7C801ACF 90 NOP 7C801AD0 > 8BFF MOV EDI,EDI 7C801AD2 55 PUSH EBP 7C801AD3 8BEC MOV EBP,ESP 7C801AD5 FF75 14 PUSH DWORD PTR SS:[EBP+14] 7C801AD8 FF75 10 PUSH DWORD PTR SS:[EBP+10] 7C801ADB FF75 0C PUSH DWORD PTR SS:[EBP+C] 7C801ADE FF75 08 PUSH DWORD PTR SS:[EBP+8] 7C801AE1 6A FF PUSH -1 7C801AE3 E8 75FFFFFF CALL kernel32.VirtualProtectEx 7C801AE8 5D POP EBP 7C801AE9 C2 1000 RETN 10 это отчего так? вроде даже память просканировал нигде нету этого адреса 7C801ACC. Откуда ж он берется то? ![]() |
|
Создано: 25 мая 2006 05:07 · Личное сообщение · #10 Вот сюда выходит! 7C801A24 > 8BFF MOV EDI,EDI 7C801A26 55 PUSH EBP 7C801A27 8BEC MOV EBP,ESP 7C801A29 FF75 08 PUSH DWORD PTR SS:[EBP+8] 7C801A2C E8 73C80000 CALL kernel32.7C80E2A4 7C801A31 85C0 TEST EAX,EAX 7C801A33 74 1E JE SHORT kernel32.7C801A53 7C801A35 FF75 20 PUSH DWORD PTR SS:[EBP+20] 7C801A38 FF75 1C PUSH DWORD PTR SS:[EBP+1C] 7C801A3B FF75 18 PUSH DWORD PTR SS:[EBP+18] 7C801A3E FF75 14 PUSH DWORD PTR SS:[EBP+14] 7C801A41 FF75 10 PUSH DWORD PTR SS:[EBP+10] 7C801A44 FF75 0C PUSH DWORD PTR SS:[EBP+C] 7C801A47 FF70 04 PUSH DWORD PTR DS:[EAX+4] 7C801A4A E8 27EF0000 CALL kernel32.CreateFileW 7C801A4F 5D POP EBP 7C801A50 C2 1C00 RETN 1C и возврат 00418894 |. 8BF0 MOV ESI,EAX 00418896 |. 83F8 FF CMP EAX,-1 00418899 |. 75 2B JNZ SHORT Uzen_dem.004188C6 0041889B |. E8 68B50000 CALL <JMP.&kernel32.GetLastError> ; [GetLastError и дальше в том же духе 004015C4 |. 83C1 04 ADD ECX,4 004015C7 |> 83C1 03 ADD ECX,3 004015CA |. 51 PUSH ECX ; /Arg4 004015CB |. 6A 08 PUSH 8 ; |Arg3 = 00000008 004015CD |. 68 E0010000 PUSH 1E0 ; |Arg2 = 000001E0 004015D2 |. 68 80020000 PUSH 280 ; |Arg1 = 00000280 004015D7 |. E8 003B0100 CALL Uzen_dem.004150DC ; \Uzen_dem.004150DC <------запускается 004015DC |. 83C4 10 ADD ESP,10 004015DF |. E8 64520000 CALL Uzen_dem.00406848 004015E4 |. E8 8F6E0000 CALL Uzen_dem.00408478 ![]() |
|
Создано: 26 мая 2006 05:02 · Личное сообщение · #11 |
|
Создано: 26 мая 2006 10:19 · Личное сообщение · #12 THX! ПРодолжая копать игруху, пытаюсь достать ресурсный файл zen.dat. Нигде нет его размера, поэтому застрял. Сама прога читает его по частям по 512 байт. Обращений очень много, поэтому вычислить общий размер файла не получается. Уже с горя думаю сделат цикл, который будет гонять readfile и прибавлять размер по одному байту пока ошибка не вылетит... ![]() |
|
Создано: 26 мая 2006 16:44 · Личное сообщение · #13 |
![]() |
eXeL@B —› Основной форум —› molebox распакованная прога просит dll... |