Сейчас на форуме: rtsgreg1989, zds, _MBK_ (+5 невидимых)

 eXeL@B —› Основной форум —› Помогите убить CRC проверки (ExeCryptor)
Посл.ответ Сообщение


Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 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 ацтой!




Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 06 августа 2007 14:50
· Личное сообщение · #2

_lopen _Lread _hread Лови где чекаются блоки! Решений полным полно! Можешь подменить значения, можешь убрать проверку , можешь прибить тред ! самыи простой способ снять со стека куда нить возврат со старта любого треда и вывести тред с проверкой



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 06 августа 2007 14:52
· Личное сообщение · #3

Maximus пишет:
ebfe

C3h , кроме того такая проверка не одна, и поток создаётся тоже не один.

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 06 августа 2007 15:01 · Поправил: Maximus
· Личное сообщение · #4

Smon
вроде одна, но тред запускается всегда разное количество раз, и на последок всегда вылетает с кодом 131h

можешь прибить тред !
Пробовал jmp ExitThread, но прога проваливается в WaitForSingleObject и там и остается.

lopen _Lread _hread
пробовал, бряки не срабатывают (ставил хардварные и обычные)... прога не брякается ни разу ((...

-----
StarForce и Themida ацтой!




Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

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



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

Создано: 06 августа 2007 15:30
· Личное сообщение · #6

На офф. сайте уже стоит версия 4.0.8.0. А ImpRec её не любит - "Can't open the process". В чём фишка?




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 06 августа 2007 15:35
· Личное сообщение · #7

DarkWolf ща сделаю импорт на .0.8

"Can't open the process".
Об этом писали в топах, ошибка на импрек 1.6, нужен 1.42

-----
StarForce и Themida ацтой!




Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

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





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 06 августа 2007 15:37
· Личное сообщение · #9

pavka оки ща попробую на новой версии уже

-----
StarForce и Themida ацтой!




Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 06 августа 2007 15:41
· Личное сообщение · #10

я вообще выписывал все адреса типа 5F9E74 побрякавшись на CreateThread, а затем заменял уже в дампе на диске hiew'ом первый байт по этим адресам на C3, и всё - crc идёт лесом.

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 06 августа 2007 15:45
· Личное сообщение · #11

Smon пишет:
я вообще выписывал все адреса типа 5F9E74 побрякавшись на CreateThread, а затем заменял уже в дампе на диске hiew'ом первый байт по этим адресам на C3, и всё - crc идёт лесом.

Нафига отмниторить Камом он покажет все вызовы ;) Мне просто лениво искать начало треда или искать проверки я просто записываю куда нить в конец секции кода верхушку стека и в безобидом месте где нить просто вывожу тред...




Ранг: 199.9 (ветеран), 4thx
Активность: 0.120.02
Статус: Участник

Создано: 06 августа 2007 16:23
· Личное сообщение · #12

Maximus
Если речь идет о файле apc_Admin.exe, попробуй пропатчить так:
.00703718 3BC0 CMP EAX,EAX
.0070371A 90 NOP
.0070371B 90 NOP



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

Создано: 06 августа 2007 16:52
· Личное сообщение · #13

Распаковал apc_Admin.exe под ХР СП1 и под ХР СП2. Удивительно, но поведение файлов разное.
Поведение файла распакованного под ХР СП2 уже описал Maximus.
А вот фаил распакованный под ХР СП1 запускается и работает, а окно с ошибкой выкидывает, только при выходе из программы (т.е. фаил->выход). Но конечно фаил распакованный под ХР СП1 не запускается под ХР СП2.




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 06 августа 2007 18:31
· Личное сообщение · #14

Amok дык я писал что если сдампить, то работает на той тачке на которой сдамплено ((...

YDS
Чета не прокатило, хоть бы рассказал откуда цыферь.. ((

Ща еще буду пробовать паффкины методы борьбы...

Вот навсяк 4.0.8.0 с восстановленым импортом и восстановлеными спертыми байтами (CRC не проходит):
rapidshare.com/files/47329840/apc_Admin1.rar.html

-----
StarForce и Themida ацтой!





Ранг: 199.9 (ветеран), 4thx
Активность: 0.120.02
Статус: Участник

Создано: 06 августа 2007 18:35 · Поправил: YDS
· Личное сообщение · #15

Maximus
ИМХО, но значит дело не в проверке CRC, а в распаковке



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 06 августа 2007 18:54
· Личное сообщение · #16

YDS пишет:
ИМХО, но значит дело не в проверке CRC, а в распаковке

Если "File corrupt!" месагебох то в CRC бывает еще такая фигня когда фиксишь под разные оси начинает орать дебагер детектед ;) при запуске и терминатится ....




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 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 ацтой!





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 06 августа 2007 19:35
· Личное сообщение · #18

Maximus пишет:
вот не могу понять смысл фразы "а сунуть на стек 7C80B50B и ret"

Имхо, это значит положить на стек это число и топать на ret.




Ранг: 328.7 (мудрец), 73thx
Активность: 0.170.01
Статус: Участник

Создано: 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] пропускать

код может быть другой - но структура одинаковая




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 06 августа 2007 20:34 · Поправил: Maximus
· Личное сообщение · #20

r99 я не пытаюсь распаковать прогу)) я пытаюсь найти способ пофиксить CRC проверку...

Сделал поиск по 8B04D8 (mov eax,[eax][ebx]*8) и таких байт не обнаружил, соответственно куска такого не нашел.

-----
StarForce и Themida ацтой!





Ранг: 328.7 (мудрец), 73thx
Активность: 0.170.01
Статус: Участник

Создано: 06 августа 2007 21:37
· Личное сообщение · #21

Maximus ищи
Должон быть

я ж написал - код другой может быть

call eax или call edx ....
cmp esi,ebx - это вроде обязательно




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 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 ацтой!





Ранг: 328.7 (мудрец), 73thx
Активность: 0.170.01
Статус: Участник

Создано: 06 августа 2007 21:47
· Личное сообщение · #23

Maximus
у меня на 100-выполнении вылезали баги а ты 30




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 06 августа 2007 21:53
· Личное сообщение · #24

r99 да нет там ни каких багов до самого завершения программы

-----
StarForce и Themida ацтой!





Ранг: 199.9 (ветеран), 4thx
Активность: 0.120.02
Статус: Участник

Создано: 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: пока писал, уже опередили.




Ранг: 328.7 (мудрец), 73thx
Активность: 0.170.01
Статус: Участник

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




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 07 августа 2007 09:56 · Поправил: Maximus
· Личное сообщение · #27

r99 теперь понял откуда взял цыферь YDS
все работает, спасибо, тему пока закрывать не буду до полного отлома на случай если появятся вопросы еще

-----
StarForce и Themida ацтой!





Ранг: 328.7 (мудрец), 73thx
Активность: 0.170.01
Статус: Участник

Создано: 07 августа 2007 10:54
· Личное сообщение · #28

YDS пишет:
Однако прыг через call EAX ничего не дает - триды с проверкой идут дальше.


нужно не прыг через call eax а занулять соответствующий dword.
необходимость в этом появляется (вспомнил) в упакованных прогах, когда начинаешь отрезать последние секции дампа и корректировать внутренний импорт криптора и появляется такая хрень:

pavka пишет:
бывает еще такая фигня когда фиксишь под разные оси начинает орать дебагер детектед ;) при запуске и терминатится ....





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 08 августа 2007 06:16 · Поправил: Maximus
· Личное сообщение · #29

Прогу раздолбал (все таки апи слабое место всех протов), всем еще раз большое спасибо (без вас я бы не справился). Топег закрываю.

P.S: отдельное спасибо r99 за то что доходчиво объяснил как, и точно показал где )))
P.S: Кому надо, скачать кряк можно на борде...

-----
StarForce и Themida ацтой!



 eXeL@B —› Основной форум —› Помогите убить CRC проверки (ExeCryptor)
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати