Просмотр полной версии : Мой старый crackme :)
Уже не помню, в честь чего и как давно писал, где выкладывал. Даже сорсов не сохранились.
В общем программка лежит здесь:
http://www.stnc.ru/ftpdrmist/other/crackme0.exe
Расчитана на нубов, подсказок нет. Задача - подобрать ключ для своего ника. Кто первым закейгенит получит +10.
ну здравствуй, отравитель :)
во первых строках письма шлю тебе превед. у меня упорно не желает выделять память по адресу 0400000h, поэтому пришлось его малость переделать под себя
должно подойти:
dMNt
AdMNtdMNtdMN0d0N4d8N01214161810B
Name:SHAG
Serial:SErIaL_is_VaLId_cracker_by.Shag"
Вот такой серийник у меня получился :D
dmnt
Вы ведь, каэцо, уже как-то его ломали? ))
SHAG
lol )
dmnt
Вы ведь, каэцо, уже как-то его ломали? ))
ага, чего бы хорошую вещь по второму разу не сломать? :)
Лучшеб кто-нить ее закейгенил %) Я думал, интузиазма будет больше =/
Ну подобрать так подобрать.
0xc0de
abcdea789012345678i0a2c4u6080_U0
В win xp память по этому адресу не выделяецц0.. Пришлось под виртуальной 2000 ломать. Ибо переделывать лень)
Подскажите как под win2000 файл открыть?
что там не так с VirtualAlloc?
Подскажите как под win2000 файл открыть?
что там не так с VirtualAlloc?
Что именно не так? В чем проблема?
Gen1rus
В свойствах выбери эмуляцию под вин2000 и увидишь в чем
хоть вариантов строки подходящей под значение хеш-функции уйма, но делать нормальный перебор значений мне показалось все-таки не тривиально; плюс ко всему можно использовать только печатаемые символы.
#include <stdio.h>
#include <string.h>
//
//super xek keygen by ZaCo for drmist crackme :)
//
int main(int argc, char* argv[])
{
char nickname[]="ZaCo";
char charset[]="ABCDEFGHIJKLMNOP";
int cs_len=strlen(charset);
char key[0x20];
char BL=0,DL=0,BH,DH;
//
int i=0, len=strlen(nickname);
for(;;)
{
BL+=nickname[i++];
if(i>len) break;
DL+=nickname[i++];
if(i>len) break;
}
BL--;
memset(key,charset[0],0x20);
//ïîäñòðàèâàåì key ïîä BL
DH=charset[0]*0x10;
unsigned char temp=BL-DH;
i=1;
while(temp>cs_len-1)
{
temp-=cs_len-1;
key[i]=charset[cs_len-1];
i+=2;
}
key[i]=charset[temp];
DH=BL;
//ïîëó÷àåì íóæíûé BH
BH=((0xB1-DH)^DL)-BL;
//ïîäñòðàèâàåì key ïîä BH
temp=BH-charset[0]*0x10;
i=0;
while(temp>cs_len-1)
{
temp-=cs_len-1;
key[i]=charset[cs_len-1];
i+=2;
}
key[i]=charset[temp];
//
printf("%20s",key);
return 0;
}
//---------------------------------------------------------------------------
идея в том, что используется !отрезок! печатаемых байт размером не меньше 16, для того чтобы можно было их суммой заполнить промежуток 0..255 и по любому никнейму можно было бы сгенерировать ключ.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot