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

 eXeL@B —› Основной форум —› Вопрос по Arme
Посл.ответ Сообщение

Ранг: 41.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 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




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 27 марта 2006 13:35
· Личное сообщение · #2

x-code

Ставиш бряк на CreateThread, только ставь в самой библе.
Остановишся, выходиш из библы , попадёш в код прота, опять выходиш из этой функции (F8).
вышел, скролиш вниз и ищеш CALL EDI или CALL ECX , их будет два, ставиш бряк на тот , который ближе
к RET , остановишся и заходи в этот калл, это и будет оеп.



Ранг: 41.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 27 марта 2006 15:17
· Личное сообщение · #3

Видешь в чем дело я твой тутор читал и испробовал на счет <Girder3.3.10.exe>,
и там все так происходит как ты написал, я ставил bp CreateThread
и на втором бряке я выхожу и вижу CALL ECX, а здесь ни фига такого кода нет.




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 27 марта 2006 16:22
· Личное сообщение · #4

на бряке оставливаешся (CreateThread)?



Ранг: 41.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 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




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 27 марта 2006 19:43
· Личное сообщение · #6

Вопервых, такой листинг больше не пости (большой и не читабельный),отредактируй или,
для оли есть плагин Asm2Clipboard используй его.
Вовторых, процессов в памяти сколько? Мне кажется у тебя их два, а листинг, который ты
запостил из отцовского процесса.



Ранг: 41.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 27 марта 2006 21:20
· Личное сообщение · #7

Я конечно извиняюсь за такой код я его в ручную от редактировал, а когда я его отправил получилось что попало, да и спаибо нашел плагин Asm2Clipboard хорошая штучка.

В Attache посмотрел там два процесса, и как мне другой выбрать?




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 27 марта 2006 22:47
· Личное сообщение · #8

x-code пишет:
как мне другой выбрать?


Как минимум присутствует копимем, а могут быть и наномиты.
В атаче, Armadillo find protect и ArmaDetach, что каждая делает, думаю разберёшся сам.
По поводу вопроса, запустиш ArmaDetach и бросиш на форму файл (с которым работаеш),
прожка тебе покажет пид чилд процесса к которому нужно приатачится и какие байты исправить
на еп , теперь, запускаеш ольку и атачишся к чилд процессу.
ArmaDetach не закрывай, пока не дойдёш до оеп.

43ae_123.rar.zip



Ранг: 41.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 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




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 27 марта 2006 23:38
· Личное сообщение · #10

NIKOLA пишет:
запускаеш ольку и атачишся к чилд процессу


Чилд процесс у тебя Child process ID: 00000B80 .
Когда приатачешся олькой > F12 > F8, остановишся на джампе (опкод EBFE),
выделяеш этот джамп открываеш контекст.меню и Binary > Edit и вписываеш
Original bytes:558B, ну а тальше бряк на CreateThread.
Интересно, почему ни копимем ни наномиты не определились.



Ранг: 41.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 27 марта 2006 23:44
· Личное сообщение · #11

Спасибо попробую, но это наверное завтра, а то бежать надо



Ранг: 41.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 28 марта 2006 10:15 · Поправил: x-code
· Личное сообщение · #12

Спасибо разобрался я с ОЕР, сейчас с импортом разбираюсь
там вроде дальше как по твоему тутору




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 28 марта 2006 19:30
· Личное сообщение · #13

x-code пишет:
Спасибо разобрался я с ОЕР


Ну воти молодец



Ранг: 41.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 28 марта 2006 21:46
· Личное сообщение · #14

Все с этим я полностью разобрался

Решил попробовать без ArmaDetach (в ручную), при атачил процесс Child (в другой оли)
все то же самое как с ArmaDetach, только когда я ставлю бряк на CreateThread и нажимаю
F9 у меня выскакивает ошибка:

<Your program is suspended and can't run. Please resume main thread.>

Хотя делаю все правильно.




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 28 марта 2006 21:59
· Личное сообщение · #15

Жми ОК, а потом, контекст.меню и резюме треад.



Ранг: 41.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 28 марта 2006 22:29
· Личное сообщение · #16

После этого я попадаю в какой-то другой код, который я прилагал в беспорядочном листинге см. выше.




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 29 марта 2006 09:00
· Личное сообщение · #17

Значит у тебя процес отец не отделяется от чилд.



Ранг: 41.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 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

Почему-то




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 29 марта 2006 19:37
· Личное сообщение · #19

Ну а дальше, прога запускается или падает?



Ранг: 41.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 29 марта 2006 21:28
· Личное сообщение · #20

Запускается



Ранг: 41.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 29 марта 2006 22:40
· Личное сообщение · #21

Спасибо NIKOLA за помощь я тебе очень благодарен!!!



Ранг: 41.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 29 марта 2006 22:40
· Личное сообщение · #22

Я полностью разобрался со всеми методами распаковки!




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 29 марта 2006 23:46
· Личное сообщение · #23

Незачто.



Ранг: 41.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 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)




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 31 марта 2006 23:05
· Личное сообщение · #25

x-code пишет:
Enable Nanomites Processing


Можеш пока отложить эту прогу на потом. Если ты в первые пытаешся распаковать арму, не связывайся с наномитами. Научись пока распаковывать без наномитов, а когда разберёшся в работе армы, тогда уже можно будет братся и за них.
Ну а в твоём случае, нужно работать с чилд процессом и WriteProcessMemory здесь не поможет,
методика уже другая. Почитай туторы, но правда я на русском мало видел, больше на испанском и английском.



Ранг: 41.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 31 марта 2006 23:11
· Личное сообщение · #26

хорошо, спасибо


 eXeL@B —› Основной форум —› Вопрос по Arme
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати