MIME-подобный шифр

Тема в разделе "WASM.CRYPTO", создана пользователем Oxy, 31 мар 2006.

  1. Oxy

    Oxy New Member

    Публикаций:
    0
    Регистрация:
    18 фев 2005
    Сообщения:
    28
    Есть некая MIME-подобная строка: J4VjPK3n63BoPrJo

    В ней зашито: "Thomas Stout" (без кавычек)



    Расшифровывается также по частям (если есть русские буквы -- то не всегда: зависит от места разрыва):

    63BoPrJo = " Stout"

    J4Vj = "Tho"

    PK3n = "mas"

    63Bo = " St"

    PrJo = "out"



    Помогите найти алгоритм шифрования.



    PS

    Есть процедура расшифровки, но выдирать ее из проги геморно, а прога 5 метров весит.
     
  2. SDragon

    SDragon New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2005
    Сообщения:
    133
    Адрес:
    Siberia
    Это вариация на тему алгоритма Base64. Строка разбивается на группы по 3 байта, эти байты формируют 24-битное число. Затем это число считываем группами по 6 бит и используем в качестве индекса строки. Строка в стандартном Base64 такая: "A..Za..z0..9+/".

    В твоем алгоритме все то же самое за исключением строки. Она у тебя такая: "??0..9A..Za..z". Например, возьмем "out" = (6F 75 74) = (0110 1111, 0111 0101, 0111 0100). Разбиваем на группы по шесть бит: (011011, 110111, 010101, 110100) = (27, 55, 21, 52). Двадцать седьмой символ в указанной выше строке - это P, 55-ый - это r, 21-ый - это J, ну и 52-ой - o.

    Первые два символа строки из условий задачи определить нельзя, поэтому я обозначил их вопросами. Предполагаю, что это "+/", как в стандартном Base64, но не факт. Попробуй закодировать такую строку: "ABAAB@" (без кавычек), и тогда можно будет с уверенностью сказать, что это за символы.

    P.S. А кто такой Thomas Stout?
     
  3. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    SDragon



    Или кто такая...
     
  4. Oxy

    Oxy New Member

    Публикаций:
    0
    Регистрация:
    18 фев 2005
    Сообщения:
    28
    SDragon



    А кто его знает: может жертва злых хакеров, а может просто добрая душа... :)



    PS Первый символ таки "+", второй--пока не угадал (кодирую вручную, а процедура расшифровывает).

    В общем разобрался :) Спасибо

    Вопрос закрыт.
     
  5. Nitroz

    Nitroz New Member

    Публикаций:
    0
    Регистрация:
    1 фев 2005
    Сообщения:
    16
    Адрес:
    Russia
    можно тему оживить :)

    на входе:

    BZTOygzN5QTOykTR1cjQ4kzN4ITO5kjQ5kTO1czM0UUMCVzN4M0Q1cDMBRjQFNDR3MTQ4M TO2UTOxIzM1cDN5A==

    на выходе:

    A6928794929E57B89782999B9995734E1B578CC570A4BE3D73A8396591235749

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



    в проге для расшифровки юзается вот это дело:



    loc_463AA8:

    lodsd

    xor edx, edx

    xor ebx, ebx

    call sub_463AFA

    shr eax, 8

    call sub_463AFA

    shr eax, 8

    call sub_463AFA

    shr eax, 8

    call sub_463AFA

    shr edx, 8

    or bl, bl

    jz short loc_463AF5

    dec bl

    jz short loc_463AF5

    mov al, dl

    stosb

    inc [ebp+var_C]

    dec bl

    jz short loc_463AF5

    shr edx, 8

    mov al, dl

    stosb

    inc [ebp+var_C]

    dec bl

    jz short loc_463AF5

    shr edx, 8

    mov al, dl

    stosb

    inc [ebp+var_C]



    loc_463AF5:



    dec ecx

    jnz short loc_463AA8



    ####################



    sub_463AFA proc near



    cmp al, 3Dh

    jz short loc_463B49

    cmp al, 2Bh

    jb short loc_463B49

    cmp al, 7Ah

    jg short loc_463B49

    cmp al, 2Bh

    jnz short loc_463B12

    mov dl, 3Eh

    jmp short loc_463B47

    loc_463B12:

    cmp al, 2Fh

    jnz short loc_463B1B

    mov dl, 3Fh

    jmp short loc_463B47

    loc_463B1B:

    cmp al, 30h

    jb short loc_463B49

    cmp al, 39h

    jg short loc_463B2C

    mov dl, al

    add dl, 4

    jmp short loc_463B47

    loc_463B2C:

    cmp al, 41h

    jb short loc_463B49

    cmp al, 5Ah

    jg short loc_463B3D

    mov dl, al

    sub dl, 41h

    jmp short loc_463B47

    loc_463B3D:

    cmp al, 61h

    jb short loc_463B49

    mov dl, al

    sub dl, 47h

    loc_463B47:



    inc bl



    loc_463B49:



    ror edx, 6

    retn

    sub_463AFA endp
     
  6. Nitroz

    Nitroz New Member

    Публикаций:
    0
    Регистрация:
    1 фев 2005
    Сообщения:
    16
    Адрес:
    Russia