![]() |
eXeL@B —› Основной форум —› Поиск MagicJump в Armadillo v2.85 * |
Посл.ответ | Сообщение |
|
Создано: 17 августа 2006 23:01 · Личное сообщение · #1 Ломаю SWFText 1.2, не могу найти MagicJump, пробовал скриптом, говорит всё ОК Только место где я останавливаюсь не совсем похоже на MagicJump ![]() Мож кто знает как зрительно выглядит заветный прыжок И ещё про распаковку: ArmStripper v0.1 beta 2 (c) by BiT-H@ck, 2006. Engine by Syd. 14:10:10 - starting c:\games\flyordie gemjam gold\gemjam.exe.. 14:10:10 - Detecting Armadillo... 14:10:10 - Armdillo detected! 14:10:10 - Detecting protect options... 14:10:10 - 14:10:10 - Options used: 14:10:10 - Debug-Blocker 14:10:10 - 14:10:10 - <Backup Key Options> 14:10:10 - Variable Backup Keys 14:10:10 - 14:10:10 - <Compression Options> 14:10:10 - Best/Slowest Compression CreateProcessW - 7c802332 EP in child - 004b7000 Previously break operation... Service name patched! <----------- Нафига етот шаг, он нужен только для распаковщика? Magic jump found Magic jump patched Trace to OEP... OEP - 0044b890 Вручную распаковать не получается, процесс вылетает ![]() Игра называется FlyOrDie GemJam Gold v1.21, версия Armadillo - 3.7x ----- Research For Food ![]() |
|
Создано: 18 августа 2006 00:44 · Личное сообщение · #2 daFix пишет: Вручную распаковать не получается, процесс вылетает Игра называется FlyOrDie GemJam Gold v1.21, версия Armadillo - 3.7x Тутор по распаковке армы на днях самому помогли найти так что вот сцылка на видео тутор по анпаку армы этой версии + дебуг блокер () Брать Здесь http://tlgtut.mylivepage.ru/file/?fileid=149 {4.257кб} ![]() |
|
Создано: 18 августа 2006 00:46 · Поправил: SeQuick · Личное сообщение · #3 |
|
Создано: 18 августа 2006 02:36 · Личное сообщение · #4 SeQuick пишет: Брать Здесь Честно говоря мне уже всё меньше и меньше нравиться этот свой тутор ну да фиг с ним ![]() Ну а насчёт джампа вспоминаються два варианта - вот это юзаеться вроде как в копимеме и взят из реальной проги ![]() CALL DWORD PTR DS:[EE00D4] ; kernel32.GetModuleHandleA MOV ECX,DWORD PTR DS:[EEB774] MOV DWORD PTR DS:[ESI+ECX],EAX MOV EAX,DWORD PTR DS:[EEB774] CMP DWORD PTR DS:[ESI+EAX],EBX JNZ SHORT 00EB9C8A LEA EAX,DWORD PTR SS:[EBP-14C] PUSH EAX CALL DWORD PTR DS:[EE00DC] ; kernel32.LoadLibraryA MOV ECX,DWORD PTR DS:[EEB774] MOV DWORD PTR DS:[ESI+ECX],EAX MOV EAX,DWORD PTR DS:[EEB774] CMP DWORD PTR DS:[ESI+EAX],EBX JE 00EB9DCA <- Патчим на JMP первый JE после GetModuleHandleA XOR ECX,ECX MOV EAX,DWORD PTR DS:[EDI] CMP DWORD PTR DS:[EAX],EBX JE SHORT 00EB9CA6 INC ECX ADD EAX,0C JMP SHORT 00EB9C9C MOV EBX,ECX SHL EBX,2 PUSH EBX CALL 00EDEFB8 ; JMP to msvcrt.??2@YAPAXI@Z MOV ECX,DWORD PTR DS:[EEB76C] MOV DWORD PTR DS:[ESI+ECX],EAX PUSH EBX CALL 00EDEFB8 ; JMP to msvcrt.??2@YAPAXI@Z POP ECX POP ECX MOV ECX,DWORD PTR DS:[EEB770] MOV DWORD PTR DS:[ESI+ECX],EAX MOV EBX,DWORD PTR DS:[EDI] MOV EAX,DWORD PTR DS:[EBX] TEST EAX,EAX JE 00EB9DAD XOR EDI,EDI PUSH 100 LEA ECX,DWORD PTR SS:[EBP-258] PUSH ECX PUSH EAX CALL 00EB813B ADD ESP,0C LEA EAX,DWORD PTR SS:[EBP-258] PUSH EAX MOV EAX,DWORD PTR DS:[EEB774] PUSH DWORD PTR DS:[ESI+EAX] CALL DWORD PTR DS:[EE00D8] ; kernel32.GetProcAddress ну и второй из минимума или стандарта - как в этом туторе ищем POP ECX POP ECX TEST EAX, EAX JNZ XXXXXX хотя может и ещё варианты есть, особенно в такой древней версии... ----- Люблю повеселиться, особенно пожрать ![]() |
|
Создано: 18 августа 2006 03:06 · Личное сообщение · #5 Как ни странно нашёл я у себя на харде SWFText v1.2.0.1 - подробно пока не глядел, но тут вроде на самом деле ни один из двух вариантов не подходит... самое интресное что джамп может быть и не так уж и нужен - у меня в импреке после Trace Level 1 все функции восстановились... ----- Люблю повеселиться, особенно пожрать ![]() |
|
Создано: 18 августа 2006 03:53 · Личное сообщение · #6 |
|
Создано: 18 августа 2006 03:58 · Личное сообщение · #7 |
|
Создано: 18 августа 2006 07:28 · Личное сообщение · #8 |
|
Создано: 18 августа 2006 09:17 · Поправил: daFix · Личное сообщение · #9 SeQuick пишет: Арма портит хеадер проги и из-за этого она вылетает, что бы не вылетала нуно оригинальный посмотреть и по-бинарному вставить =) ну вообщем в туторе фсё ето найдёшь дерзай! Вылетает всмысле выдаёт сообщение: Failed to execute target process (Location XEB, error code 299) Вчера читал тутор, там была такая фича: CreateToolhelp32Snapshot, мож арма так и палит отладчик? ![]() SeQuick пишет: Тутор по распаковке армы на днях самому помогли найти так что вот сцылка на видео тутор по анпаку армы этой версии + дебуг блокер () У меня версия армы v2.85 * Есть у меня этот тутор, там MagicJump выглядит так: POP ECX POP ECX TEST EAX, EAX JNZ XXXXXX а здесь х.з. NEOPEX пишет: самое интресное что джамп может быть и не так уж и нужен - у меня в импреке после Trace Level 1 все функции восстановились... Чё-то у меня Trace Level 1 не востановил ничего ![]() ----- Research For Food ![]() |
|
Создано: 18 августа 2006 13:44 · Поправил: NEOPEX · Личное сообщение · #10 Ну вообщем одолел я эту арму, но мэджик джамп там действительно нестандартный - уж больно дремучая версия... Примерный порядок действий такой : Запускаем прогу, ищем импорт, находим его в начале секции rdata, ставим железный бряк на любой понравившийся дворд из импорта - можно на правильный, можно и на неправильный... Рестартуем, первый раз прерываемся при заполнении секции мусором, а второй раз при заполнении тем чем нужно, т.е. мы прервемся вот в таком вот цикле заполнения импорта : PUSH 1 POP EAX TEST EAX,EAX JE 00CA2299 AND DWORD PTR SS:[EBP-394],0 MOV EAX,DWORD PTR SS:[EBP-164] MOVSX EAX,BYTE PTR DS:[EAX] TEST EAX,EAX JNZ SHORT 00CA2142 MOV EAX,DWORD PTR SS:[EBP-164] INC EAX MOV DWORD PTR SS:[EBP-164],EAX JMP 00CA2299 MOV EAX,DWORD PTR SS:[EBP-164] MOVZX EAX,BYTE PTR DS:[EAX] CMP EAX,0FF JNZ 00CA21FD MOV EAX,DWORD PTR SS:[EBP-164] INC EAX MOV DWORD PTR SS:[EBP-164],EAX MOV EAX,DWORD PTR SS:[EBP-164] MOV AX,WORD PTR DS:[EAX] MOV WORD PTR SS:[EBP-398],AX MOV EAX,DWORD PTR SS:[EBP-164] INC EAX INC EAX MOV DWORD PTR SS:[EBP-164],EAX MOVZX EAX,WORD PTR SS:[EBP-398] PUSH EAX PUSH DWORD PTR SS:[EBP-378] CALL 00C94B66 MOV DWORD PTR SS:[EBP-394],EAX CMP DWORD PTR SS:[EBP-394],0 JNZ SHORT 00CA21FB CALL DWORD PTR DS:[CAB0C4] ; ntdll.RtlGetLastWin32Error CMP EAX,32 JNZ SHORT 00CA21B8 MOV DWORD PTR SS:[EBP-394],0C94B5B CMP DWORD PTR SS:[EBP-394],0 JNZ SHORT 00CA21FB MOV EAX,DWORD PTR SS:[EBP+8] MOV EAX,DWORD PTR DS:[EAX] MOV DWORD PTR DS:[EAX],3 CALL DWORD PTR DS:[CAB0C4] ; ntdll.RtlGetLastWin32Error PUSH EAX MOVZX EAX,WORD PTR SS:[EBP-398] PUSH EAX PUSH DWORD PTR SS:[EBP-390] PUSH 0CAE5A4 ; ASCII "File "%s", ordinal %d (error %d)" MOV EAX,DWORD PTR SS:[EBP+8] PUSH DWORD PTR DS:[EAX+4] CALL 00CA4EBC ADD ESP,14 XOR EAX,EAX JMP 00CA2752 JMP SHORT 00CA2277 MOV EAX,DWORD PTR SS:[EBP-164] MOV DWORD PTR SS:[EBP-39C],EAX PUSH 0 PUSH DWORD PTR SS:[EBP-164] CALL 00CA4E00 POP ECX POP ECX INC EAX MOV DWORD PTR SS:[EBP-164],EAX PUSH DWORD PTR SS:[EBP-39C] PUSH DWORD PTR SS:[EBP-378] CALL 00C94B66 <- Идём в этот калл, т.к. джамп спрятан в нём... MOV DWORD PTR SS:[EBP-394],EAX CMP DWORD PTR SS:[EBP-394],0 JNZ SHORT 00CA2277 MOV EAX,DWORD PTR SS:[EBP+8] MOV EAX,DWORD PTR DS:[EAX] MOV DWORD PTR DS:[EAX],3 CALL DWORD PTR DS:[CAB0C4] ; ntdll.RtlGetLastWin32Error PUSH EAX PUSH DWORD PTR SS:[EBP-39C] PUSH DWORD PTR SS:[EBP-390] PUSH 0CAE580 ; ASCII "File "%s", function "%s" (error %d)" MOV EAX,DWORD PTR SS:[EBP+8] PUSH DWORD PTR DS:[EAX+4] CALL 00CA4EBC ADD ESP,14 XOR EAX,EAX JMP 00CA2752 MOV EAX,DWORD PTR SS:[EBP-38C] MOV ECX,DWORD PTR SS:[EBP-394] MOV DWORD PTR DS:[EAX],ECX MOV EAX,DWORD PTR SS:[EBP-38C] <- Здесь мы прервёмся ADD EAX,4 MOV DWORD PTR SS:[EBP-38C],EAX JMP 00CA2111 Сам калл (C94B66) выглядит так : PUSH EBP MOV EBP,ESP PUSH EBX PUSH ESI PUSH EDI XOR EDI,EDI XOR EBX,EBX TEST WORD PTR SS:[EBP+E],0FFFF JNZ SHORT 00C94B7B MOV EBX,DWORD PTR SS:[EBP+C] PUSH EDI CALL DWORD PTR DS:[CAB0A4] ; kernel32.GetModuleHandleA MOV ECX,DWORD PTR SS:[EBP+8] CMP ECX,EAX JNZ SHORT 00C94B90 MOV EAX,0CAD318 JMP SHORT 00C94BC0 CMP DWORD PTR DS:[CAD7D8],EDI MOV EAX,0CAD7D8 JE SHORT 00C94BA9 CMP ECX,DWORD PTR DS:[EAX+8] JE SHORT 00C94BBD ADD EAX,0C CMP DWORD PTR DS:[EAX],EDI JNZ SHORT 00C94B9D PUSH DWORD PTR SS:[EBP+C] PUSH DWORD PTR SS:[EBP+8] 0CALL 00C94BF5 POP ECX POP ECX POP EDI POP ESI POP EBX POP EBP RETN 8 MOV EAX,DWORD PTR DS:[EAX+4] CMP EAX,EDI JE SHORT 00C94BA9 CMP DWORD PTR DS:[EAX+8],EDI MOV ESI,EAX JE SHORT 00C94BA9 CMP BX,DI JE SHORT 00C94BD6 CMP BX,WORD PTR DS:[ESI+4] JMP SHORT 00C94BE4 PUSH DWORD PTR DS:[ESI] PUSH DWORD PTR SS:[EBP+C] CALL 00CAA8E0 POP ECX POP ECX TEST EAX,EAX JE SHORT 00C94BF0 <- Это и есть Magic Jump, ставим на него железный бряк, перезапускаемся и нопим его ADD ESI,10 CMP DWORD PTR DS:[ESI+8],EDI JNZ SHORT 00C94BCB JMP SHORT 00C94BA9 MOV EAX,DWORD PTR DS:[ESI+8] JMP SHORT 00C94BB6 PUSH EBP MOV EBP,ESP PUSH -1 PUSH 0CAB390 PUSH 0CA539C MOV EAX,DWORD PTR FS:[0] PUSH EAX MOV DWORD PTR FS:[0],ESP SUB ESP,40 PUSH EBX PUSH ESI PUSH EDI MOV DWORD PTR SS:[EBP-18],ESP AND BYTE PTR SS:[EBP-20],0 AND DWORD PTR SS:[EBP-1C],0 После этого прога запускаеться с нормальным импортом, ну а OEP найти там даром - CreateThread, CALL EDI и готово... Ну а так как прога юзает армовскую защиту, то там уже и ничего ломать не надо будет ![]() daFix пишет: Чё-то у меня Trace Level 1 не востановил ничего Не знаю, у меня восстановилось, но это очередная армовская наёбка - восстанавливается там всё неправильно, некоторые функции встречаються несколько раз, других вообще нету, вообщем искать джамп всё равно надо... Z0oMiK пишет: Кстати я эту прогу давно ломал еще когда в TLG был ... По-моему она у меня на харде потому и валяется, что это ты что-то спрашивал про отломку армы, хотя может и не поэтому ![]() ----- Люблю повеселиться, особенно пожрать ![]() |
|
Создано: 23 августа 2006 22:24 · Личное сообщение · #11 |
|
Создано: 24 августа 2006 00:13 · Личное сообщение · #12 |
|
Создано: 24 августа 2006 00:33 · Личное сообщение · #13 daFix пишет: и всёж мож знаеш чё за прикол Failed to execute target process (Location XEB, error code 299) Вроде только в третьих армах есть может ты опишешь поподробнее, когда этот процесс вылетает... или опять же давай ссылку... Z0oMiK пишет: Там с IAT есть замарочка ;) Блин, и тебя не понял - ты хочешь сказать что я что-то упустил или что? ----- Люблю повеселиться, особенно пожрать ![]() |
|
Создано: 24 августа 2006 01:08 · Личное сообщение · #14 NEOPEX пишет: JE SHORT 00C94BF0 <- Это и есть Magic Jump, ставим на него железный бряк, перезапускаемся и нопим его Зачем же нопить то ![]() NEOPEX пишет: Блин, и тебя не понял - ты хочешь сказать что я что-то упустил или что? Там что то вроде IAT Elimination ... я с этой прогой сидел 3 часа гемероился ![]() ![]() ![]() |
|
Создано: 24 августа 2006 08:44 · Личное сообщение · #15 Z0oMiK пишет: Зачем же нопить то , когда можно просто поменять JE на JMP... Вообще-то это противоположные вещи ![]() Сам можешь посмотреть - когда арма пишет нормальный кусок импорта, то она выходит из цикла потому что джамп по адресу 00C94BEC не срабатывает, а если она пишет адрес переходника, то она выходит потому что джамп по адресу 00C94BE4 срабатывает - вот я решил его занопить... 00C94BCB CMP BX,DI 00C94BCE JE SHORT 00C94BD6 00C94BD0 CMP BX,WORD PTR DS:[ESI+4] 00C94BD4 JMP SHORT 00C94BE4 00C94BD6 PUSH DWORD PTR DS:[ESI] 00C94BD8 PUSH DWORD PTR SS:[EBP+C] 00C94BDB CALL 00CAA8E0 00C94BE0 POP ECX 00C94BE1 POP ECX 00C94BE2 TEST EAX,EAX 00C94BE4 JE SHORT 00C94BF0 00C94BE6 ADD ESI,10 00C94BE9 CMP DWORD PTR DS:[ESI+8],EDI 00C94BEC JNZ SHORT 00C94BCB 00C94BEE JMP SHORT 00C94BA9 00C94BF0 MOV EAX,DWORD PTR DS:[ESI+8] 00C94BF3 JMP SHORT 00C94BB6 Z0oMiK пишет: Там что то вроде IAT Elimination Вроде бы при IAT Elimination импорт должен быть перемешан? или не всегда? по крайней мере там всё идёт строго по порядку... ----- Люблю повеселиться, особенно пожрать ![]() |
|
Создано: 24 августа 2006 18:07 · Личное сообщение · #16 |
![]() |
eXeL@B —› Основной форум —› Поиск MagicJump в Armadillo v2.85 * |