Сейчас на форуме: Rio (+10 невидимых) |
eXeL@B —› Основной форум —› Вопрос по Arme |
Посл.ответ | Сообщение |
|
Создано: 27 марта 2006 12:18 · Поправил: x-code · Личное сообщение · #1 Я тут разбирался с программой <Backup2005 Synchronizer> снятmь Armadillo (без Copymem II, по моему стандартные настройки) и ни как не могу попасть на ОЕР в ручную все делаю по тутору (РАСПАКОВКА ПРОГРАММЫ #1BACKUP И ВОССТАНОВЛЕНИЯ IAT) с помощью скрипта получается, а вот как в статье ставлю бряк на <Set memomry breakpoint on access> не срабатывает сразу запускается прога. Кто-нибудь по советует может быть, за ранее спасибо. Здесь лежит один файл bs.sfx.exe 2409 Kbytes _hxxp://webfile.ru/880061 |
|
Создано: 27 марта 2006 13:35 · Личное сообщение · #2 x-code Ставиш бряк на CreateThread, только ставь в самой библе. Остановишся, выходиш из библы , попадёш в код прота, опять выходиш из этой функции (F8). вышел, скролиш вниз и ищеш CALL EDI или CALL ECX , их будет два, ставиш бряк на тот , который ближе к RET , остановишся и заходи в этот калл, это и будет оеп. |
|
Создано: 27 марта 2006 15:17 · Личное сообщение · #3 |
|
Создано: 27 марта 2006 16:22 · Личное сообщение · #4 |
|
Создано: 27 марта 2006 16:59 · Личное сообщение · #5 Останавливаюсь один раз когда я выхожу из CreateThread: 0081EEA6 . 50 PUSH EAX ; |pThreadParm 0081EEA7 . 68 83CB8100 PUSH 0081CB83 ; |ThreadFunction = bs.0081CB83 0081EEAC . 6A 00 PUSH 0 ; |StackSize = 0 0081EEAE . 6A 00 PUSH 0 ; |pSecurity = NULL 0081EEB0 . FF15 E8308500 CALL DWORD PTR DS:[<&KERNEL32.CreateThread>] ; \CreateThread 0081EEB6 . 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8] 0081EEB9 . 81E1 FF000000 AND ECX,0FF 0081EEBF . 85C9 TEST ECX,ECX 0081EEC1 . 74 06 JE SHORT 0081EEC9 0081EEC3 . FF15 60308500 CALL DWORD PTR DS:[<&KERNEL32.FreeConsole>] ; [FreeConsole 0081EEC9 > C685 FCFDFFFF 01 MOV BYTE PTR SS:[EBP-204],1 0081EED0 . C685 20FFFFFF 00 MOV BYTE PTR SS:[EBP-E0],0 0081EED7 . C685 24FFFFFF 00 MOV BYTE PTR SS:[EBP-DC],0 0081EEDE > 68 18A28500 PUSH 0085A218 ; /pCriticalSection = bs.0085A218 0081EEE3 . FF15 B0318500 CALL DWORD PTR DS:[<&KERNEL32.InitializeCritical>; \InitializeCriticalSection 0081EEE9 . C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0 0081EEF0 . 8D95 E0F5FFFF LEA EDX,DWORD PTR SS:[EBP-A20] 0081EEF6 . 8995 DCF5FFFF MOV DWORD PTR SS:[EBP-A24],EDX 0081EEFC . 51 PUSH ECX 0081EEFD . 0FC9 BSWAP ECX 0081EEFF . F7D1 NOT ECX 0081EF01 . 50 PUSH EAX 0081EF02 . F7D0 NOT EAX 0081EF04 . B8 6D69656C MOV EAX,6C65696D 0081EF09 . 91 XCHG EAX,ECX 0081EF0A . B9 DEC0ADDE MOV ECX,DEADC0DE 0081EF0F . 91 XCHG EAX,ECX 0081EF10 . F7D0 NOT EAX 0081EF12 . 58 POP EAX 0081EF13 . F7D1 NOT ECX 0081EF15 . 59 POP ECX 0081EF16 . 9C PUSHFD 0081EF17 . 60 PUSHAD 0081EF18 . 33DB XOR EBX,EBX 0081EF1A . 74 03 JE SHORT 0081EF1F 0081EF1C > EB 22 JMP SHORT 0081EF40 0081EF1E EB DB EB 0081EF1F . 33DB XOR EBX,EBX 0081EF21 . 74 00 JE SHORT 0081EF23 0081EF23 > EB 0D JMP SHORT 0081EF32 0081EF25 B8 DB B8 0081EF26 EB DB EB 0081EF27 0F DB 0F 0081EF28 > B9 87C9F934 MOV ECX,34F9C987 0081EF2D . 90 NOP 0081EF2E . F9 STC 0081EF2F . 74 05 JE SHORT 0081EF36 0081EF31 . EB 33 JMP SHORT 0081EF66 0081EF33 ? C074F2 B8 87 SAL BYTE PTR DS:[EDX+ESI*8-48],87 0081EF38 ? C9 LEAVE 0081EF39 ? 40 INC EAX 0081EF3A ? 48 DEC EAX 0081EF3B . 85C0 TEST EAX,EAX 0081EF3D .^ 75 DD JNZ SHORT 0081EF1C 0081EF3F E9 DB E9 0081EF40 > 61 POPAD 0081EF41 . 9D POPFD 0081EF42 . 66:92 XCHG AX,DX 0081EF44 . 66:92 XCHG AX,DX 0081EF46 . 8BC0 MOV EAX,EAX 0081EF48 . C685 40F6FFFF 01 MOV BYTE PTR SS:[EBP-9C0],1 0081EF4F . 70 07 JO SHORT 0081EF58 0081EF51 . 7C 03 JL SHORT 0081EF56 0081EF53 > EB 05 JMP SHORT 0081EF5A 0081EF55 E8 DB E8 0081EF56 >^ 74 FB JE SHORT 0081EF53 0081EF58 >^ EB F9 JMP SHORT 0081EF53 0081EF5A > A1 10A38500 MOV EAX,DWORD PTR DS:[85A310] 0081EF5F . 8B08 MOV ECX,DWORD PTR DS:[EAX] 0081EF61 . 51 PUSH ECX ; /Arg1 0081EF62 . E8 00E0FFFF CALL 0081CF67 ; \bs.0081CF67 0081EF67 . 83C4 04 ADD ESP,4 0081EF6A . 25 FF000000 AND EAX,0FF 0081EF6F . 85C0 TEST EAX,EAX 0081EF71 . 0F84 F1260000 JE 00821668 0081EF77 . 60 PUSHAD 0081EF78 . 33C0 XOR EAX,EAX 0081EF7A . 75 02 JNZ SHORT 0081EF7E 0081EF7C . EB 15 JMP SHORT 0081EF93 0081EF7E > EB 33 JMP SHORT 0081EFB3 0081EF80 C0 DB C0 0081EF81 . 75 18 JNZ SHORT 0081EF9B 0081EF83 . 7A 0C JPE SHORT 0081EF91 0081EF85 > 70 0E JO SHORT 0081EF95 0081EF87 . EB 0D JMP SHORT 0081EF96 0081EF89 E8 DB E8 0081EF8A 72 DB 72 ; CHAR 'r' 0081EF8B > 0E PUSH CS 0081EF8C .^ 79 F1 JNS SHORT 0081EF7F 0081EF8E FF DB FF 0081EF8F 15 DB 15 0081EF90 00 DB 00 0081EF91 > 79 09 JNS SHORT 0081EF9C 0081EF93 >^ 74 F0 JE SHORT 0081EF85 0081EF95 >^ EB 87 JMP SHORT 0081EF1E 0081EF97 DB DB DB 0081EF98 7A DB 7A ; CHAR 'z' 0081EF99 F0 DB F0 0081EF9A A0 DB A0 0081EF9B > 3361 68 XOR ESP,DWORD PTR DS:[ECX+68] ; | 0081EF9E ? E8 0300008B CALL 8B81EFA6 0081EFA3 ? 95 XCHG EAX,EBP 0081EFA4 ? DCF5 FDIVR ST(5),ST(0) 0081EFA6 ? FFFF ??? ; Unknown command 0081EFA8 . 52 PUSH EDX ; |pDebugEvent 0081EFA9 . FF15 E0308500 CALL DWORD PTR DS:[<&KERNEL32.WaitForDebugEvent>>; \WaitForDebugEvent 0081EFAF . 85C0 TEST EAX,EAX 0081EFB1 . 0F84 AC260000 JE 00821663 0081EFB7 . 8B85 FCFDFFFF MOV EAX,DWORD PTR SS:[EBP-204] 0081EFBD . 25 FF000000 AND EAX,0FF 0081EFC2 . 85C0 TEST EAX,EAX 0081EFC4 . 74 13 JE SHORT 0081EFD9 0081EFC6 . 8B0D 24A38500 MOV ECX,DWORD PTR DS:[85A324] 0081EFCC . 8379 20 00 CMP DWORD PTR DS:[ECX+20],0 0081EFD0 . 74 07 JE SHORT 0081EFD9 0081EFD2 . C685 FCFDFFFF 00 MOV BYTE PTR SS:[EBP-204],0 0081EFD9 > 68 18A28500 PUSH 0085A218 ; /pCriticalSection = bs.0085A218 0081EFDE . FF15 A4318500 CALL DWORD PTR DS:[<&KERNEL32.EnterCriticalSecti>; \EnterCriticalSection 0081EFE4 . 60 PUSHAD 0081EFE5 . 33C0 XOR EAX,EAX 0081EFE7 . 75 02 JNZ SHORT 0081EFEB 0081EFE9 . EB 15 JMP SHORT 0081F000 0081EFEB > EB 33 JMP SHORT 0081F020 0081EFED C0 DB C0 0081EFEE . 75 18 JNZ SHORT 0081F008 0081EFF0 . 7A 0C JPE SHORT 0081EFFE 0081EFF2 > 70 0E JO SHORT 0081F002 0081EFF4 . EB 0D JMP SHORT 0081F003 0081EFF6 E8 DB E8 0081EFF7 72 DB 72 ; CHAR 'r' 0081EFF8 0E DB 0E 0081EFF9 79 DB 79 ; CHAR 'y' 0081EFFA F1 DB F1 0081EFFB FF DB FF 0081EFFC 15 DB 15 0081EFFD 00 DB 00 0081EFFE > 79 09 JNS SHORT 0081F009 0081F000 >^ 74 F0 JE SHORT 0081EFF2 0081F002 >^ EB 87 JMP SHORT 0081EF8B 0081F004 DB DB DB 0081F005 7A DB 7A ; CHAR 'z' 0081F006 F0 DB F0 0081F007 A0 DB A0 0081F008 > 3361 8B XOR ESP,DWORD PTR DS:[ECX-75] 0081F00B . 95 XCHG EAX,EBP 0081F00C . DCF5 FDIVR ST(5),ST(0) 0081F00E ? FFFF ??? ; Unknown command |
|
Создано: 27 марта 2006 19:43 · Личное сообщение · #6 |
|
Создано: 27 марта 2006 21:20 · Личное сообщение · #7 |
|
Создано: 27 марта 2006 22:47 · Личное сообщение · #8 x-code пишет: как мне другой выбрать? Как минимум присутствует копимем, а могут быть и наномиты. В атаче, Armadillo find protect и ArmaDetach, что каждая делает, думаю разберёшся сам. По поводу вопроса, запустиш ArmaDetach и бросиш на форму файл (с которым работаеш), прожка тебе покажет пид чилд процесса к которому нужно приатачится и какие байты исправить на еп , теперь, запускаеш ольку и атачишся к чилд процессу. ArmaDetach не закрывай, пока не дойдёш до оеп. 43ae_123.rar.zip |
|
Создано: 27 марта 2006 23:29 · Личное сообщение · #9 Спасибо, за разяснения помучею прогу, только не понял что я должен заменить и на что ArmaDetachпоказывает DONE! Child process ID: 00000B80 Entry point: 0082EDB3 Original bytes: 558B Armadillo find protect показывает !- Protected Armadillo <Protection Options> Debug-Blocker <Backup Key Options> Variable Backup Keys <Compression Options> Best/Slowest Compression и далее ставлю бряк на CreateThread и у меня вылетает на 77F72862 CALL RtlExitUserThread |
|
Создано: 27 марта 2006 23:38 · Личное сообщение · #10 NIKOLA пишет: запускаеш ольку и атачишся к чилд процессу Чилд процесс у тебя Child process ID: 00000B80 . Когда приатачешся олькой > F12 > F8, остановишся на джампе (опкод EBFE), выделяеш этот джамп открываеш контекст.меню и Binary > Edit и вписываеш Original bytes:558B, ну а тальше бряк на CreateThread. Интересно, почему ни копимем ни наномиты не определились. |
|
Создано: 27 марта 2006 23:44 · Личное сообщение · #11 |
|
Создано: 28 марта 2006 10:15 · Поправил: x-code · Личное сообщение · #12 |
|
Создано: 28 марта 2006 19:30 · Личное сообщение · #13 |
|
Создано: 28 марта 2006 21:46 · Личное сообщение · #14 Все с этим я полностью разобрался Решил попробовать без ArmaDetach (в ручную), при атачил процесс Child (в другой оли) все то же самое как с ArmaDetach, только когда я ставлю бряк на CreateThread и нажимаю F9 у меня выскакивает ошибка: <Your program is suspended and can't run. Please resume main thread.> Хотя делаю все правильно. |
|
Создано: 28 марта 2006 21:59 · Личное сообщение · #15 |
|
Создано: 28 марта 2006 22:29 · Личное сообщение · #16 |
|
Создано: 29 марта 2006 09:00 · Личное сообщение · #17 |
|
Создано: 29 марта 2006 11:33 · Поправил: x-code · Личное сообщение · #18 Как, все отделяется. У меня две оли загружены в одной у меня: ставлю бряк WRITEPROCESSMEMORY+8 заменяю 55 8В на ЕВ ЕF затем бряк на WAITFORDEBUGEVENT выхожу /*81EFAF*/ PUSH 0E7C <--- заменил поставил свой процесс /*81EFB4*/ CALL kernel32.DebugActiveProcessStop <--- заменил /*81EFB9*/ NOP <--- Я останавливаюсь здесь в ЕАХ=1 /*81EFBA*/ NOP /*81EFBB*/ NOP /*81EFBC*/ NOP /*81EFBD*/ AND EAX,0FF /*81EFC2*/ TEST EAX,EAX /*81EFC4*/ JE SHORT bs.0081EFD9 /*81EFC6*/ MOV ECX,DWORD PTR DS:[85A324] /*81EFCC*/ CMP DWORD PTR DS:[ECX+20],0 /*81EFD0*/ JE SHORT bs.0081EFD9 /*81EFD2*/ MOV BYTE PTR SS:[EBP-204],0 /*81EFD9*/ PUSH bs.0085A218 /*81EFDE*/ CALL DWORD PTR DS:[<&KERNEL32.EnterCriticalSection>] Затем я запускаю другую оли я захожу в атач и выбираю процесс 0E7C попадаю сюда: /*82EDB3*/ JMP SHORT bs.<ModuleEntryPoint> <--- вернул исходные значения /*82EDB5*/ IN AL,DX /*82EDB6*/ PUSH -1 /*82EDB8*/ PUSH bs.00858EF8 /*82EDBD*/ PUSH bs.0082EAF0 ставлю бряк на CreateThread затем run. Выскакивает ошибка: <Your program is suspended and can't run. Please resume main thread.> затем в треад делаю resume попабаю на бряк CreateThread, далее выхожу и попадаю на этот код: /*81EEB0*/ CALL DWORD PTR DS:[<&KERNEL32.CreateThread>] /*81EEB6*/ MOV ECX,DWORD PTR SS:[EBP+8] <--- я нахожу вот здесь /*81EEB9*/ AND ECX,0FF /*81EEBF*/ TEST ECX,ECX /*81EEC1*/ JE SHORT bs.0081EEC9 /*81EEC3*/ CALL DWORD PTR DS:[<&KERNEL32.FreeConsole>] /*81EEC9*/ MOV BYTE PTR SS:[EBP-204],1 /*81EED0*/ MOV BYTE PTR SS:[EBP-E0],0 /*81EED7*/ MOV BYTE PTR SS:[EBP-DC],0 /*81EEDE*/ PUSH bs.0085A218 /*81EEE3*/ CALL DWORD PTR DS:[<&KERNEL32.InitializeCriticalSection>] /*81EEE9*/ MOV DWORD PTR SS:[EBP-4],0 /*81EEF0*/ LEA EDX,DWORD PTR SS:[EBP-A20] /*81EEF6*/ MOV DWORD PTR SS:[EBP-A24],EDX Почему-то |
|
Создано: 29 марта 2006 19:37 · Личное сообщение · #19 |
|
Создано: 29 марта 2006 21:28 · Личное сообщение · #20 |
|
Создано: 29 марта 2006 22:40 · Личное сообщение · #21 |
|
Создано: 29 марта 2006 22:40 · Личное сообщение · #22 |
|
Создано: 29 марта 2006 23:46 · Личное сообщение · #23 |
|
Создано: 31 марта 2006 21:35 · Поправил: x-code · Личное сообщение · #24 Извиняюсь это опять я у меня проблемка, программа запакована, PEID показывает: Armadillo 3.00a* Arma find protected показывает: Debug-Blocker CopyMem-II Enable Nanomites Processing когда я ставлю бряк WriteProcessMemory то прога вылетает вот здесь: 4FA1AD MOV DL,31 4FA1AF XOR DWORD PTR DS:[EDX],ESI 4FA1B1 IN AL,DX <--- Тут 4FA1B2 MOV ESI,EBP 4FA1B4 AND BYTE PTR DS:[ECX],DH 4FA1B6 XOR DWORD PTR DS:[EDX],ESI 4FA1B8 IN AL,63 В debug опциях все отключено. А когда я ставлю первый бряк на WaitForDebugEvent то олу запускается и ввисит (Running) |
|
Создано: 31 марта 2006 23:05 · Личное сообщение · #25 x-code пишет: Enable Nanomites Processing Можеш пока отложить эту прогу на потом. Если ты в первые пытаешся распаковать арму, не связывайся с наномитами. Научись пока распаковывать без наномитов, а когда разберёшся в работе армы, тогда уже можно будет братся и за них. Ну а в твоём случае, нужно работать с чилд процессом и WriteProcessMemory здесь не поможет, методика уже другая. Почитай туторы, но правда я на русском мало видел, больше на испанском и английском. |
|
Создано: 31 марта 2006 23:11 · Личное сообщение · #26 |
eXeL@B —› Основной форум —› Вопрос по Arme |