![]() |
eXeL@B —› Основной форум —› Простой консольный кейгенми |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 08 октября 2007 04:20 · Личное сообщение · #1 Не совсем понятно в какой раздел постить крякми, кейгенми, анпакми и подобное, хорошо бы иметь отдельный раздел, всё-таки практика это хорошо... Кейгенми в аттаче это первая моя программа такого характера. Поэтому, думаю, взломать её будет совсем легко. Но на этом форуме есть не только продвинутые крэкеры, но и новички, которым практика будет только в пользу. А я в свою очередь буду совершенствоваться. (С++ изучаю) ![]() ![]() |
|
Создано: 09 октября 2007 15:01 · Личное сообщение · #2 |
|
Создано: 09 октября 2007 15:25 · Личное сообщение · #3 В моём кейгенме всё намного проще. int getpassword(char * plain){
Потом после получения числа в формате INT он конвертируется в строку используя шестнадцатеричное счисление. Потом чтобы сбить с толку новичков и убрать из стека сразу после сравнения пароль, он заменяется именем юзера. ![]() int cmppassword(int val1, char * val2){
После кейгенмиса Depler'а я примерно понял, как НЕ надо сравнивать хэши. И увидел в чем я сделал ошибку. ![]() |
|
Создано: 09 октября 2007 16:19 · Личное сообщение · #4 |
|
Создано: 09 октября 2007 16:35 · Личное сообщение · #5 |
|
Создано: 09 октября 2007 17:00 · Личное сообщение · #6 |
|
Создано: 09 октября 2007 17:03 · Личное сообщение · #7 |
|
Создано: 09 октября 2007 17:36 · Поправил: depler · Личное сообщение · #8 |
|
Создано: 09 октября 2007 17:49 · Личное сообщение · #9 |
|
Создано: 09 октября 2007 17:53 · Личное сообщение · #10 |
|
Создано: 09 октября 2007 20:48 · Личное сообщение · #11 hel пишет: int getpassword(char * plain){ int i,g=0; for(i=0;i<this->dostrlen(plain);i++){ g=(g+(int)plain[i])*((i+2)+i); } return g; } один раз в год труба завет вступай и компилируй один плюс два кейгень меня и да пребудет с тобой сила поверь в себя проверь меня ведь вместе мы ведь сила? пиши ответ, крякмэн †да не забудет тебя сцена!† ![]() |
|
Создано: 09 октября 2007 22:17 · Личное сообщение · #12 |
|
Создано: 10 октября 2007 04:49 · Личное сообщение · #13 |
|
Создано: 10 октября 2007 19:21 · Личное сообщение · #14 |
|
Создано: 10 октября 2007 19:34 · Поправил: KingSise · Личное сообщение · #15 |
|
Создано: 10 октября 2007 20:15 · Личное сообщение · #16 |
|
Создано: 11 октября 2007 14:48 · Личное сообщение · #17 depler пишет: Так че там ни у кого по кейгену новых мыслей не появилось, мож кусок кода написать? Я твой закигеню, если ты мой закигенишь. Для моего HDD Xserg My_ID 4uJaQEdUe6ySfRXIalFyL keygenme.rar = hттp://ifolder.ru/3689885 Код под кнопкой keygen – закомментирован. Кто поймет, в чем прикол сразу не раскрывайте ;) , достаточно: Имя ID Passsword. ![]() |
|
Создано: 11 октября 2007 15:58 · Личное сообщение · #18 |
|
Создано: 11 октября 2007 17:26 · Личное сообщение · #19 |
|
Создано: 11 октября 2007 18:05 · Личное сообщение · #20 Ну собственно в кейгенми 2 тамера: 1 ждет пока мы прав серийник введем,другой проверяет флаг зареганности и выводит сообщение(1 таймер этот флаг изменяет). 0045128C /. 833D AC4C4500>CMP DWORD PTR DS:[454CAC],6 - это флаг зареганности 00451293 75 33 JNZ SHORT keygenme.004512C8 00451295 |. 33D2 XOR EDX,EDX 00451297 |. 8B80 18030000 MOV EAX,DWORD PTR DS:[EAX+318] 0045129D |. E8 E23AFDFF CALL keygenme.00424D84 004512A2 |. 6A 00 PUSH 0 004512A4 |. 68 CC124500 PUSH keygenme.004512CC ; ASCII "cool !!!" 004512A9 |. 68 D8124500 PUSH keygenme.004512D8 004512AE |. A1 D04B4500 MOV EAX,DWORD PTR DS:[454BD0] 004512B3 |. E8 8049FEFF CALL keygenme.00435C38 004512B8 |. 50 PUSH EAX ; |hOwner 004512B9 |. E8 EA51FBFF CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA 004512BE |. A1 D04B4500 MOV EAX,DWORD PTR DS:[454BD0] 004512C3 |. E8 C4A1FFFF CALL keygenme.0044B48C 004512C8 \> C3 RETN тут проверяется серийник: 004511B4 /. 833D BC4C4500>CMP DWORD PTR DS:[454CBC],2 004511BB |. 0F85 9F000000 JNZ keygenme.00451260 004511C1 |. A0 E74B4500 MOV AL,BYTE PTR DS:[454BE7] 004511C6 |. 0205 F74B4500 ADD AL,BYTE PTR DS:[454BF7] 004511CC |. 24 F0 AND AL,0F0 004511CE |. 8A15 D94B4500 MOV DL,BYTE PTR DS:[454BD9] 004511D4 |. 80E2 F0 AND DL,0F0 004511D7 |. 3AC2 CMP AL,DL 004511D9 |. 75 06 JNZ SHORT keygenme.004511E1 004511DB |. FF05 BC4C4500 INC DWORD PTR DS:[454CBC] 004511E1 |> A0 F04B4500 MOV AL,BYTE PTR DS:[454BF0] 004511E6 |. 0205 004C4500 ADD AL,BYTE PTR DS:[454C00] 004511EC |. 24 0F AND AL,0F 004511EE |. 8A15 DF4B4500 MOV DL,BYTE PTR DS:[454BDF] 004511F4 |. 80E2 0F AND DL,0F 004511F7 |. 3AC2 CMP AL,DL 004511F9 |. 75 06 JNZ SHORT keygenme.00451201 004511FB |. FF05 BC4C4500 INC DWORD PTR DS:[454CBC] 00451201 |> A0 E94B4500 MOV AL,BYTE PTR DS:[454BE9] 00451206 |. 0205 F94B4500 ADD AL,BYTE PTR DS:[454BF9] 0045120C |. 24 3C AND AL,3C 0045120E |. 8A15 D74B4500 MOV DL,BYTE PTR DS:[454BD7] 00451214 |. 80E2 3C AND DL,3C 00451217 |. 3AC2 CMP AL,DL 00451219 |. 75 06 JNZ SHORT keygenme.00451221 0045121B |. FF05 BC4C4500 INC DWORD PTR DS:[454CBC] 00451221 |> A0 F34B4500 MOV AL,BYTE PTR DS:[454BF3] 00451226 |. 0205 034C4500 ADD AL,BYTE PTR DS:[454C03] 0045122C |. 24 81 AND AL,81 0045122E |. 8A15 DC4B4500 MOV DL,BYTE PTR DS:[454BDC] 00451234 |. 80E2 81 AND DL,81 00451237 |. 3AC2 CMP AL,DL 00451239 |. 75 06 JNZ SHORT keygenme.00451241 0045123B |. FF05 BC4C4500 INC DWORD PTR DS:[454CBC] 00451241 |> 833D BC4C4500>CMP DWORD PTR DS:[454CBC],6 00451248 |. 74 0C JE SHORT keygenme.00451256 0045124A |. C705 BC4C4500>MOV DWORD PTR DS:[454CBC],2 00451254 |. EB 0A JMP SHORT keygenme.00451260 00451256 |> C705 AC4C4500>MOV DWORD PTR DS:[454CAC],6 00451260 \> C3 RETN Ну и соответственно здесь выч. HD сериал (помойму криво както): 00451094 /. 55 PUSH EBP 00451095 |. 8BEC MOV EBP,ESP 00451097 |. 83C4 F4 ADD ESP,-0C 0045109A |. 53 PUSH EBX 0045109B |. 56 PUSH ESI 0045109C |. 57 PUSH EDI 0045109D |. 33C9 XOR ECX,ECX 0045109F |. 894D F4 MOV [LOCAL.3],ECX 004510A2 |. 8BF0 MOV ESI,EAX 004510A4 |. BB A44C4500 MOV EBX,keygenme.00454CA4 004510A9 |. 33C0 XOR EAX,EAX 004510AB |. 55 PUSH EBP 004510AC |. 68 8E114500 PUSH keygenme.0045118E 004510B1 |. 64:FF30 PUSH DWORD PTR FS:[EAX] 004510B4 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP 004510B7 |. 8BC3 MOV EAX,EBX 004510B9 |. BA FF000000 MOV EDX,0FF 004510BE |. E8 9933FBFF CALL keygenme.0040445C 004510C3 |. 68 FF000000 PUSH 0FF 004510C8 |. 8BC3 MOV EAX,EBX 004510CA |. E8 5932FBFF CALL keygenme.00404328 004510CF |. 50 PUSH EAX ; |Buffer 004510D0 |. E8 AB4DFBFF CALL <JMP.&kernel32.GetSystemDirectoryA> ; \GetSystemDirectoryA 004510D5 |. 8BC3 MOV EAX,EBX 004510D7 |. BA 02000000 MOV EDX,2 004510DC |. E8 7B33FBFF CALL keygenme.0040445C 004510E1 |. 8BC3 MOV EAX,EBX 004510E3 |. BA A4114500 MOV EDX,keygenme.004511A4 004510E8 |. E8 EB2FFBFF CALL keygenme.004040D8 004510ED |. 6A 00 PUSH 0 004510EF |. 6A 00 PUSH 0 004510F1 |. 8D45 F8 LEA EAX,[LOCAL.2] 004510F4 |. 50 PUSH EAX 004510F5 |. 8D45 FC LEA EAX,[LOCAL.1] 004510F8 |. 50 PUSH EAX 004510F9 |. 68 544C4500 PUSH keygenme.00454C54 004510FE |. 6A 00 PUSH 0 00451100 |. 6A 00 PUSH 0 00451102 |. 8BC3 MOV EAX,EBX 00451104 |. E8 1F32FBFF CALL keygenme.00404328 00451109 |. 50 PUSH EAX ; |RootPathName 0045110A |. E8 A14DFBFF CALL <JMP.&kernel32.GetVolumeInformationA> ; \GetVolumeInformationA 0045110F |. BF 544C4500 MOV EDI,keygenme.00454C54 00451114 |. 8B07 MOV EAX,DWORD PTR DS:[EDI] 00451116 |. 33D2 XOR EDX,EDX 00451118 |. 52 PUSH EDX ; /Arg2 => 00000000 00451119 |. 50 PUSH EAX ; |Arg1 0045111A |. 8D55 F4 LEA EDX,[LOCAL.3] ; | 0045111D |. B8 08000000 MOV EAX,8 ; | 00451122 |. E8 6D6BFBFF CALL keygenme.00407C94 ; \keygenme.00407C94 00451127 |. 8B55 F4 MOV EDX,[LOCAL.3] 0045112A |. 8BC3 MOV EAX,EBX 0045112C |. E8 332DFBFF CALL keygenme.00403E64 00451131 |. 8BD3 MOV EDX,EBX 00451133 |. B9 07000000 MOV ECX,7 00451138 |. B8 B0114500 MOV EAX,keygenme.004511B0 0045113D |. E8 7632FBFF CALL keygenme.004043B8 00451142 |. 8BD3 MOV EDX,EBX 00451144 |. B9 05000000 MOV ECX,5 00451149 |. B8 B0114500 MOV EAX,keygenme.004511B0 0045114E |. E8 6532FBFF CALL keygenme.004043B8 00451153 |. 8BD3 MOV EDX,EBX 00451155 |. B9 03000000 MOV ECX,3 0045115A |. B8 B0114500 MOV EAX,keygenme.004511B0 0045115F |. E8 5432FBFF CALL keygenme.004043B8 00451164 |. 33C0 XOR EAX,EAX 00451166 |. A3 AC4C4500 MOV DWORD PTR DS:[454CAC],EAX 0045116B |. 8B13 MOV EDX,DWORD PTR DS:[EBX] 0045116D |. 8B86 00030000 MOV EAX,DWORD PTR DS:[ESI+300] 00451173 |. E8 14E3FDFF CALL keygenme.0042F48C 00451178 |. 33C0 XOR EAX,EAX 0045117A |. 5A POP EDX 0045117B |. 59 POP ECX 0045117C |. 59 POP ECX 0045117D |. 64:8910 MOV DWORD PTR FS:[EAX],EDX 00451180 |. 68 95114500 PUSH keygenme.00451195 00451185 |> 8D45 F4 LEA EAX,[LOCAL.3] 00451188 |. E8 832CFBFF CALL keygenme.00403E10 0045118D \. C3 RETN Первое впечатление: не оч сложно, хотя алго не понял, ща покопаю Ысчо ----- Лень - это подсознательная мудрость ![]() |
|
Создано: 11 октября 2007 18:29 · Личное сообщение · #21 Первое впечатление: не оч сложно, хотя алго не понял, ща покопаю Ысчо Беру свои слова обратно! Ты там такого намутил, что серийник подобрать - целое дело Туд при нажатии на кнопку странные вещи происходят: 00450C9C /$ 53 PUSH EBX ; keygenme.00450D3B 00450C9D |. 8BD8 MOV EBX,EAX 00450C9F |. A1 104C4500 MOV EAX,DWORD PTR DS:[454C10] 00450CA4 |. C680 144C4500>MOV BYTE PTR DS:[EAX+454C14],80 00450CAB |. 833D 104C4500>CMP DWORD PTR DS:[454C10],38 00450CB2 72 05 JB SHORT keygenme.00450CB9 00450CB4 |. E8 53F6FFFF CALL keygenme.0045030C 00450CB9 |> B8 4C4C4500 MOV EAX,keygenme.00454C4C 00450CBE |. 8B15 0C4C4500 MOV EDX,DWORD PTR DS:[454C0C] 00450CC4 |. 8910 MOV DWORD PTR DS:[EAX],EDX 00450CC6 |. B8 504C4500 MOV EAX,keygenme.00454C50 00450CCB |. 8B15 084C4500 MOV EDX,DWORD PTR DS:[454C08] 00450CD1 |. 8910 MOV DWORD PTR DS:[EAX],EDX 00450CD3 |. E8 34F6FFFF CALL keygenme.0045030C 00450CD8 |. 8BD3 MOV EDX,EBX 00450CDA |. B8 944C4500 MOV EAX,keygenme.00454C94 00450CDF |. B9 10000000 MOV ECX,10 00450CE4 |. E8 CF1BFBFF CALL keygenme.004028B8 00450CE9 |. E8 9EF5FFFF CALL keygenme.0045028C 00450CEE |. 5B POP EBX 00450CEF \. C3 RETN Как я понял, ты там процедуры по адресам вызываешь, кроме того там MD5 у тя используется, так что дальше комать совсем в лом. Кстати мой и твой серийник - земля и небо по сравнению со сложностью вычисления. А вот мой второй кейгенми - твой в разы превосходит. зы. делфи - это сила! ![]() ----- Лень - это подсознательная мудрость ![]() |
|
Создано: 11 октября 2007 19:50 · Личное сообщение · #22 |
|
Создано: 11 октября 2007 20:47 · Личное сообщение · #23 |
|
Создано: 11 октября 2007 20:57 · Поправил: ev1l_4 · Личное сообщение · #24 |
|
Создано: 11 октября 2007 21:08 · Личное сообщение · #25 |
|
Создано: 11 октября 2007 21:19 · Личное сообщение · #26 depler пишет: ev1l_4 можешь алгоритм рассказать? хэшируется имя, HD serial и введённый serial в MD5 хэши. далее идёт фальшивая проверка и затем тру, её условия: mov al, byte ptr [name+3] add al, byte ptr [HD+3] mov dl, byte ptr [serial+5] and al, 0F0h and dl, 0F0h al==dl (!!!) mov al, byte ptr [name+0ch] add al, byte ptr [HD+0ch] mov dl, byte ptr [serial+0Bh] and al, 0Fh and dl, 0Fh al==dl (!!!) mov al, byte ptr [name+5] add al, byte ptr [HD+5] mov dl, byte ptr [serial+3] and al, 3Ch and dl, 3Ch al==dl (!!!) mov al, byte ptr [name+0Fh] add al, byte ptr [HD+0Fh] mov dl, byte ptr [serial+8] and al, 81h and dl, 81h al==dl (!!!) name, HD, serial - хэши MD5. Для взлома нам нужно сбрутить серийный номер, тупой перебор подойдёт, благодаря всего четырём используемым байтам из MD5 хэша серийника и логической команде and серийник быстро подбирается. Советую пореверсить кейген+брут, я не против. ![]() |
|
Создано: 11 октября 2007 21:31 · Личное сообщение · #27 |
<< . 1 . 2 . |
![]() |
eXeL@B —› Основной форум —› Простой консольный кейгенми |