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

 eXeL@B —› Основной форум —› keygenme: простенькая вм с математикой
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 145.8 (ветеран)
Активность: 0.070
Статус: Участник
www.int3.net

Создано: 02 июня 2006 22:07
· Личное сообщение · #1

никаких брутфорсов, патчей и тд.
не упакован, msvc7

[ps] автор не я =)

c528_02.06.2006_CRACKLAB.rU.tgz - Keygenme2.zip




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 03 июня 2006 09:39
· Личное сообщение · #2

NG пишет:
автор не я

А кто? Имя автора в студию.



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

Создано: 03 июня 2006 13:16
· Личное сообщение · #3

Reg.name: 12349999
Reg. code: 1337d999781111111111000000




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

Создано: 03 июня 2006 13:47
· Личное сообщение · #4

NG пишет:
никаких брутфорсов


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




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

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

Вряд ли десяток попыток можно считать брутфорсом...




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 04 июня 2006 00:54
· Личное сообщение · #6

========================================================

Код основной
========================================================


0040224F /$ 55 PUSH EBP
00402250 |. 8BEC MOV EBP,ESP
00402252 |. 51 PUSH ECX
00402253 |. 53 PUSH EBX
00402254 |. 56 PUSH ESI
00402255 |. 8B75 0C MOV ESI,DWORD PTR SS:[EBP+C];серийник кладут в esi
00402258 |. 57 PUSH EDI
00402259 |. 56 PUSH ESI; в стек ложат серийник
0040225A |. C646 08 00 MOV BYTE PTR DS:[ESI+8],0; в стеке - первые 8 цифр серийника (параметр)

0040225E |. E8 8CF9FFFF CALL Keygenme.00401BEF;вызов процедуры "что-то делается с серийником..."

00402263 |. 8D7E 11 LEA EDI,DWORD PTR DS:[ESI+11]; в edi - символы серийника с позиции 8 по 15(следующие 8 штук)
00402266 |. 57 PUSH EDI; пихаем edi в стек (параметр функции "что-то делается с серийником...")
00402267 |. 8BD8 MOV EBX,EAX ;в ebx - первые 8 символов серийника (?)
00402269 |. E8 81F9FFFF CALL Keygenme.00401BEF;вызов процедуры "что-то делается с серийником..."
0040226E |. 83C6 09 ADD ESI,9; типа в esi теперь уже 16 символов серийника (которые уже передали в функцию?)
00402271 |. 56 PUSH ESI; Кидаем 16 символов в стек
00402272 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX; в esi опять 8 символов серийника...
00402275 |. C607 00 MOV BYTE PTR DS:[EDI],0
00402278 |. E8 72F9FFFF CALL Keygenme.00401BEF;вызов процедуры "что-то делается с серийником..."
0040227D |. 8B75 08 MOV ESI,DWORD PTR SS:[EBP+8]; НАЧАЛИСЬ ЗАМОРОЧКИ С username...username содержится в esi
00402280 |. 83C4 0C ADD ESP,0C
00402283 |. 56 PUSH ESI; Первый раз ложим username в стек
00402284 |. 56 PUSH ESI ;второй раз ложим username в стек.. Параметры функции!
00402285 |. 8BF8 MOV EDI,EAX ; | Точно не пойму, но кажется, что в EDI - часть серийника...
00402287 |. FF15 0C104000 CALL DWORD PTR DS:[<&KERNEL32.lstrlenA>] ; Длина строки - определяем...
0040228D |. 50 PUSH EAX; Она (длина) имени пользователя заносится в EAX
0040228E |. 6A FF PUSH -1; Кидаем в стек FFFFFFFF (???)
00402290 |. E8 ABF7FFFF CALL Keygenme.00401A40; ======= А ВОТ ДАЛЬШЕ КТО РАЗРУЛИТ?============
00402295 |. 83C4 0C ADD ESP,0C; Что это была за процедура? ^^^ Я хочу спать!
00402298 |. 56 PUSH ESI
00402299 |. 56 PUSH ESI
0040229A |. 8945 0C MOV DWORD PTR SS:[EBP+C],EAX
0040229D |. E8 BE030000 CALL Keygenme.00402660
004022A2 |. 59 POP ECX
004022A3 |. 50 PUSH EAX
004022A4 |. E8 01F8FFFF CALL Keygenme.00401AAA
004022A9 |. FF75 0C PUSH DWORD PTR SS:[EBP+C]
004022AC |. 50 PUSH EAX
004022AD |. FF75 FC PUSH DWORD PTR SS:[EBP-4]
004022B0 |. 57 PUSH EDI
004022B1 |. E8 C3FEFFFF CALL Keygenme.00402179
004022B6 |. 83C4 18 ADD ESP,18
004022B9 |. 0FB6F0 MOVZX ESI,AL
004022BC |. 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C]
004022BF |. 0FBAF0 1F BTR EAX,1F
004022C3 |. 0FBAF0 1E BTR EAX,1E
004022C7 |. 0FBAF0 1D BTR EAX,1D
004022CB |. 8945 0C MOV DWORD PTR SS:[EBP+C],EAX
004022CE |. 53 PUSH EBX
004022CF |. E8 ABF8FFFF CALL Keygenme.00401B7F
004022D4 |. 8B4D 0C MOV ECX,DWORD PTR SS:[EBP+C]
004022D7 |. 2BC8 SUB ECX,EAX
004022D9 |. 51 PUSH ECX
004022DA |. E8 0C040000 CALL Keygenme.004026EB
004022DF |. 3D 00020000 CMP EAX,200
004022E4 |. 59 POP ECX
004022E5 |. 59 POP ECX
004022E6 |. 7D 07 JGE SHORT Keygenme.004022EF
004022E8 |. 33C0 XOR EAX,EAX
004022EA |. 40 INC EAX
004022EB |. 3BF0 CMP ESI,EAX
004022ED |. 74 02 JE SHORT Keygenme.004022F1
004022EF |> 33C0 XOR EAX,EAX
004022F1 |> 5F POP EDI
004022F2 |. 5E POP ESI
004022F3 |. 5B POP EBX
004022F4 |. C9 LEAVE
004022F5 \. C3 RETN

===================================================================


Дальше, в зависимости от test eax,eax идет сообщение о верном или кривом коде...


содержимое стека в момент вызова процедуры проверки:

0012FBF8 0012FC44 ASCII "Cr@wler";username
0012FBFC 0012FC84 ASCII "1111111111111111111111111";serial code

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.





Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 04 июня 2006 00:55
· Личное сообщение · #7

Процедура "что-то делается с серийником"
==================================================================
00401BEF /$ 56 PUSH ESI
00401BF0 |. 57 PUSH EDI
00401BF1 |. FF7424 0C PUSH DWORD PTR SS:[ESP+C]
00401BF5 |. 33F6 XOR ESI,ESI
00401BF7 |. E8 FA0A0000 CALL Keygenme.004026F6
00401BFC |. 8BF8 MOV EDI,EAX
00401BFE |. 57 PUSH EDI
00401BFF |. E8 5C0A0000 CALL Keygenme.00402660
00401C04 |. 59 POP ECX
00401C05 |. 33D2 XOR EDX,EDX
00401C07 |. 85C0 TEST EAX,EAX
00401C09 |. 59 POP ECX
00401C0A |. 7E 3B JLE SHORT Keygenme.00401C47
00401C0C |> 8A0C3A /MOV CL,BYTE PTR DS:[EDX+EDI]
00401C0F |. 80F9 30 |CMP CL,30;сравнение с "0"
00401C12 |. 7C 0E |JL SHORT Keygenme.00401C22
00401C14 |. 80F9 39 |CMP CL,39жсравнение с "9"
00401C17 |. 7F 09 |JG SHORT Keygenme.00401C22
00401C19 |. 0FBEC9 |MOVSX ECX,CL
00401C1C |. 8D740E D0 |LEA ESI,DWORD PTR DS:[ESI+ECX-30]
00401C20 |. EB 11 |JMP SHORT Keygenme.00401C33
00401C22 |> 80F9 41 |CMP CL,41; сравнение с "A"
00401C25 |. 7C 1D |JL SHORT Keygenme.00401C44
00401C27 |. 80F9 46 |CMP CL,46; сравнение с "F"
00401C2A |. 7F 18 |JG SHORT Keygenme.00401C44
00401C2C |. 0FBEC9 |MOVSX ECX,CL
00401C2F |. 8D740E C9 |LEA ESI,DWORD PTR DS:[ESI+ECX-37]
00401C33 |> 8D48 FF |LEA ECX,DWORD PTR DS:[EAX-1]
00401C36 |. 3BD1 |CMP EDX,ECX
00401C38 |. 74 03 |JE SHORT Keygenme.00401C3D
00401C3A |. C1E6 04 |SHL ESI,4
00401C3D |> 42 |INC EDX
00401C3E |. 3BD0 |CMP EDX,EAX
00401C40 |.^7C CA \JL SHORT Keygenme.00401C0C
00401C42 |. EB 03 JMP SHORT Keygenme.00401C47
00401C44 |> 83CE FF OR ESI,FFFFFFFF
00401C47 |> 5F POP EDI
00401C48 |. 8BC6 MOV EAX,ESI
00401C4A |. 5E POP ESI
00401C4B \. C3 RETN

==================================================================

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.





Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 04 июня 2006 00:56
· Личное сообщение · #8

Наркоманство... Откомментируйте эту процедуру. Хоть ты, Pe_Kill.

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




Ранг: 145.8 (ветеран)
Активность: 0.070
Статус: Участник
www.int3.net

Создано: 04 июня 2006 13:23
· Личное сообщение · #9

небольшой хелп от автора =)

CALL Keygenme.00401BEF - StrToHex
CALL Keygenme.00401A40 - CRC32
CALL Keygenme.00401AAA - somehash
CALL Keygenme.00402179 и CALL Keygenme.00401B7F проверки частей ключа

[ps] это все фигня. лично мне любопытно, когда кто-нибудь доберется до самого интересного.



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

Создано: 04 июня 2006 22:50
· Личное сообщение · #10

Если я не ошибаюсь, то я когда-то это уже видел.
Можно вспомнить курс дискретной математики и подумать над минимизацией ДНФ.
Однако закончить все это лень, т.к. давно где-то про**ана база.




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 05 июня 2006 12:00
· Личное сообщение · #11

2mrX:
Ты имеешь в виду дизъюнкт. нормальную форму? Тогда это из мат. логики.
По-моему, автор NG. Иначе почему автор сам не пришел сюда

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.





Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 05 июня 2006 12:02
· Личное сообщение · #12

А somehash - это самодельный или какой - нибудь готовый?

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.





Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 05 июня 2006 15:44
· Личное сообщение · #13

NG: ты подразумеваешь под интересным создание кейгена или сложный мат. алгоритм? Я думаю, скорее всего, второе.

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




Ранг: 145.8 (ветеран)
Активность: 0.070
Статус: Участник
www.int3.net

Создано: 05 июня 2006 15:48
· Личное сообщение · #14

Crawler пишет:
Иначе почему автор сам не пришел сюда

"меня там никто не знает. как обычно, обвинят в распространении троянов и ломать не станут"
как-то так )

в общем итог ясен - никто не осилил. но не потому что поголовно тупые, а банальная лень



Ранг: 145.8 (ветеран)
Активность: 0.070
Статус: Участник
www.int3.net

Создано: 05 июня 2006 15:51
· Личное сообщение · #15

Crawler пишет:
ты подразумеваешь под интересным создание кейгена или сложный мат. алгоритм?

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




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 05 июня 2006 16:21
· Личное сообщение · #16

НГ, некогда ломать. Я даже еще не скачал-времени вообще нету. Да и сессия у многих..Ты пока не рассказывай про кейгенми, может кто и осилит.




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 05 июня 2006 20:25 · Поправил: Hellspawn
· Личное сообщение · #17

про лень - это правда... да и сессия на носу, так мельком глянул... по-моему он не очень то и легкий,
(если без брута), гы вроде прикольно нарыл правдо не много...
вводим для наглядности
Hellsp@wN
1111122222333334444455555

00402290 |. E8 ABF7FFFF CALL <[CRC]> // нашли крк от имени?
00402295 |. 83C4 0C ADD ESP,0C
00402298 |. 56 PUSH ESI
00402299 |. 56 PUSH ESI
0040229A |. 8945 0C MOV [ARG.2],EAX // сохранили его
...
0040229D |. E8 BE030000 CALL 00402660 // тут манипуляции с именем
--> ...
берем по 4 символа и делаем с ними кашу +)
00402692 |. BA FFFEFE7E MOV EDX,7EFEFEFF
00402697 |. 03D0 ADD EDX,EAX
00402699 |. 83F0 FF XOR EAX,FFFFFFFF
0040269C |. 33C2 XOR EAX,EDX
0040269E |. 83C1 04 ADD ECX,4
...
+ проверка если хватанули лишнего?
дальше
004022A4 |. E8 01F8FFFF CALL <[somehash] > // получили хеш от имени
берем все символы имени по-одному и делаем с ними кашу 2
...
004022A9 |. FF75 0C PUSH [ARG.2] ; CRC // наша крк
004022AC |. 50 PUSH EAX ; HASH // хеш от имени
004022AD |. FF75 FC PUSH [LOCAL.1] ; 44455555 // часть кода
004022B0 |. 57 PUSH EDI ; 23333344 // еще
004022B1 |. E8 C3FEFFFF CALL <[Check Key 1]>
в этой процедре:
004021A1 |. FF75 0C PUSH [ARG.2] ; 44455555
004021A4 |. FF75 08 PUSH [ARG.1] ; 23333344
004021A7 |. FF75 F4 PUSH [LOCAL.3] ; MEMORY // адресс выделенной памяти!
004021AA |. E8 9DFAFFFF CALL 00401C4C
там какой то ужс +) выесления + манипуляции с адрессом
вот это вроде тоже интересно:
00402219 |. 83E3 01 AND EBX,1
0040221C |. FF55 F0 CALL [LOCAL.4] // гы =) тот самый адресс выделенный
в ней куча комманда, игра со стеком, я пока не догнал зачем? вроде как возв. значение в esi (1 или 0)
на входе получает, тоже 1 или 0 в регистах..
0040221F |. 3B75 EC CMP ESI,[LOCAL.5]
...
CALL 00401AD4 // тоже какие-то подсчеты...

на этом мой интузиазм поостыл... пойду фан делать...

-----
[nice coder and reverser]




Ранг: 145.8 (ветеран)
Активность: 0.070
Статус: Участник
www.int3.net

Создано: 06 июня 2006 01:59 · Поправил: NG
· Личное сообщение · #18

во! hellspawn добрался-таки до самого интересного, с моей точки зрения, места =)
далее - развернутые комментарии от автора.

"А somehash - это самодельный или какой - нибудь готовый?"
А хз, из какой-то проги взял, реверсить его не надо, так что ничего интересного,можно
использовать "как есть", код такой:
long somehash( unsigned len, LPVOID string)
{
_asm{
mov esi,string
xor ecx,ecx
xor eax,eax
}
oncemore:
_asm{

mov edx,eax
mov ebx,eax
shl eax,6
shl ebx,16
add eax,ebx
sub eax,edx
movzx edx,byte ptr[esi+ecx]
add eax,edx
inc ecx
cmp ecx,len
jne oncemore
}
}


