Сейчас на форуме: rtsgreg1989, zds, _MBK_ (+5 невидимых) |
![]() |
eXeL@B —› Основной форум —› Помогите убить CRC проверки (ExeCryptor) |
Посл.ответ | Сообщение |
|
Создано: 06 августа 2007 14:27 · Поправил: Maximus · Личное сообщение · #1 Прога: Anyplace-Control 4.0.7.0 Сайт: www.anyplace-control.com/ru Закачка: www.anyplace-control.com/anyplace-control/data/AnyplaceControlInstall.exe (2.7 метра) Импорт: rapidshare.com/files/47288052/ww.rar.html OEP: 001C3453 [ + 400000] Прога накрыта ExeCryptor (не упакована) с CRC проверкой. Пробовал дампить+восстанавливать импорт. Прога работает, но только на моей машине. Если в исходном exe поправить TLS+OEP+Import+BaseOfCode вылетает "File corrupt!" и закрывается. Пробовал бряк на "CreateThread" потом C3, ebfe, exit thread... прога все равно вылетает с CRC ошибкой. Наверняка кто то решал эту проблему, и может подсказать решение. ----- StarForce и Themida ацтой! ![]() |
|
Создано: 06 августа 2007 14:50 · Личное сообщение · #2 |
|
Создано: 06 августа 2007 14:52 · Личное сообщение · #3 |
|
Создано: 06 августа 2007 15:01 · Поправил: Maximus · Личное сообщение · #4 Smon вроде одна, но тред запускается всегда разное количество раз, и на последок всегда вылетает с кодом 131h можешь прибить тред ! Пробовал jmp ExitThread, но прога проваливается в WaitForSingleObject и там и остается. lopen _Lread _hread пробовал, бряки не срабатывают (ставил хардварные и обычные)... прога не брякается ни разу ((... ----- StarForce и Themida ацтой! ![]() |
|
Создано: 06 августа 2007 15:18 · Личное сообщение · #5 К примеру Бряк на CreateThread 0012F5E8 0060176B /CALL to CreateThread from FileEncr.00601766 0012F5EC 00000000 |pSecurity = NULL 0012F5F0 00000000 |StackSize = 0 0012F5F4 005F9E74 |ThreadFunction = FileEncr.005F9E74 <--ставишь бряк на начало функции 0012F5F8 0012F608 |pThreadParm = 0012F608 0012F5FC 00000000 |CreationFlags = 0 0012F600 0012F604 \pThreadId = 0012F604 005F9E74 55 push ebp <--Начало функции 005F9E75 8BEC mov ebp,esp 005F9E77 E9 09E40300 jmp FileEncr.00638285 00E0FFB8 7C80B50B RETURN to kernel32.7C80B50B <--------Стек 00E0FFBC 0012F608 Что бы вывести тред в нужном месте тебе нужно не jmp ExitThread , а сунуть на стек 7C80B50B и ret ![]() |
|
Создано: 06 августа 2007 15:30 · Личное сообщение · #6 |
|
Создано: 06 августа 2007 15:35 · Личное сообщение · #7 |
|
Создано: 06 августа 2007 15:36 · Личное сообщение · #8 DarkWolf пишет: На офф. сайте уже стоит версия 4.0.8.0. А ImpRec её не любит - "Can't open the process". В чём фишка? а попробуй 1.4.2 версию импрека вместо 1.6 - это раз, во вторых выставь атрибуты секций RWE в отладчике. ----- "Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels ![]() |
|
Создано: 06 августа 2007 15:37 · Личное сообщение · #9 |
|
Создано: 06 августа 2007 15:41 · Личное сообщение · #10 |
|
Создано: 06 августа 2007 15:45 · Личное сообщение · #11 Smon пишет: я вообще выписывал все адреса типа 5F9E74 побрякавшись на CreateThread, а затем заменял уже в дампе на диске hiew'ом первый байт по этим адресам на C3, и всё - crc идёт лесом. Нафига отмниторить Камом он покажет все вызовы ;) Мне просто лениво искать начало треда или искать проверки я просто записываю куда нить в конец секции кода верхушку стека и в безобидом месте где нить просто вывожу тред... ![]() |
|
Создано: 06 августа 2007 16:23 · Личное сообщение · #12 |
|
Создано: 06 августа 2007 16:52 · Личное сообщение · #13 Распаковал apc_Admin.exe под ХР СП1 и под ХР СП2. Удивительно, но поведение файлов разное. Поведение файла распакованного под ХР СП2 уже описал Maximus. А вот фаил распакованный под ХР СП1 запускается и работает, а окно с ошибкой выкидывает, только при выходе из программы (т.е. фаил->выход). Но конечно фаил распакованный под ХР СП1 не запускается под ХР СП2. ![]() |
|
Создано: 06 августа 2007 18:31 · Личное сообщение · #14 Amok дык я писал что если сдампить, то работает на той тачке на которой сдамплено ((... YDS Чета не прокатило, хоть бы рассказал откуда цыферь.. (( Ща еще буду пробовать паффкины методы борьбы... Вот навсяк 4.0.8.0 с восстановленым импортом и восстановлеными спертыми байтами (CRC не проходит): rapidshare.com/files/47329840/apc_Admin1.rar.html ----- StarForce и Themida ацтой! ![]() |
|
Создано: 06 августа 2007 18:35 · Поправил: YDS · Личное сообщение · #15 |
|
Создано: 06 августа 2007 18:54 · Личное сообщение · #16 |
|
Создано: 06 августа 2007 19:24 · Поправил: Maximus · Личное сообщение · #17 YDS файл то не упакован)) pavka вот не могу понять смысл фразы "а сунуть на стек 7C80B50B и ret" то есть push 7C80B50B ret? то есть получится как бы двойной возврат? Рассказываю еще раз: ставлю бряк на "CreateThread", брякаюсь 0012FD58 005C9CFA /CALL to CreateThread from apc_Admi.005C9CF5 0012FD5C 00000000 |pSecurity = NULL 0012FD60 00000000 |StackSize = 0 0012FD64 006A5EE4 |ThreadFunction = apc_Admi.006A5EE4 0012FD68 0012FD78 |pThreadParm = 0012FD78 0012FD6C 00000000 |CreationFlags = 0 0012FD70 0012FD74 \pThreadId = 0012FD74 0012FD68 0012FD78 |pThreadParm = 0012FD78 = DC в основном потоке сразу попадаю сюда 0012FD6C 0068E7C9 /CALL to WaitForSingleObject 0012FD70 000000DC |hObject = 000000DC (window) 0012FD74 FFFFFFFF \Timeout = INFINITE по 6A5EE4 пишу ret. И в результате так и остаюсь на WaitForSingleObject ((( олька в логе пишет код возврата 0 из нити ----- StarForce и Themida ацтой! ![]() |
|
Создано: 06 августа 2007 19:35 · Личное сообщение · #18 |
|
Создано: 06 августа 2007 19:45 · Поправил: r99 · Личное сообщение · #19 а зачем вообще распаковывать - если не упакована ps в delphi-прогах есть примерно такой кусок в самом начале .00404331: 3BF3 cmp esi,ebx .00404333: 7E1A jle .00040434F -- 2 .00404335: 8B45FC mov eax,[ebp][-04] .00404338: 8B04D8 mov eax,[eax][ebx]*8 <--- бряк .0040433B: 8945F8 mov [ebp][-08],eax .0040433E: 43 inc ebx .0040433F: 895F0C mov [edi][0C],ebx .00404342: 837DF800 cmp d,[ebp][-08],0 .00404346: 7403 je .00040434B -- 3 .00404348: FF55F8 call d,[ebp][-08] .0040434B: 3BF3 cmp esi,ebx .0040434D: 7FE6 jg .000404335 -- 4 .0040434F: 33C0 xor eax,eax .00404351: 5A pop edx на бряке нужно ловить при каком ebx прога начинает флудить и тогда соответствующий call [ebx-8] пропускать код может быть другой - но структура одинаковая ![]() |
|
Создано: 06 августа 2007 20:34 · Поправил: Maximus · Личное сообщение · #20 |
|
Создано: 06 августа 2007 21:37 · Личное сообщение · #21 |
|
Создано: 06 августа 2007 21:42 · Личное сообщение · #22 r99 у мну есть такой код 00404A60 . 3BF3 CMP ESI,EBX 00404A62 . 7E 14 JLE SHORT apc_Admi.00404A78 00404A64 > 8B04DF MOV EAX,DWORD PTR DS:[EDI+EBX*8] 00404A67 . 43 INC EBX 00404A68 . 891D 44465B00 MOV DWORD PTR DS:[5B4644],EBX 00404A6E . 85C0 TEST EAX,EAX 00404A70 . 74 02 JE SHORT apc_Admi.00404A74 00404A72 . FFD0 CALL EAX 00404A74 > 3BF3 CMP ESI,EBX 00404A76 .^7F EC JG SHORT apc_Admi.00404A64 00404A78 > 33C0 XOR EAX,EAX 00404A7A . 5A POP EDX 00404A7B . 59 POP ECX 00404A7C . 59 POP ECX 00404A7D . 64:8910 MOV DWORD PTR FS:[EAX],EDX 00404A80 . EB 14 JMP SHORT apc_Admi.00404A96 00404A72 . FFD0 CALL EAX выполняется без проблем, без всякого флуда, раз 30... Я чуть выше файлик выложил rapidshare.com/files/47329840/apc_Admin1.rar.html можешь сам убедится посмотреть... ----- StarForce и Themida ацтой! ![]() |
|
Создано: 06 августа 2007 21:47 · Личное сообщение · #23 |
|
Создано: 06 августа 2007 21:53 · Личное сообщение · #24 |
|
Создано: 06 августа 2007 22:01 · Поправил: YDS · Личное сообщение · #25 r99 Что за способ - не знал раньше о таком. Только в этом случае не работает. Единственное похожее место находится тут: /*404A60*/ CMP ESI,EBX /*404A62*/ JLE SHORT apc_Admi.00404A78 /*404A64*/ MOV EAX,DWORD PTR DS:[EDI+EBX*8] /*404A67*/ INC EBX /*404A68*/ MOV DWORD PTR DS:[5B4644],EBX /*404A6E*/ TEST EAX,EAX /*404A70*/ JE SHORT apc_Admi.00404A74 /*404A72*/ CALL EAX /*404A74*/ CMP ESI,EBX /*404A76*/ JG SHORT apc_Admi.00404A64 /*404A78*/ XOR EAX,EAX /*404A7A*/ POP EDX Последнее срабатывание происходит при EBX = 000000DD. Однако прыг через call EAX ничего не дает - триды с проверкой идут дальше. Maximus Если знаешь, что патчить - скажи, я попробую заинлайнить. Add: пока писал, уже опередили. ![]() |
|
Создано: 06 августа 2007 23:13 · Личное сообщение · #26 кусок лога от KAM v1.32 Log generated by KaKeeware Application Monitor, www.kakeeware.com ....... 005CA059 kernel32.dll -> GetModuleFileNameA -- file CRC check mod = [00400000] F:\Program Files\Anyplace Control 4\apc_Admin.exe arg = 001B4CB8, *arg = 001B0178 arg = 00003FFF (16383) 00703715 kernel32.dll -> _lopen - aStr = 001B4CB8 = F:\Program Files\Anyplace Control 4\apc_Admin.exe arg = 00000000 (0) 7C85EA42 kernel32.dll -> CreateFileA -- memory CRC check aStr = 001B4CB8 = F:\Program Files\Anyplace Control 4\apc_Admin.exe arg = 80000000 (-2147483648) shareMode = [00000003] FILE_SHARE_READ | FILE_SHARE_WRITE arg = 00000000 (0) createDisp = [00000003] OPEN_EXISTING flagsAndAttr = [00000000] handle = [00000000] 005D0A6A kernel32.dll -> CreateThread arg = 00000000 (0) size = 00000000 (0) arg = 006852FF, *arg = U‹мйdи <---------стартовый адрес шреда arg = 00000000 (0) arg = 00000000 (0) arg = 0012F960, *arg = 006B9BD4 итого: 1 . [5ca059] <--- 033 делаем возвращаемый хендл файла равным нулю - как будто нет файла и [6bae23] <--89 суем 0 в название так как [ebp-4]="......\apc_Admin.exe",0 или как советовал YDS в [703718] - суем код чтобы поставить ZF=1 - то есть ошибка открытия файла 2 [6852ff] <-- 0c3 ![]() |
|
Создано: 07 августа 2007 09:56 · Поправил: Maximus · Личное сообщение · #27 |
|
Создано: 07 августа 2007 10:54 · Личное сообщение · #28 YDS пишет: Однако прыг через call EAX ничего не дает - триды с проверкой идут дальше. нужно не прыг через call eax а занулять соответствующий dword. необходимость в этом появляется (вспомнил) в упакованных прогах, когда начинаешь отрезать последние секции дампа и корректировать внутренний импорт криптора и появляется такая хрень: pavka пишет: бывает еще такая фигня когда фиксишь под разные оси начинает орать дебагер детектед ;) при запуске и терминатится .... ![]() |
|
Создано: 08 августа 2007 06:16 · Поправил: Maximus · Личное сообщение · #29 |
![]() |
eXeL@B —› Основной форум —› Помогите убить CRC проверки (ExeCryptor) |
Эта тема закрыта. Ответы больше не принимаются. |