Сейчас на форуме: Magister Yoda (+5 невидимых)

 eXeL@B —› Основной форум —› Создание кейгена к продуктам Невософт
Посл.ответ Сообщение

Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 03 октября 2006 02:27
· Личное сообщение · #1

Я начинающий "ломальщик", поэтому строго не судите если много писанины и не втему. Или может недописал чего...
Както лазил я по инету. Наткнулся на интересную игрушку, называлась "Секрет ДаВинчи" (http://nevosoft.ru). Ну чтож. весит немного, решил поиграть. Скачал, запускаю, а там... Срок работы игрушки составляет всего час без регистрации!!! Поиграл я час, захотелось больше. Платить не очень то хотелось, тем более с мобильного через СМС (хотя стоит игруха всего 2,5 бакса). Как оказалось программа не была упакована даже UPX. Это интересно. Может стоит поламать. Взялся я значит, открыл OllyDbg, посмотрел вызов API функции USER32.MessageBoxA. Вызывается всего один раз! это меня обрадовало. Может здесь какраз собака зарыта. Ставлю бряк. Запускаю, ввожу левые цифры в окне регистрации. Секунда и срабатывает брейкпоинт. Дохожу до конца процедуры, получаю сообщение о неправильном регкоде и оказываюсь там где мне нужно:

00401E22 . 68 E8030000 PUSH 3E8 ; /Timeout = 1000. ms
00401E27 . FF15 A4904100 CALL DWORD PTR DS:[<&KERNEL32.Sleep>] ; \Sleep
00401E2D . E8 8EFDFFFF CALL davinci_.00401BC0
00401E32 . 84C0 TEST AL,AL
00401E34 . 6A 40 PUSH 40 ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
00401E36 . 74 3E JE SHORT davinci_.00401E76 ; |
00401E38 . 8B15 78E44100 MOV EDX,DWORD PTR DS:[41E478] ; |
00401E3E . 68 A0934100 PUSH davinci_.004193A0 ; |Title = "Well done"
00401E43 . 68 6C934100 PUSH davinci_.0041936C ; |Text = "Регистрация прошла успешно!

Спасибо за покупку!
"
00401E48 . 52 PUSH EDX ; |hOwner => NULL
00401E49 . FF15 74914100 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
00401E4F . E8 CCF9FFFF CALL davinci_.00401820
00401E54 . 8B4424 7C MOV EAX,DWORD PTR SS:[ESP+7C]
00401E58 . 6A FF PUSH -1 ; /Result = FFFFFFFF (-1.)
00401E5A . 50 PUSH EAX ; |hWnd
00401E5B . FF15 78914100 CALL DWORD PTR DS:[<&USER32.EndDialog>] ; \EndDialog
00401E61 . B8 01000000 MOV EAX,1
00401E66 . 5E POP ESI
00401E67 . 8B4C24 70 MOV ECX,DWORD PTR SS:[ESP+70]
00401E6B . E8 74DA0000 CALL davinci_.0040F8E4
00401E70 . 83C4 74 ADD ESP,74
00401E73 . C2 1000 RETN 10
00401E76 > 8B0D 78E44100 MOV ECX,DWORD PTR DS:[41E478] ; |
00401E7C . 68 5C934100 PUSH davinci_.0041935C ; |Title = "Неверный ключ!"
00401E81 . 68 00DF4100 PUSH davinci_.0041DF00 ; |Text = "
Попробуйте выполнить следующие действия:

1. Проверьте правильность введенного ключа. Ключ
не должен содержать пробелы!

2. Проверьте правильность установки даты и времени
на вашем компьютере (регистрационный ключ активен"...
00401E86 . 51 PUSH ECX ; |hOwner => NULL
00401E87 . FF15 74914100 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
00401E8D > B8 01000000 MOV EAX,1 ; - мы оказались тут

Мда. не ожидал что так все просто будет. увидел строку
00401E32 . 84C0 TEST AL,AL
а перед ней
00401E2D . E8 8EFDFFFF CALL davinci_.00401BC0
значит проверка правильности введенного ключа лежит именно в процедуре davinci_.00401BC0. Поставил на ней брейкпоинт. Входим, идем в конец и видим
00401BFA |. E8 91F5FFFF CALL davinci_.00401190
в параметрах функции передается наш код. значит роверка находится тут. заходим в функцию, видим преобразование тектового значения нашего номера в числовой, а далее видим интересное действие:
004011B0 |> 8BF2 /MOV ESI,EDX
004011B2 |. D3E6 |SHL ESI,CL
004011B4 |. 0FAFF1 |IMUL ESI,ECX
004011B7 |. 33F0 |XOR ESI,EAX
004011B9 |. 81E6 FFFFFF7F |AND ESI,7FFFFFFF
004011BF |. 83E9 03 |SUB ECX,3
004011C2 |. 8BC6 |MOV EAX,ESI
004011C4 |.^79 EA \JNS SHORT davinci_.004011B0
004011C6 |. 8BC8 MOV ECX,EAX
004011C8 |. 81E1 FFFF0000 AND ECX,0FFFF
004011CE |. C1E8 10 SHR EAX,10
004011D1 |. 3BC8 CMP ECX,EAX

тоесть некоторое преобразование введенного нами числа, передача расширенной части результата EAX в ECX и сравнение. Что это за преобразование мне не хотелось узнавать, поэтому, вспомнив что если c = a xor b, то a = c xor b. Делаю обратное преобразование. Хотя нет, рановато еще. Иду немного дальше по коду, вижу вторую проверку:
004011D6 |. A1 E8DD4100 MOV EAX,DWORD PTR DS:[41DDE8]
004011DB |. 2BC1 SUB EAX,ECX
004011DD |. 83F8 02 CMP EAX,2
004011E0 |. 7F 08 JG SHORT davinci_.004011EA

видим что сравнение тоже, но теперь EAX берется из какого-то DS:[41DDE8]. Хм. смотрим по этому адресу, обнаружили 2 байта. Вот тут то и делаем обратное преобразование. Раскидываем эти 2 байта по EAX, получаем регистрационный код, вводим - РАБОТАЕТ! Но это еще не все. Вспоминаем сообщение о неправильном коде "2. Проверьте правильность установки даты и времени на вашем компьютере (регистрационный ключ активен"... Вот тут то мне и закралось сомнение по поводу валидности ключа на следующий день. Ведь он может оказаться недействительным. Снесем ветку реестра с ключем [HKEY_CURRENT_USER\Software\nevosoft\wrapper\product9233]. Вспоминаем о davinci_.00401BC0. Я умышленно сразу перешел в конец. теперь разберем ее поподробней, а именно нам понадобиться вот это:
00401BD7 |. 50 PUSH EAX
00401BD8 |. E8 5FD30000 CALL davinci_.0040EF3C
00401BDD |. 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4]
00401BE1 |. B8 07452EC2 MOV EAX,C22E4507
00401BE6 |. F7E9 IMUL ECX
00401BE8 |. 03D1 ADD EDX,ECX
00401BEA |. C1FA 10 SAR EDX,10
00401BED |. 8BCA MOV ECX,EDX
00401BEF |. C1E9 1F SHR ECX,1F
00401BF2 |. 03CA ADD ECX,EDX
00401BF4 |. 890D E8DD4100 MOV DWORD PTR DS:[41DDE8],ECX
00401BFA |. E8 91F5FFFF CALL davinci_.00401190

Ставим бряк тут: 00401BD8 |. E8 5FD30000 CALL davinci_.0040EF3C, входим. Сразу что нам бросается в глаза так это:
0040EF44 |. 50 PUSH EAX ; /pFileTime
0040EF45 |. FF15 D0904100 CALL DWORD PTR DS:[<&KERNEL32.GetSystemT>; \GetSystemTimeAsFileTime

Вот она функция получения сегодняшней даты! Идем дальше по коду, видим всего одну функцию. По параметрам функции передается наше время, и еще какие-то константы, одна равна нулю, а другая - 989680h. Это, видимо и есть получение этого самого DS:[41DDE8], с которым сравниваемся в конце. Ну чтож, вот все у нас и готово для получения своего кейгена к этой программе.



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

Создано: 03 октября 2006 06:26
· Личное сообщение · #2

а где же сам кейген? )




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 03 октября 2006 06:27
· Личное сообщение · #3

darkeagle
в соседнем топике

-----
Тут не могла быть ваша реклама




Ранг: -12.6 (нарушитель)
Активность: 0.030
Статус: Участник

Создано: 03 октября 2006 07:22
· Личное сообщение · #4

защита там лажовая конечно



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 ноября 2006 14:59
· Личное сообщение · #5

Брали в другой (ныне закрытой) теме универсальный кейген для всех продуктов Невософта, прекрасно было. Но сейчас что-то изменилось, и для новых игр (Rainbow Mystery, Судный День, Лучший подарок, вроде пока всё) он не подходит. А жаль, хорошо бы поиграть.



Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 ноября 2006 15:37
· Личное сообщение · #6

все подходит... Проверял сам... Сам в эти игрушки играю... если код для регистрации в 6 цифр, и кейген не работает (кейген Nitrogen'а) Возьмите первые 4 цифры и сгенерируй по ним. Будет работать. В своем кейгене я это учел, и просто отбрасывал 2 последние, которые ненужны. Если у кого всеже не получится заставить работать тот кейген могу выложить 100% рабочий, только скажите куда...




Ранг: 299.6 (наставник)
Активность: 0.30
Статус: Участник
Armadillo Killer

Создано: 14 ноября 2006 16:17
· Личное сообщение · #7

Sergey Lossev Ну раз лажовая пиши кейген

FrEeDaY - Nitrogen уже писал как и чего там чикается даже исходник кейгена давал




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

Создано: 14 ноября 2006 19:24 · Поправил: Nitrogen
· Личное сообщение · #8

вообще-то да я давно уж обновленную версию для рубордовцев сделал..

p.s когда я делал этот кейген, номерки были только 4х значные



Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 ноября 2006 03:52 · Поправил: FrEeDaY
· Личное сообщение · #9

Z0oMiK
А можно исходники Nitrogen'овского кейгена одним глазком глянуть?

Nitrogen
Мне просто попалась игрушка с 6-значным кодом сразу... "Секрет ДаВинчи"

З.Ы. Кстати похоже что Невософт ворует. Взять даже игрушку Танчики - ведь кто видел игрушку Tank-o-Box поймет меня. При этом ни одного копирайта "предыдущих" создателей. Надеюсь перевод хоть они делали сами.




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

Создано: 15 ноября 2006 07:20
· Личное сообщение · #10

FrEeDaY
круто ты придумал - спрашивать мои исходники у Z0oMiK-а

примерно так:

invoke GetDlgItemTextA, _hwnd, IDC_EDIT1, addr _username, 5
invoke atodw,addr _username

mov smsnum, eax
xor eax,eax
inc eax
add eax,_huy

xor ecx, ecx
mov ebx, eax
shl eax, 10h
or eax, ebx
mov esi, eax
mov edx, smsnum
@ll:
and esi, 7FFFFFFFh
mov eax, edx
shl eax, cl
imul eax, ecx
xor esi, eax
add ecx, 3
cmp ecx, 1Bh
jle @ll

_huy - эта та шняга что получается после _time
одно маленькое отличие от твоего кейгена - мои серийники работают даже через два дня после создания, а в твоем кейгене - нет. ну я думаю ты сам в курсе почему



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

Создано: 15 ноября 2006 11:06
· Личное сообщение · #11

Кейген не нужен.

Взял готовый ЕхЕ - удалил мусор из игры => перепаковал.

Все - полная версия игры.

Я даже писал мини-тутор по такой распаковке (на форуме Варезок)

Впрочем, у каждого своя метода, кто-то даже доходит до такого извращения, как покупка игры...



Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 ноября 2006 13:41 · Поправил: FrEeDaY
· Личное сообщение · #12

Nitrogen
В курсе, вот только помню в свой кейген я отнимал 2 дня... и поидее ключ должен работать сегодня и завтра...

function CodeGen(code: Integer):Integer;
var
x: integer;
pDTime: _FILETIME;
label
lb;
begin
GetSystemTimeAsFileTime(pDTime);
asm
push ebx
push esi
mov ecx, 989680h
mov eax, pDTime.dwHighDateTime
adc eax, 0FE624E21h
xor edx, edx
div ecx
mov ebx, eax
mov eax, pDTime.dwLowDateTime
add eax, 2AC18000h
div ecx
mov edx,ebx
mov ecx, eax
mov eax, 0C22E4507h
imul ecx
add edx, ecx
sar edx, 10h
mov ecx, edx
shr ecx, 1Fh
add ecx, edx
sub ecx, 2 <-- вот вроде та двойка...
mov ax, cx
shl eax, 16
mov ax, cx
xor ecx, ecx
mov edx, code
lb:
mov esi, edx
shl esi, cl
imul esi, ecx
xor eax, esi
and eax, 7FFFFFFFh
add ecx, 3
cmp ecx, 27
jle lb
mov x, eax
pop esi
pop ebx
end;
CodeGen := x;
end;

Строго не судите, возможно можно было половину из этого выкинуть, но вот только обломно было разбираться что именно...

Soft_Ice
Каждую игрушку будешь распаковывать и восстанавливать?? Тем более кейген всеже как ни крути самый лучший вариант в крякинге...




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 16 ноября 2006 00:52
· Личное сообщение · #13

Протев! Не всегда! У меня игруха с армой на компе запускалась 20мин!!! после снятия армы за секунды грузится стала.

-----
Yann Tiersen best and do not fuck




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

Создано: 16 ноября 2006 00:58
· Личное сообщение · #14

кейген всё равно лучше. без вариантов.

-----
Shalom ebanats!





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

Создано: 16 ноября 2006 01:25
· Личное сообщение · #15

PE_Kill
ну не может игра запускаться 20 минут, может секунд?
когда игра тормозит из-за протектора - распаковка нужна, а когда не тормозит, то кейген рулит.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 16 ноября 2006 02:07 · Поправил: PE_Kill
· Личное сообщение · #16

20 мин, там все опции были, я сам офигел потом
причем комп намертво вешала

-----
Yann Tiersen best and do not fuck





Ранг: 420.3 (мудрец)
Активность: 0.240
Статус: Участник

Создано: 16 ноября 2006 02:31
· Личное сообщение · #17

PE_Kill
Что за игра такая, если не секрет?

-----
Сколько ни наталкивали на мысль – все равно сумел увернуться





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 16 ноября 2006 02:36
· Личное сообщение · #18

Не помню, давно было, от попкапс. Еще учитывая что у меня 366 целерон был.

-----
Yann Tiersen best and do not fuck




Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 25 июля 2007 13:32
· Личное сообщение · #19

Блин, Нитроген снова опередил меня на 2 месяца... Не заметил как они поменяли алгоритм генерации. Проспал, но всетаки радует что хоть и узкий круг людей, но пользуются моим кейгеном



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

Создано: 01 марта 2009 15:42
· Личное сообщение · #20

Все игрушки от NevoSoft ломаются без каких либо кряков и кейгенов!

1)В старых игрушках:
Запускаем игру, сворачиваем, заходим в дирикторию игры обычно C:\Program Files\Игры от NevoSoft\game name\game и перейминовиваем скрытую dll библиотеку smssrv~1.dll(Это и есть чистый ехе-шник без каких либо защит) в ехе. Запускаем его и наслаждаемся полной версией игры

2) Игрушки с новой защитой:
Точно также только в дириктории игры C:\Игры от NevoSoft\game name\game будет *tmp вместо dll




Ранг: 271.6 (наставник), 2thx
Активность: 0.30
Статус: Участник

Создано: 01 марта 2009 16:04
· Личное сообщение · #21

убейся некропостер

-----
iNTERNATiONAL CoDE CReW




Ранг: 255.8 (наставник), 19thx
Активность: 0.150.01
Статус: Участник
vx

Создано: 01 марта 2009 16:20
· Личное сообщение · #22

xHamer
Плюсадин. Класный подход




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 01 марта 2009 16:39
· Личное сообщение · #23

FrEeDaY пишет:
всетаки радует что хоть и узкий круг людей, но пользуются моим кейгеном

а где кейген то?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





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

Создано: 01 марта 2009 16:40 · Поправил: SemDJ
· Личное сообщение · #24

Isaev посмотри на дату поста!!! В нете хватает анвраперов для невософтофских игр. Archer закрывай топик, один флуд пошел.

-----
minimaL_patсh на руборде





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 01 марта 2009 16:44
· Личное сообщение · #25

xHamerТы думаешь один такой умный?

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 01 марта 2009 16:56
· Личное сообщение · #26

xHamer
Это и так все чудесно знают... Не стоило поднимать такой древний топик

-----
Research For Food





Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 01 марта 2009 18:51
· Личное сообщение · #27

Isaev пишет:
а где кейген то?

так ты посмотри на дату поста его. Там кейген был полностью аналогичным Nitrogen'a, да и кейгенить-то там нечего было особо, несколько строк весь алго. Уже защита давно другая там, впрочем чел из группы моей уж давно делал кейген для защиты с SMS на 41....

-----
Программист SkyNet





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

Создано: 01 марта 2009 23:15
· Личное сообщение · #28

Покайтесь, некропостеры...


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