"по-моему он не очень то и легкий"
если понять чего-там в коде творится, то ничего неподъемного там нет, но код специально
написан так, что выглядит как бред

"вот это вроде тоже интересно"
да, тут и крутится проверка второй части ключа, вызывается ранее выделенная память в которой
с помощью CALL 00401C4C был динамически сгенерен код проверки, где "игра со стеком"...
Рекомендую для начала разобраться с проверкой первой части ключа CALL Keygenme.00401B7F, она
менее трудоемкая для разбора, нежели CALL Keygenme.00402179.



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

Создано: 06 июня 2006 02:06 · Поправил: mrX
· Личное сообщение · #19

Hellspawn пишет:
по-моему он не очень то и легкий

Сложность 2, максимум 3 из 10.
Математика слабая.




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 06 июня 2006 09:19 · Поправил: Hellspawn
· Личное сообщение · #20

mrX пишет:
Сложность 2, максимум 3 из 10.
Математика слабая.


для меня любая математика сложная, т.к. ленивый очень...
может сёдня ещё покопаю...

-----
[nice coder and reverser]





Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

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

NG пишет:
в общем итог ясен - никто не осилил. но не потому что поголовно тупые, а банальная лень

Погоди ещё.. Мы покопаем.

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.





Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 06 июня 2006 23:44
· Личное сообщение · #22

Дизассемблирование [00401b7f] ("Проверка серийника-1"):

В стеке: "12345123" (HEX - значение из ebx: 1 часть серийника)
00401B7F /$ 55 PUSH EBP
00401B80 |. 8BEC MOV EBP,ESP
00401B82 |. 83EC 0C SUB ESP,0C
00401B85 |. 53 PUSH EBX; В стек кладем ту самую часть серийника
00401B86 |. 56 PUSH ESI; Сохраняем "00000000"(?)
00401B87 |. 57 PUSH EDI; Hex-Символы серийника с позиции 9 по 16
00401B88 |. 8B7D 08 MOV EDI,DWORD PTR SS:[EBP+8] В edi - первые 8 символов
00401B8B |. 57 PUSH EDI; Первые 8 штук символов - в стеке
00401B8C |. 57 PUSH EDI; И еще раз то же самое...

00401B8D |. C745 F4 AAAAAA>MOV DWORD PTR SS:[EBP-C],8AAAAAAA; В память помещаем число 2326440618(dec)
00401B94 |. C745 F8 888888>MOV DWORD PTR SS:[EBP-8],888888;no comments...
00401B9B |. C745 FC 344003>MOV DWORD PTR SS:[EBP-4],80034034;-`-`-`-`-
00401BA2 |. 897D 08 MOV DWORD PTR SS:[EBP+8],EDI; SS: [0x63fb28] = "12345123"

00401BA5 |. E8 2AFFFFFF CALL KEYGENME.00401AD4; [Crazymath]
00401BAA |. 57 PUSH EDI
00401BAB |. 50 PUSH EAX
00401BAC |. E8 23FFFFFF CALL KEYGENME.00401AD4; [Crazymath]
00401BB1 |. 83C4 10 ADD ESP,10
00401BB4 |. 8BD8 MOV EBX,EAX
00401BB6 |. 33F6 XOR ESI,ESI
Судя по всему, весь keygenme и нижеследующее написано на С++ с изрядной примесью ассемблера. Или я не прав?
00401BB8 |> FF74B5 F4 /PUSH DWORD PTR SS:[EBP+ESI*4-C]
00401BBC |. 53 |PUSH EBX
00401BBD |. E8 12FFFFFF |CALL KEYGENME.00401AD4
00401BC2 |. 50 |PUSH EAX
00401BC3 |. FF75 08 |PUSH DWORD PTR SS:[EBP+8]
00401BC6 |. E8 3CFFFFFF |CALL KEYGENME.00401B07
00401BCB |. 57 |PUSH EDI
00401BCC |. 53 |PUSH EBX
00401BCD |. 8945 08 |MOV DWORD PTR SS:[EBP+8],EAX
00401BD0 |. E8 FFFEFFFF |CALL KEYGENME.00401AD4; [Crazymath]
00401BD5 |. 57 |PUSH EDI
00401BD6 |. 50 |PUSH EAX
00401BD7 |. E8 F8FEFFFF |CALL KEYGENME.00401AD4; [Crazymath]
00401BDC |. 83C4 20 |ADD ESP,20
00401BDF |. 46 |INC ESI
00401BE0 |. 83FE 03 |CMP ESI,3
00401BE3 |. 8BD8 |MOV EBX,EAX
00401BE5 |.^7C D1 \JL SHORT KEYGENME.00401BB8
00401BE7 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00401BEA |. 5F POP EDI
00401BEB |. 5E POP ESI
00401BEC |. 5B POP EBX
00401BED |. C9 LEAVE
00401BEE \. C3 RETN


В стеке перед вызовом этой байды содержится:
;0063FB00 11111222:[esp]
;0063FB04 11111222:[esp+4]
;0063FB08 23333344:[esp+8]
;0063FB0C 00000000:[esp+C]
;0063FB10 11111222:[esp+10]

Следовательно, можно посмотреть, что там понаркоманил автор в этой функции...


;=========================Процедурка интересная...========================

00401AD4 /$ 53 PUSH EBX
00401AD5 |. 8B5C24 08 MOV EBX,DWORD PTR SS:[ESP+8]; symbols of serials (9-16)
00401AD9 |. 335C24 0C XOR EBX,DWORD PTR SS:[ESP+C]; zeroes -noliki (00000000) -xor- им, т.е. обнуляем

00401ADD |. 8B4424 08 MOV EAX,DWORD PTR SS:[ESP+8]; eax :=hexademical ( symbols of serials (9-16))
; !!!Вот тут операции слегка логического характера и производятся:
00401AE1 |. 0FBAF0 1F BTR EAX,1F
00401AE5 |. 99 CDQ
00401AE6 |. 8B4C24 0C MOV ECX,DWORD PTR SS:[ESP+C]; наши первые 8 символов пароля в ecx
00401AEA |. 0FBAF1 1F BTR ECX,1F
00401AEE |. F7E9 IMUL ECX; EDX:EAX <- EAX * ECX (Что - то невообразимое)
00401AF0 |. 8BC2 MOV EAX,EDX
00401AF2 |. C1E0 02 SHL EAX,2;сдвиг логический на 2
00401AF5 |. 81E3 00000080 AND EBX,80000000; лог. операция "И"
00401AFB |. 0BC3 OR EAX,EBX; лог. операция "ИЛИ"
00401AFD |. 894424 08 MOV DWORD PTR SS:[ESP+8],EAX
00401B01 |. 8B4424 08 MOV EAX,DWORD PTR SS:[ESP+8]
00401B05 |. 5B POP EBX; возвращаем ebx
00401B06 \. C3 RETN; возвращаемся
;================================================================

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 06 июня 2006 23:50
· Личное сообщение · #23

Crawler пишет:
00401AF5 |. 81E3 00000080 AND EBX,80000000; лог. операция "И"

Нафига было постить сюда такой огромный код с глубокомысленными комментариями?




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 06 июня 2006 23:57
· Личное сообщение · #24

Ну а вдруг совсем начинающие есть?

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




Ранг: 145.8 (ветеран)
Активность: 0.070
Статус: Участник
www.int3.net

Создано: 07 июня 2006 01:19
· Личное сообщение · #25

Crawler пишет:
Судя по всему, весь keygenme и нижеследующее написано на С++ с изрядной примесью ассемблера. Или я не прав?

инлайн асм не использовался, афаик. если неправ, сообщу.

btw, солидарен с Арой по поводу постинга кусков кода. кейген надо выкладывать, а не комментарии =)



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

Создано: 07 июня 2006 03:14
· Личное сообщение · #26

NG пишет:
инлайн асм не использовался, афаик. если неправ, сообщу.

Да, не использовался. По крайней мере функция инициализации ВМ загажена примочками типа использования одной и той же локальной переменной несколько раз для совершенно разных целей. Люди так не пишут.



Ранг: 145.8 (ветеран)
Активность: 0.070
Статус: Участник
www.int3.net

Создано: 07 июня 2006 10:49
· Личное сообщение · #27

NG пишет:
инлайн асм не использовался, афаик. если неправ, сообщу


сообщаю. намешано там, да.



Ранг: 145.8 (ветеран)
Активность: 0.070
Статус: Участник
www.int3.net

Создано: 08 июня 2006 01:44
· Личное сообщение · #28

на почту свалилось еще одно письмо от автора =)

Общее пожелание совпадает с мнением Ara и NG, зачем такие листинги приводить, включая даже
опкоды O_o. Для упрощения описать функции, выкинув, понятное дело, опкоды, можно даже адреса
убрать, если попадается функция, то push'и тоже убрать описав типа somefunc(a,b,c), хотя
конечно может вам так удобней...
например функцию CALL KEYGENME.00401AD4 легко привести к такому виду:
long proc00401AD4(long a,long b)
{

_asm{
mov ebx,a
xor ebx,b
mov eax,a
btr eax,31
cdq
mov ecx,b
btr ecx,31
imul ecx
mov eax,edx
shl eax,2
and ebx,80000000h //если поставить после второй инструкции, даже
будет лучше для восприятия
or eax,ebx
mov a,eax
}
return a;
}

есть взаимосвязь между btr и константой 80000000h ;)

Функцию 00401B7F также преобразовать , свернуть цикл JL SHORT KEYGENME.00401BB8...




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 08 июня 2006 17:57
· Личное сообщение · #29

Извиняюсь. Буду краток впредь

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




Ранг: 156.1 (ветеран), 5thx
Активность: 0.020
Статус: Участник
Капрал

Создано: 12 июня 2006 02:39
· Личное сообщение · #30

Зря вы подзабили на это чудо. Очень даже не чего, прикольный. На анализ всех процедур проверок и генераций ушло часов 5. А на написание кейгена 2 дня Этот чертов С# недает вставлять АСМ код, покрайней мере я не допер как Так что пришлось писать все на чистом Си, зато выглядит красиво
Хотя как там обойтись без брутфорса не совсем понятно, теоритически функцию проверки первой части ключа можно реверснуть, т.к. одно уравнение - одна неизвестная, вот только решать его круша поедет, когда тоже самое достигается за 5-6 итераций (приближений) к исходному значению. Хотелось бы узнать у автара идет "строгая" формула на генерацию ключа, или тоже подгоняет плавая ибо
004022CF |. E8 ABF8FFFF CALL Keygenme.00401B7F
004022D4 |. 8B4D 0C MOV ECX,DWORD PTR SS:[EBP+C]
004022D7 |. 2BC8 SUB ECX,EAX <<<<< CRC - (ключ после преобразований)
004022D9 |. 51 PUSH ECX
004022DA |. E8 0C040000 CALL Keygenme.004026EB <<<<< EAX = ECX
004022DF |. 3D 00020000 CMP EAX,200 <<<<< зачем такой большой промежуток?
Если к нему написать неплохой туториал, где показать анализ кода и его реверс, то цены емуб небыло, т.к. народ обленился прет один БИТХАК

8268_12.06.2006_CRACKLAB.rU.tgz - KeyGen_me_by_freeExec.exe


. 1 . 2 . >>
 eXeL@B —› Основной форум —› keygenme: простенькая вм с математикой
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати