Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Реверсинг (https://forum.antichat.xyz/forumdisplay.php?f=94)
-   -   CRC32+regfile.dat Помогите (https://forum.antichat.xyz/showthread.php?t=83869)

cryptX 06.09.2008 19:58

CRC32+regfile.dat Помогите
 
Ребята помогите пожалуйста.
вот такая у меня проблема
я нашел в проге место где проверяется серейник и изменил jnz->jz
место генераций серейника не смог найти (слишком запутано)
потом патчил и вот проблема самые важные части проги начали не работать,
с помощи peid(kanal)-a узнал что в проге есть 2 алгоритма хеширования crc16-ccitt и crc32,
и еще я узнал что хешируется не весь код программы а только несколько секций (code section),
и еще когда загружаю прогу в олли но не запускаю его а меняю jnz на jz, и вот потом запускаю прога работает нормально.

Вопросы:
1.Как можно изменить несколько байт в code section,чтоб црц секций не менялось?, как узнать црц32 код секций ?
если у кого нить такие туториалы,статьи,примеры ?

2.Как найти где именно црц проверка происходит, ведь если в проге есть полином crc32(16) то канал может и врать.

3.Прога ищет regkey.dat и из него читает серейник, как узнать где именно он читает серейник ?

хочу сказать что Readfile-ов в проге очень много, и вообще таких функций(CreatefileA) много.

4.И как объяснить тот факт, что олли пишет program entery point - 0041204 и когда после этого я меняю байты прога работает нормально,
те проверки значит не происходит, как это возможно ?

ЗАРАНЕЕ ОЧЕНЬ БЛАГОДАРЕН!

Нашел место где проверяется 2 байта и в файле regkey.dat изменил подходящим образом и прога в about-e пишет registered,а когда нажимаю на одну кнопку виснет, как это объяснить? и как можно найти настоящее место проверки серейника?

0x0c0de 06.09.2008 20:39

>>Как можно изменить несколько байт в code section,чтоб црц секций не менялось?, как узнать црц32 код секций ?
если у кого нить такие туториалы,статьи,примеры ?


нет нет. дело в том, что программа хранит у себя верное crc. и если вы что-то поменяете оно будет другое. ищите проверки. по другому никак. мало просто изменить какой-то джамп. возможно значения, которые возвращает функция проверки crc где-то сохраняется и потом у вас все глючит. или вы нашли неверный переход. или само значение crc где-то используется. дайте лучше ссылку на софт, телепатов-удаленнореверсеров нет.

ProTeuS 06.09.2008 20:52

0x0c0de неправа. универсальный выход - заюзать плиг для пеида CRC32, он позволяет подменить CRC32 файла на произвольное зна4ение. соотвественно ищи эталонное (контрольная сумма файла до пат4инга), пат4 переходы, меняй в плаге зна4ение выходного файла на то которое было до него. все. должно работать, если проверка стоит только на CRC32

cryptX 06.09.2008 20:57

0x0c0de
Просто одна просьба,если найдешь место генераций серейника обясни мне как ты нашел,а кейген постораюсь сделать сам,ЗАРАНЕЕ ОЧЕНЬ БЛАГОДАРЕН
Вот сама программа http://rapidshare.com/files/143136794/HistoryKiller.rar.html

cryptX 06.09.2008 20:59

2 ProTeuS
друг там НЕ ВЕСЬ КОД Проверяется а только несколько секций а црц32 плагин тут не поможет

0x0c0de 06.09.2008 21:00

ProTeuS, а гарантия есть, что там только CRC32? Ты предложил хороший метод под конкретный алгоритм.

ProTeuS 06.09.2008 21:11

0x0c0de, ТС написал 4то токо CRC32\16 есть, стало быть должно проканать было

cryptX, ставишь бряк на 4тение секции данных (или какая там у тебя) при старте в ольке, ловишь бряки на проверках, записываешь места, трейсишь вверх, смотришь 4то далее с 4ем сравнивается, подмяняешь результат на эталонный, или пат4ишь переходы. все

fromRIDDER 07.09.2008 13:53

Part I

Ставишь бряк на CreateFileA, третья остановка при открытии regkey.dat, потом чтение файла в память, ставишь memory breakpoint на эту память и ты в функции проверки файла. Функция должна вернуть 1, делать патч или кейген решай сам. Структура файла проста: 12 байт - то, что проверяется; 80< - ключ, не проверяется, но отображается в окне About. Я так думаю, при регистрации ключ проверяется, если он валиден, создаётся его хэш и вместе сним записывается в файл.

Part II

Ставишь бряк на CreateFileA, вторая остановка при открытии самого себя, потом чтение в память, ставишь memory бряк на эту память и ты в функции проверки crc, точнее в месте, где происходит сравнение crc текущего файла с crc оригинального. Можно пропатчить ( je --> jmp ), а можно посмотреть crc текущего файла и hex-editor-ом заменить его crc оригинального.

Если что-то непонятно, могу написать более подробно с адресами и комментами.

cryptX 07.09.2008 14:37

2 fromRIDDER
СПАСИБОО БОЛЬШОЕЕЕ,шас постораюсь сделать патч или кейген если что сообщу :)

cryptX 07.09.2008 15:23

2 fromRIDDER
а как ты узнал что именно на CreateFileA нужно бряк ставить ?
и что это за функция CreateFileA ?


Время: 14:29