Сейчас на форуме: ==DJ==[ZLO], Dart Raiden, Alf (+6 невидимых)

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

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

Создано: 11 августа 2004 07:11
· Личное сообщение · #1

Прога регистрируется паролем. В ней зашито куча шифрованных паролей. При введении пароля она шифрует мой и сверяет с одним из вшитых в нее.
Вот алгоритм шифрования:

004BF182 |. B9 01000000 MOV ECX,1
004BF187 |> 8BD8 /MOV EBX,EAX // в eax длина пароля
004BF189 |. C1E3 05 |SHL EBX,5
004BF18C |. C1E8 1B |SHR EAX,1B
004BF18F |. 33D8 |XOR EBX,EAX
004BF191 |. 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4] // в eax кладется мой введенный пароль
004BF194 |. 0FB64408 FF |MOVZX EAX,BYTE PTR DS:[EAX+ECX-1]
004BF199 |. 33D8 |XOR EBX,EAX
004BF19B |. 8BC3 |MOV EAX,EBX
004BF19D |. 41 |INC ECX
004BF19E |. 4A |DEC EDX // в edx длина моего пароля
004BF19F |.^75 E6 \JNZ SHORT XSpider.004BF187
004BF1A1 |> 69C0 453F359E IMUL EAX,EAX,9E353F45

В итоге в eax получается мой шифрованный пароль и потом сравнивается с правильным, но зашифрованным.
Правильный зашифрованный в hex - 4ee1602d.
Реально ли расшифровать его? Или тут надо еще знать длину пароля?



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

Создано: 11 августа 2004 07:56
· Личное сообщение · #2

Если ты знаешь алгоритм, по которому идет шифрация, то тебе надо взять правильный пароль и пройтись по нему этим алгоритмом в обратном порядке.



Ранг: 160.1 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 11 августа 2004 08:28
· Личное сообщение · #3

это не шифровка а хеш. Выглядит примерно так:
#define rol5(x) (((x) << 5) | ((x) >> 0x1b))

DWORD getCRC( char *pass, int len )
{
DWORD crc = len;
for( int i = 0; i < len; ++i )
{
crc = ~rol5(crc);
crc ^= pass[i];
}
crc *= 0x9E353F45;
return crc;
}

навскидку однозначно не обращается, т.е. перебором. Какая может быть длина и какие символы в правильном пароле используются ?



Ранг: 0.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 11 августа 2004 15:16
· Личное сообщение · #4

а хеш функция не правильная-то...



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

Создано: 11 августа 2004 15:25
· Личное сообщение · #5

2 MARcoDEN
это и так ясно
2 infern0
Длина примерно символов 10, а символы - цифры и буквы вроде.
Видимо прийдется брутфорсить.



Ранг: 160.1 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 12 августа 2004 06:14
· Личное сообщение · #6

d_chaos пишет:
а хеш функция не правильная-то...

возможно, тестового примера входа и выхода не привели.
Вообще-то в оригинале так:
#define rol5(x) (((x) << 5) ^ ((x) >> 0x1b))
и так:
crc = rol5(crc); // убрать ~



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

Создано: 12 августа 2004 15:31
· Личное сообщение · #7

Есть еще несколько вопросов:
1)Подскажите пожалуйста процедуру на асме для получения длины строки.
2)И как реализовать этот код на дельфи?
Вот есть такой код на асме:
MOV EAX,DWORD PTR SS:[EBP-4]
MOVZX EAX,BYTE PTR DS:[EAX+ECX-1]
Я пытаюсь на дельфях сделать тоже самое асмовской вставкой:

sn:=strtoint(edit1.Text);
asm
pushad
mov eax,dword ptr [sn]
movzx eax,byte ptr [eax+ecx-1]
popad
end;
Но в eax кладется sn только в шестнадцатиричном виде и это ясно, но как положить в eax адрес того что находится в sn?



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

Создано: 12 августа 2004 16:23
· Личное сообщение · #8

Destroyer пишет:
положить в eax адрес того что находится в sn?

насколько я понял, тебе надо так:
lea eax, sn
mov ebx, [eax]
mov eax, [ebx]

ну и сохранять/восстанавливать регистры не надо. это ж дельфи.



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

Создано: 12 августа 2004 16:28
· Личное сообщение · #9

NG
Спасибо попробую
Остается еще 1 вопрос:
Подскажите пожалуйста процедуру на асме для получения длины строки.



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

Создано: 12 августа 2004 16:37
· Личное сообщение · #10

Destroyer пишет:
процедуру на асме для получения длины строки.

лол.
на асме можно, конечно, ручками писать. но апишки, имхо, рулят.
msdn те в руки. lstrlen




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

Создано: 12 августа 2004 16:38
· Личное сообщение · #11

Destroyer
function lstrlen(Str: PChar): Integer;



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

Создано: 12 августа 2004 16:45
· Личное сообщение · #12

Ara
это асм?

invoke lstrlen, ADDR Str
mov length, eax




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

Создано: 12 августа 2004 16:49
· Личное сообщение · #13

NG, как написано "Подскажите пожалуйста процедуру на асме ", вот и процедура.




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

Создано: 12 августа 2004 16:57 · Поправил: Ara
· Личное сообщение · #14

NG пишет:
invoke lstrlen, ADDR Str
mov length, eax


........................
.data
length dd 0
Str db 128 dup(0)
..........................
.code
..........................
invoke lstrlen, ADDR Str
mov length, eax



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

Создано: 12 августа 2004 17:01
· Личное сообщение · #15

Круто, спасибо пойду все пробовать. А про lstrlen я что-то вообще забыл, спасибо.



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

Создано: 12 августа 2004 17:06
· Личное сообщение · #16

2 infern0
А есть какая-нибудь стандартная процедура для подсчета хэша на дельфях?



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

Создано: 12 августа 2004 17:07
· Личное сообщение · #17

Ara пишет:
........................
.data
lstrlen dd 0
Str bd dup(128)
..........................
.code
..........................
invoke lstrlen, ADDR Str
mov length, eax

БРЕД! называется, найди 5 ошибок в посте Ары!!!




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

Создано: 12 августа 2004 17:11
· Личное сообщение · #18

NG пишет:
БРЕД! называется, найди 5 ошибок в посте Ары!!!

Сорри, поправил!
Пить меньше надо!



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

Создано: 12 августа 2004 17:19
· Личное сообщение · #19

а точечки ж вроде не компилятся!




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

Создано: 12 августа 2004 17:21
· Личное сообщение · #20

В MASM64 компилятся!



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

Создано: 12 августа 2004 17:37
· Личное сообщение · #21

Ara пишет:
MASM64

ой, а хто ето?



Ранг: 160.1 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 13 августа 2004 08:23 · Поправил: infern0
· Личное сообщение · #22

Destroyer пишет:
А есть какая-нибудь стандартная процедура для подсчета хэша на дельфях?

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



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

Создано: 17 августа 2004 16:36
· Личное сообщение · #23

А пойдет ли какая-нибудь библиотека для подсчета хэша? Как узнать какой алгоритм применяются (MD5 и т.д.)?



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

Создано: 17 августа 2004 17:19
· Личное сообщение · #24

Destroyer
а зачем, если у тебя УЖЕ есть весь код?



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

Создано: 17 августа 2004 17:26
· Личное сообщение · #25

Хотя правда, ладно накатал тут кое-что, пойду проверять.



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

Создано: 19 августа 2004 16:32
· Личное сообщение · #26

Всем спасибо забрутфорсил я это всё!
infern0, а как ты узнал что это хэш?



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

Создано: 19 августа 2004 16:53
· Личное сообщение · #27

Destroyer пишет:
infern0, а как ты узнал что это хэш?

потому что инферно -- матерый крякер, который не раз сталкивался к порн... криптографией.
а вообще, алгоритм и так видно.



Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 19 августа 2004 16:58
· Личное сообщение · #28

Destroyer пишет:
004BF19F |.^75 E6 \JNZ SHORT XSpider.004BF187

Это XSpider(сканер безопасности)? Так он же бесплатный. Что за версия?

-----
Я медленно снимаю с неё UPX... *FF_User*




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

Создано: 19 августа 2004 17:40
· Личное сообщение · #29

AlexZ
Да, он не бесплатный. Версия 6.01



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

Создано: 20 августа 2004 14:17
· Личное сообщение · #30

infern0, а как ты узнал что это хэш?


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


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