On/Off

Error Code

Код ошибки
(указан в скобках)
Что значит Как обойти
Data is updated 27.o8.2o24
1000 Выньте резервную копию диска Обмануть проверку геометрии диска секурома, запатчив 3 (три) раза код вида:
FLD QWORD PTR DS:[11EDC78]
FSUB QWORD PTR DS:[11EDC80]
FMUL QWORD PTR DS:[14AC050]
FCOMP QWORD PTR DS:[1483098]
FSTSW AX
TEST AH,05 (0, 1, 1)
2000 Дебаггер палится через PEB(IsDebuggerPresent) Всегда сбрасывать флаг BeingDebugged
2001 GetTickCount возвращает всегда ноль. Суть схожа с кодом ошибки 8007. Некоторые плаги или нубы, скрывающие отладчик, хукают функцию GetTickCount, заставляя ее возвращать всегда ноль (например, типичной банальной припиской XOR EAX, EAX, в конце). Посему необходимо отключать данную фитчу и не трогать GetTickCount вообще, ибо сабж не использует антиотладочные приемы, основанные на подсчете времени исполнения кода(RDTSC, GetTickCount и тд).
3000 Дебаггер палится через аппаратные точки останова(Hardware Breakpoints). Патчить код из SEH-обработчика на инструкциях UD2 или ставить аппаратки после проверки (модуль проверки аппараток идет 2 раза в начале и 2 раза после успешной проверки диска)
5000 Дебаггер/хакерская тузла(в 95%Process Monitor) палится через FindWindow. Патчить FindWindow и возвращать всегда минус адын или менять название в главном окне твоей хакерской тузлы, которую разрабы уже занесли в черный список.
5001 Дебаггер/хакерская тузла(в 95%SoftIce) палится через CreateFile. Патчить CreateFile и возвращать всегда минус адын или найти кулхакеское расширение для софтайса.
5002 Дебаггер/хакерская тузла(Process Monitor) палится через FindWindowEx Патчить FindWindowEx и возвращать всегда минус адын или менять название в главном окне твоей хакерской тузлы, которую разрабы уже занесли в черный список.
6000 Программные точки останова в начале ВыньАПИ Не надо ставить INT3 на первой/второй инструкции
6005 Аналогично 13001, с той лишь разницей, что для секции кода (после окончательной распаковки, перед прыжком на OEP) и другим алгоритмом(CRC32?). Не надо ставить INT3 в проверяемых местах. Для остальных пряморуких-ставим аппаратную точку останова по чтению/записи на проверяемый участок, выскакиваем на алгоритме подсчета, и сразу после RET попадаем на условие срабатывания типа:
MOV ECX,DWORD PTR DS:[EDI+ECX+0x13A]
CMP EAX,ECX
8002 Дебаггер виден через CheckRemoteDebuggerPresent (шо в NTDLL). Патчить CheckRemoteDebuggerPresent, возвращая ноль (поправь меня анон, если минус адын).
8011 Дебаггер палится по ZwQueryInformationProcess (шо в NTDLL), аргумент ProcessInfoClass = 7 Запатчить ZwQueryInformationProcess. Вернуть любую хуиту, кроме нуля.
8019 Дебаггер палится по ZwQueryInformationProcess (шо в NTDLL), аргумент ProcessInfoClass = (0x1F) Запатчить ZwQueryInformationProcess. Вернуть любую хуиту, кроме нуля.
9000 Отсутствует файл dfe или dfa, которые используются для расшифровки данных в data файлах защищаемой игрушки. Во всем виноват SecuROM Data File Activation . Достать файлы с интернета.
10000 Дебаггер палится по имени процесса-родителя. Переименовать ollydbg.exe в cracklab.exe и т. д. Данным недоразумением, например, не страдает SND Olly.
13000 Нарушена целостность защищаемого .exe файла SecuROM открывает сам себя(.exe файл) через WinAPI CreateFile, и методично считает контрольную сумму в секциях, считыавя байты ReadFile.
Обломать это можно двумя способами:
1) Самый боянистый, который используют еще со времен StarForce 3.x, когда protect.dll надо было нафаршировать своим исполняемым кодом. Копируется оригинальный файл filename.exe и сразу переименовывается в какой нибудь filename_original.exe. В filename.exe вставляют перехватчик, который кидает хук на CreateFile(что в kernel32) и при попытке защиты открыть filename.exe , делает редирект на filename_original.exe
2) Чисто секуромовский. После CloseHandle открытого filename.exe , правится первая попавшайся инструкция:
POPFD... CMP EAX, 1 (0 - файл цел, все ок; 1 - файл поврежден; 2 - проверка не пройдена)
13001 Нарушена целостность PE - заголовка файла. В подавляеющем большинстве случаев, ошибка возникает при попытке добавить в таблицу импорта новые фукнции, например через LordPE™ или PeTools™. SecuROM имеет запасной оригинальный PE - хидер, который сравнивается через XOR с шагом, в 4 байта, с Вашим пропатченным:
XOR ECX,DWORD PTR DS:[EDX]
NOT EAX
XOR ECX,EDX
CMP EAX,ECX
MOV EAX,EDX
Целая строка:
Conflict with Emulation Software detected.
Кривое эмулирование торможения диска этим Вашим даемон тулсом. Фейл при сравнении скорости кругляшка. Такая нездоровая херь характерна для многоядерных процессоров. Если не помогло ручное назначение одного ядра target-процессу в таскманагере, лечится в отладчике:
Нужна найти DeviceIoControl с аргументом IoControlCode = IOCTRL_DISK_PERFOMANCE(0x70020). Обычно это отдельная функция находится цикле и заводится в новом потоке, при активной проверке геометрии. В конце цикла что-то типа:
FILD QWORD PTR SS:[LOCAL.9]
INC DWORD PTR SS:[ARG.1]
FILD QWORD PTR DS:[12D1E80]
FDIVP ST(1),ST
FSTP QWORD PTR DS:[EDI-0xC]
Короче, DeviceIoControl должна возвратить в EAX ноль. Секуром понимает, что проверить скорость нельзя и пропускает модуль. Epic win!

Error Code
(указан в скобках)
Что значит Как обойти
Data is updated 27.o8.2o24
1000 Выньте резервную копию диска Обмануть проверку геометрии диска секурома, запатчив 3 (три) раза код вида:
FLD QWORD PTR DS:[11EDC78]
FSUB QWORD PTR DS:[11EDC80]
FMUL QWORD PTR DS:[14AC050]
FCOMP QWORD PTR DS:[1483098]
FSTSW AX
TEST AH,05 (0, 1, 1)
2000 Дебаггер палится через PEB(IsDebuggerPresent) Всегда сбрасывать флаг BeingDebugged
2001 GetTickCount возвращает всегда ноль. Суть схожа с кодом ошибки 8007. Некоторые плаги или нубы, скрывающие отладчик, хукают функцию GetTickCount, заставляя ее возвращать всегда ноль (например, типичной банальной припиской XOR EAX, EAX, в конце). Посему необходимо отключать данную фитчу и не трогать GetTickCount вообще, ибо сабж не использует антиотладочные приемы, основанные на подсчете времени исполнения кода(RDTSC, GetTickCount и тд).
3000 Дебаггер палится через аппаратные точки останова(Hardware Breakpoints). Патчить код из SEH-обработчика на инструкциях UD2 или ставить аппаратки после проверки (модуль проверки аппараток идет 2 раза в начале и 2 раза после успешной проверки диска)
5000 Дебаггер/хакерская тузла(в 95%Process Monitor) палится через FindWindow. Патчить FindWindow и возвращать всегда минус адын или менять название в главном окне твоей хакерской тузлы, которую разрабы уже занесли в черный список.
5001 Дебаггер/хакерская тузла(в 95%SoftIce) палится через CreateFile. Патчить CreateFile и возвращать всегда минус адын или найти кулхакеское расширение для софтайса.
5002 Дебаггер/хакерская тузла(Process Monitor) палится через FindWindowEx Патчить FindWindowEx и возвращать всегда минус адын или менять название в главном окне твоей хакерской тузлы, которую разрабы уже занесли в черный список.
6000 Программные точки останова в начале ВыньАПИ Не надо ставить INT3 на первой/второй инструкции
6005 Аналогично 13001, с той лишь разницей, что для секции кода (после окончательной распаковки, перед прыжком на OEP) и другим алгоритмом(CRC32?). Не надо ставить INT3 в проверяемых местах. Для остальных пряморуких-ставим аппаратную точку останова по чтению/записи на проверяемый участок, выскакиваем на алгоритме подсчета, и сразу после RET попадаем на условие срабатывания типа:
MOV ECX,DWORD PTR DS:[EDI+ECX+0x13A]
CMP EAX,ECX
8002 Дебаггер виден через CheckRemoteDebuggerPresent (шо в NTDLL). Патчить CheckRemoteDebuggerPresent, возвращая ноль (поправь меня анон, если минус адын).
8011 Дебаггер палится по ZwQueryInformationProcess (шо в NTDLL), аргумент ProcessInfoClass = 7 Запатчить ZwQueryInformationProcess. Вернуть любую хуиту, кроме нуля.
8019 Дебаггер палится по ZwQueryInformationProcess (шо в NTDLL), аргумент ProcessInfoClass = (0x1F) Запатчить ZwQueryInformationProcess. Вернуть любую хуиту, кроме нуля.
9000 Отсутствует файл dfe или dfa, которые используются для расшифровки данных в data файлах защищаемой игрушки. Во всем виноват SecuROM Data File Activation . Достать файлы с интернета.
10000 Дебаггер палится по имени процесса-родителя. Переименовать ollydbg.exe в cracklab.exe и т. д. Данным недоразумением, например, не страдает SND Olly.
13000 Нарушена целостность защищаемого .exe файла SecuROM открывает сам себя(.exe файл) через WinAPI CreateFile, и методично считает контрольную сумму в секциях, считыавя байты ReadFile.
Обломать это можно двумя способами:
1) Самый боянистый, который используют еще со времен StarForce 3.x, когда protect.dll надо было нафаршировать своим исполняемым кодом. Копируется оригинальный файл filename.exe и сразу переименовывается в какой нибудь filename_original.exe. В filename.exe вставляют перехватчик, который кидает хук на CreateFile(что в kernel32) и при попытке защиты открыть filename.exe , делает редирект на filename_original.exe
2) Чисто секуромовский. После CloseHandle открытого filename.exe , правится первая попавшайся инструкция:
POPFD... CMP EAX, 1 (0 - файл цел, все ок; 1 - файл поврежден; 2 - проверка не пройдена)
13001 Нарушена целостность PE - заголовка файла. В подавляеющем большинстве случаев, ошибка возникает при попытке добавить в таблицу импорта новые фукнции, например через LordPE™ или PeTools™. SecuROM имеет запасной оригинальный PE - хидер, который сравнивается через XOR с шагом, в 4 байта, с Вашим пропатченным:
XOR ECX,DWORD PTR DS:[EDX]
NOT EAX
XOR ECX,EDX
CMP EAX,ECX
MOV EAX,EDX
Целая строка:
Conflict with Emulation Software detected.
Кривое эмулирование торможения диска этим Вашим даемон тулсом. Фейл при сравнении скорости кругляшка. Такая нездоровая херь характерна для многоядерных процессоров. Если не помогло ручное назначение одного ядра target-процессу в таскманагере, лечится в отладчике:
Нужна найти DeviceIoControl с аргументом IoControlCode = IOCTRL_DISK_PERFOMANCE(0x70020). Обычно это отдельная функция находится цикле и заводится в новом потоке, при активной проверке геометрии. В конце цикла что-то типа:
FILD QWORD PTR SS:[LOCAL.9]
INC DWORD PTR SS:[ARG.1]
FILD QWORD PTR DS:[12D1E80]
FDIVP ST(1),ST
FSTP QWORD PTR DS:[EDI-0xC]
Короче, DeviceIoControl должна возвратить в EAX ноль. Секуром понимает, что проверить скорость нельзя и пропускает модуль. Epic win!