R0 CREW

DrWeb crackme

И еще раз для желающих пореверсить (хотя новость недельной давности).

Анонс в журнале Х #190.
Специально для нашей рубрики специалисты Dr.Web написали crackme, который тебе совершенно точно надо попробовать отломать. Качаем: http://drw.sh/crackme.
Задача: найти правильное имя и пароль. Решения присылай на lozovsky@glc.ru

В отличие от crackme касперского, там, вероятно, виртуальная машина…

Вот на крякми каспера время было убито, а призов-то так и нету. Только голову морочили. Так что предвзято моё отношение ко всяким крякми теперь. Хотя, ДрВэб и не виноват.

Призы от Каспера в полной комплектации получил: коробочную версию каспера 5 в 1 (на все устройства), внешний винт на 750 гиг с лого каспера, огромный классный рюкзак с лого и шарфец с лого.

А у меня спрашивали адрес, потом телефон, т.к. курьерская служба, по их словам, не занимается доставкой, если телефон не указан. А потом - тишина.

У меня все тоже “анкетирование”, но посылку курьерская служба притаранила на рабочий адрес, еще звонили с самого утра, что на работе никого нет.

Она самая, но относительно простая, код чистый, без мусора. Кто не поленится пройти до конца, должен будет вспомнить из математики, как решается система линейных уравнений.

Валидную пару не выкладываю, хотя она, ИМХО, в данном случае вряд ли будет чем-то полезна (в отличие от кракми ЛК, там она сэкономила бы 50-70% времени).

Тоже считаю, что знание валидной пары ничем не поможет, но все же спрячу под спойлер

Hide

Name: OKOB
Serial: FF3C0135014AFF9A

Только почта не принимает решение.

Final-Recipient: rfc822; lozovsky@glc.ru
Original-Recipient: rfc822;lozovsky@glc.ru
Action: failed

rambler.ru не любит

OKOB, Prober ну вы прям метеоры )))

Hide

Name: Darwin
Passw: FF4500CA00F8001A

Заводи почту на gmail и проблем не будет. Второй раз отсылаю на этот адрес и всё нормально.

Не знаю, что такое нормально, но отписался 12-го и оказался в пролёте, опоздал.

Я имел ввиду, что почта уходит нормально на тот адрес (lozovsky@glc.ru). Про временные рамки не слышал, по крайней мере, в журнале ничего не написано. Делал на интерес, а не ради призов.

ЗЫ: Что ответили в письме и сколько человек могло пройти? Я с уверенностью в 80% могу сказать, что на письма еще никто не отвечал. Если пришло тоже сообщение, что и OKOB, завернул спам фильтр.

Отправлял решение с гуглопочты примерно в то же время, когда написал здесь. Ответили, что стал 2-ым.

Ответ мне:

Привет!

Эх, опоздал ты чуток, не попал в зал славы победителей :slight_smile:

12 ноября 2014 г., 11:13

Мне в течении часа как я отослал с gmail пришло письмо

Lozovsky Alexandr lozovsky@gameland.ru через glc.ru

Привет, OKOB!
Принято!
Татьяна, Борис, наградим бронзового призера? :slight_smile: Как раз три места получится.

Татьяна и Борис это два адресата с @drweb.com.

Ясно, значит ошибся. Я 13-го ночью отправил, ничего не отвечали. 3-и места это не серьезно.

Тоже ответили:

Привет!

На призовые места ты, к сожалению, не попал :). Прославлю не попавших в декабрь уже в январе.

вы хоть поделитесь решением :sunglasses:

Заковыристая хрень :slight_smile: Кейген кто-нибудь наваял?

#!/usr/bin/env python
#-*- coding:utf-8 -*-
'''
  Keygen for Dr.Web CrackMe! v.0.1 challenge
  Xacker Magazin #190 (November, 2014)
  Solution report on email lozovsky@glc.ru
'''
from z3 import *                                                              
import sys

print 'Name: %s'%sys.argv[1]

### generate table ###
xtbl = [0]*256
for r00 in range(256):
   r01 = r00
   for r02 in range(8):
      if r01 & 1:
         r01 = (r01>>1)^0xEDB88320
      else:
         r01 >>= 1
   xtbl[r00] = r01

### calc hash ###
hash = 0xFFFFFFFF
for cc in sys.argv[1]:
   hash = xtbl[(ord(cc)^hash)&0xFF] ^ (hash >> 8)
hash ^= 0xFFFFFFFF
print 'Hash: 0x%X'%hash

### solve equations ###
x1 = hash&0xFF
x2 = (hash>>8)&0xFF
x3 = (hash>>16)&0xFF
x4 = (hash>>24)&0xFF
a = BitVec('a', 16)
b = BitVec('b', 16)
c = BitVec('c', 16)
d = BitVec('d', 16)
ss = Solver()
ss.add(a+c+d == x1)
ss.add(a+c == x2)
ss.add(b+d == x3)
ss.add(a+b == x4)

ss.check()
zz = ss.model()

### get serial ###
print 'Serial: %04X%04X%04X%04X'%(zz[a].as_long(),zz[b].as_long(),zz[c].as_long(),zz[d].as_long())

Требует установки солвера Z3 от Microsoft для автоматического решения системы линейных уравнений.

REU: Так там CRC32, зачем же себе усложнять жизнь?
Ну, не пробил по константе :frowning:

Тогда значительно короче:

#!/usr/bin/env python
#-*- coding:utf-8 -*-
'''
  Keygen for Dr.Web CrackMe! v.0.1 challenge
  Xacker Magazin #190 (November, 2014)
  Solution report on email lozovsky@glc.ru
'''
from z3 import *                                                              
import sys
inport zlib

print 'Name: %s'%sys.argv[1]

hash = zlib.crc32(sys.argv[1])
print 'Hash: 0x%X'%hash

### solve equations ###
x1 = hash&0xFF
x2 = (hash>>8)&0xFF
x3 = (hash>>16)&0xFF
x4 = (hash>>24)&0xFF
a = BitVec('a', 16)
b = BitVec('b', 16)
c = BitVec('c', 16)
d = BitVec('d', 16)
ss = Solver()
ss.add(a+c+d == x1)
ss.add(a+c == x2)
ss.add(b+d == x3)
ss.add(a+b == x4)

ss.check()
zz = ss.model()

### get serial ###
print 'Serial: %04X%04X%04X%04X'%(zz[a].as_long(),zz[b].as_long(),zz[c].as_long(),zz[d].as_long())

Так там CRC32, зачем же себе усложнять жизнь?

Мда, что-то я даже црц32 там не вижу ни хрена, даж такой константы нету в крякмисе или пошифровано?