Сейчас на форуме: padad42664, kris_sexy, site-pro, vasilevradislav (+6 невидимых)

 eXeL@B —› Крэки, обсуждения —› Не получается разобрать алгоритм генерации ключа
<< . 1 . 2 .
Посл.ответ Сообщение

Ранг: 3.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 18 июля 2007 18:28
· Личное сообщение · #1

весит прога 26 мб :
ftp://s1.nevosoft.ru/beeparty_rus.exe
Есть кейген готовый, но интересен сам принцип генерации серийного номера..
Валидная пара такая:
9238 ----> 3273729373

патч сделать без проблем, но меня приперло сделать самому кейген
:00401C83 8A88E8F24000 mov cl, byte ptr [eax+0040F2E8]
:00401C89 8888C1ED4000 mov byte ptr [eax+0040EDC1], cl
:00401C8F 40 inc eax
:00401C90 84C9 test cl, cl
:00401C92 75EF jne 00401C83
:00401C94 8D0424 lea eax, dword ptr [esp]
:00401C97 50 push eax
:00401C98 E8EB140000 call 00403188
:00401C9D 8B4C2404 mov ecx, dword ptr [esp+04]
:00401CA1 B807452EC2 mov eax, C22E4507
:00401CA6 F7E9 imul ecx
:00401CA8 03D1 add edx, ecx
:00401CAA C1FA10 sar edx, 10
:00401CAD 8BCA mov ecx, edx
:00401CAF C1E91F shr ecx, 1F
:00401CB2 03CA add ecx, edx
:00401CB4 890D48EF4000 mov dword ptr [0040EF48], ecx
:00401CBA E841F3FFFF call 00401000
:00401CBF 83C408 add esp, 00000008
:00401CC2 C3 ret

первые команды это занесение введенного юзером номера в память, затем пересылка всего серийника
в другую ячейку..
непонятно зачем нужен call 00403188,а сама проверка как я понял это
call 00401000
В Hex-виде валидный серийник будет выглядеть как C321255D
а алгоритм генерации чего-то мутит с C22E4507 (это наверно константа, от которой пляшет процедура генерации) и эта константа во всех играх есть.
Поковырял в отладчике ,нифига не понимаю как он генерит такой серийник в конце концов...



Ранг: 3.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 18 июля 2007 23:02 · Поправил: HavocTracer
· Личное сообщение · #2

Icelot пишет:
я фигею.. нафиг мне 476 кб картинок-то было выкладывать

лол, ключ ты как вводить собираешься? неужели так сложно скачать 25 метров если уж заинтересовало?
для самых капризных такая ещё есть:
ftp://s2.nevosoft.ru/secrets_of_town_n_2_rus.exe
20 метров, но не пожалеете траф




Ранг: 85.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 18 июля 2007 23:11
· Личное сообщение · #3

нда.. лол тут только ты. во-первых мне запускать её и не надо было, т.к. есть такая штука ,как дизассемблер. во-вторых secrets_of_town_n_2 Vovan666 только что выложил. и размер не 20, а всего 385 в архиве.

-----
radio uno in ibisa ...




Ранг: 3.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 19 июля 2007 09:53
· Личное сообщение · #4

В общем и целом алгоритм уже понятен, основное требование для ключа, это то что после изврата с циклом:
:00401020 8BF2 mov esi, edx
:00401022 D3E6 shl esi, cl
:00401024 33F0 xor esi, eax
:00401026 81E6FFFFFF7F and esi, 7FFFFFFF
:0040102C 83E905 sub ecx, 00000005
:0040102F 8BC6 mov eax, esi
:00401031 79ED jns 00401020
у серийника должны совпадать левая и правая половины,
например 8B4D8B4D потому что команда
and ecx, 0000FFFF отсекает "хвост" ,а shr eax, 10 наоборот начало..
Задам теперь конкретные вопросы:
1. shl esi, cl (что делает эта команда)
2. как узнать что в данный момент хранится в CL ?




Ранг: 85.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 19 июля 2007 10:07
· Личное сообщение · #5

1. побитовый сдвиг в лево на cl раз. без замены младших байтов.
2. cl - это "нижняя" часть регистра ECX
ECX в цикле уменьшается на 5, когда он станет отрицательным (jns) цикл завершится.

-----
radio uno in ibisa ...




Ранг: 3.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 19 июля 2007 17:38
· Личное сообщение · #6

Icelot
все верно, осталось собрать в кучу..
CL тогда стало быть принимает значения: F,9,4,F,A,5,0,B,6,1,C
И чтобы получить правильный s\n надо все операции проделать в обратной последовательности
Кстати AND ESI, 7FFFFFF зачем надо?? Когда номер неправильный, значение не меняется..
А когда верный, то например CA24A55D изменяется на 4A24A55D т.е. первая цифра




Ранг: 124.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 21 июля 2007 21:15
· Личное сообщение · #7

это что последняя версия невосотфа что ли?
huy - это время, сериал это id игры
invoke atodw,addr _serial

mov smsnum, eax
add _huy,1
mov eax,_huy
shl eax,10h
add eax,_huy
xor ecx,ecx
inc ecx

@@:
mov esi,smsnum
shl esi,cl
xor eax,esi
add ecx,5
cmp ecx,2Eh
jle @B

invoke SetDlgItemInt, _hwnd, IDC_EDIT4, eax,0



Ранг: 3.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 июля 2007 22:26
· Личное сообщение · #8

Nitrogen
Моё почтение Ну что же, на этом и закончим..


<< . 1 . 2 .
 eXeL@B —› Крэки, обсуждения —› Не получается разобрать алгоритм генерации ключа
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати