Посл.ответ |
Сообщение |
 Ранг: 260.9 (наставник) Активность: 0.12↘0 Статус: Участник John Smith
|
Создано: 16 октября 2006 15:48 · Личное сообщение · #1
Знаю, что всем уже надоели крякми, но всё же хочется своё старое творение выложить. Был онаписано ещё года 2 назад. На васике. Переписал на сях. Просто посмотреть номерок не удастся. Кто таки реверснёт будет считаться молодцом.
Никаких запутываний, антиотладки и противодействия (если не считать частые вылеты при неправильных рег номерах). Задача получить номер. Никаких патчей, только реверсинг.
Размер 20 килобайт 269a_16.10.2006_CRACKLAB.rU.tgz - keygenMe.rar
----- Недостаточно только получить знания:надо найти им приложение | Сообщение посчитали полезным: |
|
Ранг: 117.5 (ветеран), 5thx Активность: 0.08↘0.01 Статус: Участник
|
Создано: 16 октября 2006 21:14 · Личное сообщение · #2
странно 2 раза качал показывает битый архив...
| Сообщение посчитали полезным: |
 Ранг: 260.9 (наставник) Активность: 0.12↘0 Статус: Участник John Smith
|
Создано: 16 октября 2006 21:37 · Личное сообщение · #3
ничего страшного. у меня вроде у всех архивов из аттачей битые. просто открой и перетяни в папку.
На всякий пожарный:
--> iFolder<-- http://ifolder.ru/290652
--> Рапида<-- http://rapidshare.de/files/37044630/keygenMe.rar.html
----- Недостаточно только получить знания:надо найти им приложение | Сообщение посчитали полезным: |
Ранг: 310.8 (мудрец), 29thx Активность: 0.43↘0 Статус: Участник
|
Создано: 17 октября 2006 01:45 · Личное сообщение · #4
sats пишет:
показывает битый архив...
Поставь ТоталКоммандер с плагинами - проблем станет меньше. Аттач в норме.
| Сообщение посчитали полезным: |
Ранг: 45.7 (посетитель), 5thx Активность: 0.02↘0 Статус: Участник
|
Создано: 17 октября 2006 03:38 · Поправил: Fallout · Личное сообщение · #5
Какой то он не красивый Ж))) если даже погледетьн а первый цикл ( 00406201 )
Некоторый переменые не инициализировал а просто оюъявил... вот так будет цикл выгледитье сли на Си переписать... да и у толи специально у автора был такой корявый стиль письма программы Ж) не удобно....
память memory_1, 2 выделяетсья размером соотвенно (digit_1, 2) / 3 + 1
unsigned int maybe_crc = 0;
unsigned int var0 = 0;
unsigned int digit_2;
unsigned char *memory_2;
int counter;
unsigned int digit_1;
unsigned char *memory_1;
char *szKey = "003003000000012345678-";
char buff[0x04];
memset( buff, 0x00, sizeof( buff ) );
for( counter = 0; counter < ( digit_1 / 3); counter++ ){
memcpy( buff, &szKey[ 7 + (counter* 3) ], 0x03 );
memory_1[ counter ] = atol( buff ) & 0xFF;
var0 = memory_1[ counter ] ;
var0 = var0 & 0xFF;
maybe_crc = maybe_crc + var0;
}
maybe_crc = maybe_crc - var0;
memory_1[ digit_1 / 3] = 0;
for( counter = 0; counter < ( digit_2 / 3); counter++ ){
memcpy( buff, &szKey[ 7 + (counter* 3) + digit_1], 0x03 );
memory_2[ counter ] = atol( buff ) & 0xFF;
var0 = memory_2[ counter ] ;
var0 = var0 & 0xFF;
maybe_crc = maybe_crc + var0;
}
maybe_crc = maybe_crc - var0;
memory_2[ digit_1 / 3] = 0;
counter = digit_1 + digit_2 + 7;
unsigned int var_54 = 0;
unsigned char fbuf[0x10];
while( szKey[counter ] != 0x2D ){
fbuf[ var_54 ] = szKey[counter];
var_54++;
counter++;
}
fbuf[ var_54 ] = 0 ;
unsigned int xored_var = sub_406AC0( fbuf, 0x10 ); // convert string to binhex format "12345678" -> 0x12345678
counter = 0x07;
var_54 = 0x01;
xored_var = xored_var ^ maybe_crc;
_itoa( xored_var , fbuf, 0x10 );
int len_off = strlen( xored_var );
counter = (digit_1/ 3 ) - 2 ;
var_54 = ( digit_1 / 3 ) - ( 1 % len_off ) - 1;
if( var_54 == 0xFFFFFFFF) {
var_54 = 0;
}
while( counter != 0xFFFFFFFF ){
unsigned int tmp0 = memory_1[counter + 1];
unsigned int tmp1 = memory_1[counter];
tmp1 = tmp1 ^ tmp0;
memory_1[counter] = tmp1 & 0xFF;
unsigned int tmp2 = counter & 0x80000001;
if( tmp2 < 0 ){
tmp2 = ((tmp2 - 1) | 0xfffffffe) + 1;
}
if( tmp2 != 0){
tmp0 = fbuf[var_54];
tmp0 = tmp0 & 0x80000003;
if( tmp0 < 0 ){
tmp0 = ((tmp0 - 1) | 0xfffffffc) + 1;
}
}
<uncontimued>
}
Ну вот ещё немного перевел в Си опять таки не все перевожу а начиная с первого цикла просто кому интересно покапаться думаю будет полезно покапаться...
Вообщем смылс там такой... читаем вначале длину первого слова в ключе потом длину второго слова в ключе... далее идут сами слова причем они закодированы как я понял ... каждая буква предсатвляет собой три цифры ( десятиный номер буковки ) потом идет некоторое значение похоже что это ключ для расшифровки этого слова чтоль.... ну в итоге вообщем должны вывестись они на форму.... ниже диалога ввода ключа.... забавно конечно но блин ужасно не красиво помоему
п.с: >>Rascal
похоже?
| Сообщение посчитали полезным: |
 Ранг: 260.9 (наставник) Активность: 0.12↘0 Статус: Участник John Smith
|
Создано: 17 октября 2006 08:05 · Личное сообщение · #6
Fallout пишет:
похоже?
Да, именно так.
Fallout пишет:
Какой то он не красивый Ж))) если даже погледетьн а первый цикл ( 00406201 )
А по-моему нормально  Этож не обрасцовая программа. По-другому писать ещё более некрасиво.
Только пока ты главное не понял
----- Недостаточно только получить знания:надо найти им приложение | Сообщение посчитали полезным: |
Ранг: 45.7 (посетитель), 5thx Активность: 0.02↘0 Статус: Участник
|
Создано: 17 октября 2006 09:50 · Личное сообщение · #7
Просто кода очень много такового вот хитрого плюс отсутсвие проверок всяких аля доступ к памяти и тд и тп.... и фактически отсутсвие условия ВЫИГРЫША Ж) То бишь программа из ряда...
a = 3;
b = 57;
a = a + b + 8486586 + 4 / 3334234;
c = a / b + 5678;
и тд и тп... просто вот такой большой ход изчеслений разных и тди тп.... скучновато... хотя на вкус и цвет .....
| Сообщение посчитали полезным: |
 Ранг: 260.9 (наставник) Активность: 0.12↘0 Статус: Участник John Smith
|
Создано: 17 октября 2006 09:58 · Личное сообщение · #8
я делал прогу как разминку для ума. я конечно мог добавить один байт и по нему проверять, или хэшировать, или код там держать, но толку то, я ж именно реверс хотел получить. Да и как видишь проверка есть - чтобы не было эксепшенов
----- Недостаточно только получить знания:надо найти им приложение | Сообщение посчитали полезным: |