Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

Помагите перевести код с Делфи на СИ или АСМ   Найти похожие ветки 

 
AsbAlex ©   (2004-04-25 22:16) [0]

Вот код:

const
 b64alphabet2: PChar = "+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

function DecodeBaseTB(Value: String): String;
 function DecodeChunk(const Chunk: String): String;
 var
   W: LongWord;
   i: Byte;
 begin
   W := 0; Result := "";
   for i := 1 to 4 do
     if Pos(Chunk[i], b64alphabet2) <> 0 then
       W := W + Word((Pos(Chunk[i], b64alphabet2) - 1)) shl ((4 - i) * 6);
   for i := 1 to 3 do
       Result := Result + Chr(W shr ((3 - i) * 8) and $ff);
 end;
begin
 Result := "";
 if Length(Value) mod 4 <> 0 then Exit;
 while Length(Value) > 0 do begin
   Result := Result + DecodeChunk(Copy(Value, 0, 4));
   Delete(Value, 1, 4);
 end;
end;

function DecryptTheBatPass(const Value: String): String;
var
 S: String;
 i: Integer;
 Len: Integer;
begin
 Result := "<cannot decrypt>";
 S := DecodeBaseTB(Value);
 if Length(S) < 4 then Exit;
 for i := 1 to 4 do
   S[i] := Chr($FF - Ord(S[i]));
 Len := PDWord(@S[1])^;
 Delete(S, 1, 4);
 for i := 1 to Length(S) do
   S[i] := Chr(Ord(S[i]) xor $5A);
 Result := "";
 for i := Len downto 1 do
   Result := Result + S[i];
end;


 
AsbAlex ©   (2004-04-25 22:16) [0]

Вот код:

const
 b64alphabet2: PChar = "+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

function DecodeBaseTB(Value: String): String;
 function DecodeChunk(const Chunk: String): String;
 var
   W: LongWord;
   i: Byte;
 begin
   W := 0; Result := "";
   for i := 1 to 4 do
     if Pos(Chunk[i], b64alphabet2) <> 0 then
       W := W + Word((Pos(Chunk[i], b64alphabet2) - 1)) shl ((4 - i) * 6);
   for i := 1 to 3 do
       Result := Result + Chr(W shr ((3 - i) * 8) and $ff);
 end;
begin
 Result := "";
 if Length(Value) mod 4 <> 0 then Exit;
 while Length(Value) > 0 do begin
   Result := Result + DecodeChunk(Copy(Value, 0, 4));
   Delete(Value, 1, 4);
 end;
end;

function DecryptTheBatPass(const Value: String): String;
var
 S: String;
 i: Integer;
 Len: Integer;
begin
 Result := "<cannot decrypt>";
 S := DecodeBaseTB(Value);
 if Length(S) < 4 then Exit;
 for i := 1 to 4 do
   S[i] := Chr($FF - Ord(S[i]));
 Len := PDWord(@S[1])^;
 Delete(S, 1, 4);
 for i := 1 to Length(S) do
   S[i] := Chr(Ord(S[i]) xor $5A);
 Result := "";
 for i := Len downto 1 do
   Result := Result + S[i];
end;


 
DrPass ©   (2004-04-25 22:57) [1]

Лучше переведи на ASM - как раз будет чем на майские праздники заняться


 
DrPass ©   (2004-04-25 22:57) [1]

Лучше переведи на ASM - как раз будет чем на майские праздники заняться


 
Игорь Шевченко ©   (2004-04-25 23:40) [2]

Пароли ломать нехорошо


 
Игорь Шевченко ©   (2004-04-25 23:40) [2]

Пароли ломать нехорошо


 
AsbAlex ©   (2004-04-26 01:11) [3]

Вы здесь все больно умные, а никто помочь не хочет... :(


 
AsbAlex ©   (2004-04-26 01:11) [3]

Вы здесь все больно умные, а никто помочь не хочет... :(


 
Mim1 ©   (2004-04-26 01:25) [4]

AsbAlex ©   (26.04.04 01:11) [3]

Может поможеш мне убить кота моего соседа. Дело вроде не уголовное, а некоторые моральные качества мешают мне сделать такое.


 
Mim1 ©   (2004-04-26 01:25) [4]

AsbAlex ©   (26.04.04 01:11) [3]

Может поможеш мне убить кота моего соседа. Дело вроде не уголовное, а некоторые моральные качества мешают мне сделать такое.


 
Digitman ©   (2004-04-26 09:48) [5]


> AsbAlex ©   (25.04.04 22:16)


> Вы здесь все больно умные


.. а ты еще умней, видимо

размести этот код в отдельном модуле Делфи, объяви имена ф-ций в нем экспортируемыми, подключи модуль к любому проекту, установи опцию линкера Generate C/C++ object files, собери проект, получи объектный файл, подключи его как положено к проекту на C/C++


 
Digitman ©   (2004-04-26 09:48) [5]


> AsbAlex ©   (25.04.04 22:16)


> Вы здесь все больно умные


.. а ты еще умней, видимо

размести этот код в отдельном модуле Делфи, объяви имена ф-ций в нем экспортируемыми, подключи модуль к любому проекту, установи опцию линкера Generate C/C++ object files, собери проект, получи объектный файл, подключи его как положено к проекту на C/C++



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.043 c
7-1080541322
Ciberrus
2004-03-29 10:22
2004.05.09
Реестр


14-1082119853
syte_ser78
2004-04-16 16:50
2004.05.09
Разделение значения в ячейке


1-1082644792
моё_имя
2004-04-22 18:39
2004.05.09
закрытие MDI-формы


1-1082533985
Andrew2
2004-04-21 11:53
2004.05.09
Дата файла с ms


3-1081503969
GIL
2004-04-09 13:46
2004.05.09
почему не грузится изображение?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский