![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| lesha |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 6.1.2004 Репутация: нет Всего: нет |
Попал в руки исходник программы но сам в ней не могу разобраться
Собственно сам код: program key; {$APPTYPE CONSOLE} uses Windows, Classes, SysUtils, KbCrypt, common, base64; const SKeyFile = 'server.key'; var S, PWD, KeyFile: string; My: TCryptLib; sKey: TKey; F: TEXT; Memory: TMemoryStream; MK, AK, nDays, MaxComps: DWORD; begin KeyFile := 'key.txt'; MaxComps := StrToIntDef(ParamStr(1), 1); nDays := StrToIntDef(ParamStr(2), 365); Assign(F, KeyFile); Reset(F); Readln(F, S); if S = '' then Exit; Writeln('Using file with key: '+KeyFile); My := TCryptLib.Create(nil); My.Password := #0#23#128#0#98#108#63#125#201#135#1#72; My.Compression := LZ; AK := 61235349; MK := 325634; My.AddKey := AK; My.MultKey := MK; Hex2Str(S); sKey := Str2Key(S); Write( ' Password:' ); Readln(PWD); if PWD = '' then Exit; if PWD <> (' '+DateToStr(Date)+'.' ) then raise Exception.Create('Bad password.' ); Writeln(' Info: ' ); S := sKey.key; S := My.DecryptStr(Str2Hex(S)); CharToOem(Pointer(S), Pointer(S)); Writeln(S); S := sKey.uid; S := My.DecryptStr(Str2Hex(S)); CharToOem(Pointer(S), Pointer(S)); Writeln(S); S := sKey.info; S := My.DecryptStr(Str2Hex(S)); CharToOem(Pointer(S), Pointer(S)); Writeln(Replace(S, ']', ']'#13#10' ' ); S := sKey.date; Writeln(S); Writeln(' ' ); Writeln(' MaxComps: ', MaxComps); Writeln('Expiration Date: ' , DateToStr(Now+nDays) ); Writeln('_____________________________________________________' ); Write('Generate key file? : ' ); Readln(PWD); if not SameText(PWD, 'Y' ) then begin Writeln('Canceled.' ); Exit; end; Memory := TMemoryStream.Create(); try WriteCert(Memory, sKey, MaxComps, Now-1, Now+nDays); My.EncryptMemory(Memory); Memory.Position := 0; Memory.SaveToFile(SKeyFile+'.'+IntToStr(MaxComps)); Base64Encode_stream(Memory); Memory.SaveToFile(SKeyFile+'.'+IntToStr(MaxComps)+'.base64' ); FreeAndNil(Memory); finally Memory.Free; end; System.Writeln('OK.' ); end. Кто разобрался, расскажите. Очень надо |
|||
|
||||
| Fedor |
|
|||
![]() Днепрянин ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2090 Регистрация: 8.2.2003 Где: Великий Репутация: нет Всего: 32 |
А что именно тебе нужно узнать? А то какой-то безпредметный разговор получится...
-------------------- Мы - Днепряне. Мы всех сильней. |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Вроде разъяснил Это сообщение отредактировал(а) <Spawn> - 7.1.2004, 19:03 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| lesha |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 6.1.2004 Репутация: нет Всего: нет |
<Spawn>
Очень хорошо, что помог разобраться. Чему очень благодарен. Вопрос в догонку именно по этой части //Если пользователь хочет создать новый файл, то.. Readln(PWD); if not SameText(PWD, 'Y' ) then begin Writeln('Canceled.' ); Exit; end; // ... создаем его Memory := TMemoryStream.Create(); try WriteCert(Memory, sKey, MaxComps, Now-1, Now+nDays); My.EncryptMemory(Memory); Memory.Position := 0; Memory.SaveToFile(SKeyFile+'.'+IntToStr(MaxComps)); Base64Encode_stream(Memory); Memory.SaveToFile(SKeyFile+'.'+IntToStr(MaxComps)+'.base64' ); В следующих строчках: Readln(PWD); if not SameText(PWD, 'Y' ) then //если я ввожу другие значения то выход. begin Writeln('Canceled.' ); Exit; end; Видел такое, что в поле пароля вводили кучу всего и генерировался файл совсем другой. Если к примеру я при вводе пароля ставлю Y то получаю два файла server.key.1 server.key.1.base64 а видел такое: сгенерировались файлы server.key.30 server.key.30.base64 Если это возможно то как? |
|||
|
||||
| lesha |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 6.1.2004 Репутация: нет Всего: нет |
Morpheus
Прочитай выше, что меня интересует, а то времени в обрез. Это сообщение отредактировал(а) lesha - 7.1.2004, 17:33 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |