Сейчас на форуме: _MBK_, Adler (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Поиск алгоритма шифрования.
Посл.ответ Сообщение

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

Создано: 31 мая 2011 02:56
· Личное сообщение · #1

Есть программа,
Вот часть кода, которая отвечает за шифрование:
Code:
  1. 005767D8   53               PUSH EBX
  2. 005767D9   56               PUSH ESI
  3. 005767DA   57               PUSH EDI
  4. 005767DB   55               PUSH EBP
  5. 005767DC   51               PUSH ECX
  6. 005767DD   890C24           MOV DWORD PTR SS:[ESP],ECX
  7. 005767E0   8BF0             MOV ESI,EAX
  8. 005767E2   8BEA             MOV EBP,EDX
  9. 005767E4   33DB             XOR EBX,EBX
  10. 005767E6   33FF             XOR EDI,EDI
  11. 005767E8   8B0424           MOV EAX,DWORD PTR SS:[ESP]
  12. 005767EB   B9 03000000      MOV ECX,3
  13. 005767F0   99               CDQ
  14. 005767F1   F7F9             IDIV ECX
  15. 005767F3   85C0             TEST EAX,EAX
  16. 005767F5   7E 7D            JLE SHORT programma.00576874
  17. 005767F7   33D2             XOR EDX,EDX
  18. 005767F9   8A141E           MOV DL,BYTE PTR DS:[ESI+EBX]
  19. 005767FC   C1EA 02          SHR EDX,2
  20. 005767FF   8A92 98925900    MOV DL,BYTE PTR DS:[EDX+599298]
  21. 00576805   88543D 00        MOV BYTE PTR SS:[EBP+EDI],DL
  22. 00576809   8A141E           MOV DL,BYTE PTR DS:[ESI+EBX]
  23. 0057680C   80E2 03          AND DL,3
  24. 0057680F   81E2 FF000000    AND EDX,0FF
  25. 00576815   C1E2 04          SHL EDX,4
  26. 00576818   33C9             XOR ECX,ECX
  27. 0057681A   8A4C1E 01        MOV CL,BYTE PTR DS:[ESI+EBX+1]
  28. 0057681E   C1E9 04          SHR ECX,4
  29. 00576821   03D1             ADD EDX,ECX
  30. 00576823   FFB2 98925900    PUSH DWORD PTR DS:[EDX+599298]
  31. 00576829   5A               POP EDX
  32. 0057682A   88543D 01        MOV BYTE PTR SS:[EBP+EDI+1],DL
  33. 0057682E   8A541E 01        MOV DL,BYTE PTR DS:[ESI+EBX+1]
  34. 00576832   80E2 0F          AND DL,0F
  35. 00576835   81E2 FF000000    AND EDX,0FF
  36. 0057683B   C1E2 02          SHL EDX,2
  37. 0057683E   33C9             XOR ECX,ECX
  38. 00576840   8A4C1E 02        MOV CL,BYTE PTR DS:[ESI+EBX+2]
  39. 00576844   C1E9 06          SHR ECX,6
  40. 00576847   03D1             ADD EDX,ECX
  41. 00576849   FFB2 98925900    PUSH DWORD PTR DS:[EDX+599298]
  42. 0057684F   5A               POP EDX
  43. 00576850   88543D 02        MOV BYTE PTR SS:[EBP+EDI+2],DL
  44. 00576854   8A541E 02        MOV DL,BYTE PTR DS:[ESI+EBX+2]
  45. 00576858   80E2 3F          AND DL,3F
  46. 0057685B   81E2 FF000000    AND EDX,0FF
  47. 00576861   8A92 98925900    MOV DL,BYTE PTR DS:[EDX+599298]
  48. 00576867   88543D 03        MOV BYTE PTR SS:[EBP+EDI+3],DL
  49. 0057686B   83C7 04          ADD EDI,4
  50. 0057686E   83C3 03          ADD EBX,3
  51. 00576871   48               DEC EAX
  52. 00576872  ^75 83            JNZ SHORT programma.005767F7
  53. 00576874   8B0424           MOV EAX,DWORD PTR SS:[ESP]
  54. 00576877   B9 03000000      MOV ECX,3
  55. 0057687C   99               CDQ
  56. 0057687D   F7F9             IDIV ECX
  57. 0057687F   4A               DEC EDX
  58. 00576880   74 08            JE SHORT programma.0057688A
  59. 00576882   4A               DEC EDX
  60. 00576883   74 3A            JE SHORT programma.005768BF
  61. 00576885   E9 86000000      JMP programma.00576910
  62. 0057688A   33C0             XOR EAX,EAX
  63. 0057688C   8A041E           MOV AL,BYTE PTR DS:[ESI+EBX]
  64. 0057688F   C1E8 02          SHR EAX,2
  65. 00576892   8A80 98925900    MOV AL,BYTE PTR DS:[EAX+599298]
  66. 00576898   88443D 00        MOV BYTE PTR SS:[EBP+EDI],AL
  67. 0057689C   8A041E           MOV AL,BYTE PTR DS:[ESI+EBX]
  68. 0057689F   24 03            AND AL,3
  69. 005768A1   25 FF000000      AND EAX,0FF
  70. 005768A6   C1E0 04          SHL EAX,4
  71. 005768A9   8A80 98925900    MOV AL,BYTE PTR DS:[EAX+599298]
  72. 005768AF   88443D 01        MOV BYTE PTR SS:[EBP+EDI+1],AL
  73. 005768B3   C6443D 02 3D     MOV BYTE PTR SS:[EBP+EDI+2],3D
  74. 005768B8   C6443D 03 3D     MOV BYTE PTR SS:[EBP+EDI+3],3D
  75. 005768BD   EB 51            JMP SHORT programma.00576910
  76. 005768BF   33C0             XOR EAX,EAX
  77. 005768C1   8A041E           MOV AL,BYTE PTR DS:[ESI+EBX]
  78. 005768C4   C1E8 02          SHR EAX,2
  79. 005768C7   8A80 98925900    MOV AL,BYTE PTR DS:[EAX+599298]
  80. 005768CD   88443D 00        MOV BYTE PTR SS:[EBP+EDI],AL
  81. 005768D1   8A041E           MOV AL,BYTE PTR DS:[ESI+EBX]
  82. 005768D4   24 03            AND AL,3
  83. 005768D6   25 FF000000      AND EAX,0FF
  84. 005768DB   C1E0 04          SHL EAX,4
  85. 005768DE   33D2             XOR EDX,EDX
  86. 005768E0   8A541E 01        MOV DL,BYTE PTR DS:[ESI+EBX+1]
  87. 005768E4   C1EA 04          SHR EDX,4
  88. 005768E7   03C2             ADD EAX,EDX
  89. 005768E9   8A80 98925900    MOV AL,BYTE PTR DS:[EAX+599298]
  90. 005768EF   88443D 01        MOV BYTE PTR SS:[EBP+EDI+1],AL
  91. 005768F3   8A441E 01        MOV AL,BYTE PTR DS:[ESI+EBX+1]
  92. 005768F7   24 0F            AND AL,0F
  93. 005768F9   25 FF000000      AND EAX,0FF
  94. 005768FE   C1E0 02          SHL EAX,2
  95. 00576901   8A80 98925900    MOV AL,BYTE PTR DS:[EAX+599298]
  96. 00576907   88443D 02        MOV BYTE PTR SS:[EBP+EDI+2],AL
  97. 0057690B   C6443D 03 3D     MOV BYTE PTR SS:[EBP+EDI+3],3D
  98. 00576910   8B0424           MOV EAX,DWORD PTR SS:[ESP]
  99. 00576913   83C0 02          ADD EAX,2
  100. 00576916   B9 03000000      MOV ECX,3
  101. 0057691B   99               CDQ
  102. 0057691C   F7F9             IDIV ECX
  103. 0057691E   C1E0 02          SHL EAX,2
  104. 00576921   5A               POP EDX
  105. 00576922   5D               POP EBP
  106. 00576923   5F               POP EDI
  107. 00576924   5E               POP ESI
  108. 00576925   5B               POP EBX
  109. 00576926   C3               RETN


Примеры зашифрованного:

1 nQ==
2 ng==
3 nw==
4 mA==
a WA==
b RA==
c XQ==
d Tg==
12 nTU=
123 nTUJ
1234 nTUJAQ==
12345 nTUJAYY=
123456 nTUJAYYh
1234567 nTUJAYYh/A==
12345678 nTUJAYYh/H4=
321 nzUL

Какой тип шифрования задействован?




Ранг: 307.9 (мудрец), 196thx
Активность: 0.180
Статус: Участник

Создано: 31 мая 2011 04:19
· Личное сообщение · #2

Что говорит KANAL (любой другой crypto/hash сканнер) ? На глаз - похоже (исходя из примера, код не смотрел) на модифицированный CRC+Base64.

-----
Don_t hate the cracker - hate the code.




Ранг: 51.8 (постоянный), 58thx
Активность: 0.03=0.03
Статус: Участник

Создано: 31 мая 2011 07:10
· Личное сообщение · #3

Алгоритм - чистое Base64 кодирование. Если по адресу 599298 будут A..Za..z0..9+/, то выход стандартный. Раз здесь нестандартный - видимо, символы в кодовой таблице перемешаны.

| Сообщение посчитали полезным: DimitarSerg, suratiy


Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 31 мая 2011 10:27
· Личное сообщение · #4

Да, base64 с кастомной таблицей символов

-----
Yann Tiersen best and do not fuck




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 31 мая 2011 10:57
· Личное сообщение · #5

Сравниваем раскодировку чистого base64 для 123 и 321. Видим что код зависит от места. Анализировать лениво да и полного исходника нет - скорее всего XOR со строкой из нескольких байт и потом base64.
Строка в хексе начинается на AC073A35B317CB46, но надо проверять.



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

Создано: 31 мая 2011 11:33 · Поправил: suratiy
· Личное сообщение · #6

Code:
  1. 00599298  41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50  ABCDEFGHIJKLMNOP
  2. 005992A8  51 52 53 54 55 56 57 58 59 5A 61 62 63 64 65 66  QRSTUVWXYZabcdef
  3. 005992B8  67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76  ghijklmnopqrstuv
  4. 005992C8  77 78 79 7A 30 31 32 33 34 35 36 37 38 39 2B 2F  wxyz0123456789+/


Так же как и в стандартном, но на выходе получается совсем другое.

Просканил .exe x3chun's Crypto Searcher, он согласился, что тут BASE64.



Ранг: 51.8 (постоянный), 58thx
Активность: 0.03=0.03
Статус: Участник

Создано: 31 мая 2011 13:21
· Личное сообщение · #7

Строка 12345678 преобразуется в MTIzNDU2Nzg= , как и положено в обыкновенном Base64. Откуда в первом посте взялось nTUJAYYh/H4= ?



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

Создано: 31 мая 2011 15:21 · Поправил: suratiy
· Личное сообщение · #8

Code:
  1. 01ED90A8  6E 54 55 4A 41 59 59 68 2F 48 34 3D              nTUJAYYh/H4=
  2. 01ED4058  31 32 33 34 35 36 37 38                          12345678


Еще раз и точно.




Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 31 мая 2011 15:42
· Личное сообщение · #9

Prober пишет:
Строка 12345678 преобразуется в MTIzNDU2Nzg= , как и положено в обыкновенном Base64. Откуда в первом посте взялось nTUJAYYh/H4= ?


PE_Kill пишет:
Да, base64 с кастомной таблицей символов




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

Создано: 31 мая 2011 16:48
· Личное сообщение · #10

ToBad пишет:
Prober пишет:
Строка 12345678 преобразуется в MTIzNDU2Nzg= , как и положено в обыкновенном Base64. Откуда в первом посте взялось nTUJAYYh/H4= ?

PE_Kill пишет:
Да, base64 с кастомной таблицей символов


Только таблица вроде как самая обычная.



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 31 мая 2011 18:09
· Личное сообщение · #11

Программу может выложите? А то всё обычно, а результат необычный ))) Может быть происходит склейка с 12345678 и поэтому результат другой.



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 31 мая 2011 18:18
· Личное сообщение · #12

До base64 еще какая-то операция вполняется т.к.:
MTIzNDU2Nzg=
nTUJAYYh/H4=
Если приглядеться - во второй строке YY, если бы просто был изменен алфавит, то и в оригинале повтор символа был, только другого



Ранг: 51.8 (постоянный), 58thx
Активность: 0.03=0.03
Статус: Участник

Создано: 31 мая 2011 18:36
· Личное сообщение · #13

suratiy пишет:
Только таблица вроде как самая обычная.

Результат тоже самый обычный, никакого nTUJAYYh/H4= там нет. Если кто сомневается - скомпилируйте процедуру из 1-го поста и попробуйте, делов на 10 минут.



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

Создано: 31 мая 2011 18:56 · Поправил: suratiy
· Личное сообщение · #14

Prober пишет:
suratiy пишет:
Только таблица вроде как самая обычная.
Результат тоже самый обычный, никакого nTUJAYYh/H4= там нет. Если кто сомневается - скомпилируйте процедуру из 1-го поста и попробуйте, делов на 10 минут.


Т.е. я сам все это придумал?

з.ы. Да и что бы оно заработало недостаточно только скомпилировать процедуру из 1-го поста.

Прикладываю нормальную процедуру кодирования Base64
Code:
  1. 00201020  /$ 55             PUSH EBP
  2. 00201021  |. 8BEC           MOV EBP,ESP
  3. 00201023  |. 53             PUSH EBX
  4. 00201024  |. 56             PUSH ESI
  5. 00201025  |. 57             PUSH EDI
  6. 00201026  |. 8BF2           MOV ESI,EDX
  7. 00201028  |. 8BF9           MOV EDI,ECX
  8. 0020102A  |. 57             PUSH EDI
  9. 0020102B  |. 8B4D 08        MOV ECX,DWORD PTR SS:[EBP+8]
  10. 0020102E  |. BB 00302000    MOV EBX,base64_c.00203000                ; ASCII "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
  11. 00201033  |> 83F9 04        /CMP ECX,4
  12. 00201036  |. 72 25          |JB SHORT base64_c.0020105D
  13. 00201038  |. 83E9 03        |SUB ECX,3
  14. 0020103B  |. AD             |LODS DWORD PTR DS:[ESI]
  15. 0020103C  |. 4E             |DEC ESI
  16. 0020103D  |. 0FC8           |BSWAP EAX
  17. 0020103F  |. C1C0 06        |ROL EAX,6
  18. 00201042  |. 24 3F          |AND AL,3F
  19. 00201044  |. D7             |XLAT BYTE PTR DS:[EBX+AL]
  20. 00201045  |. AA             |STOS BYTE PTR ES:[EDI]
  21. 00201046  |. C1C0 06        |ROL EAX,6
  22. 00201049  |. 24 3F          |AND AL,3F
  23. 0020104B  |. D7             |XLAT BYTE PTR DS:[EBX+AL]
  24. 0020104C  |. AA             |STOS BYTE PTR ES:[EDI]
  25. 0020104D  |. C1C0 06        |ROL EAX,6
  26. 00201050  |. 24 3F          |AND AL,3F
  27. 00201052  |. D7             |XLAT BYTE PTR DS:[EBX+AL]
  28. 00201053  |. AA             |STOS BYTE PTR ES:[EDI]
  29. 00201054  |. C1C0 06        |ROL EAX,6
  30. 00201057  |. 24 3F          |AND AL,3F
  31. 00201059  |. D7             |XLAT BYTE PTR DS:[EBX+AL]
  32. 0020105A  |. AA             |STOS BYTE PTR ES:[EDI]
  33. 0020105B  |.^EB D6          \JMP SHORT base64_c.00201033
  34. 0020105D  |> 8BD1           MOV EDX,ECX
  35. 0020105F  |> 49             /DEC ECX
  36. 00201060  |. 7C 06          |JL SHORT base64_c.00201068
  37. 00201062  |. AC             |LODS BYTE PTR DS:[ESI]
  38. 00201063  |. C1E0 08        |SHL EAX,8
  39. 00201066  |.^EB F7          \JMP SHORT base64_c.0020105F
  40. 00201068  |> 8BCA           MOV ECX,EDX
  41. 0020106A  |. 83E9 03        SUB ECX,3
  42. 0020106D  |. F7D9           NEG ECX
  43. 0020106F  |. 8BD1           MOV EDX,ECX
  44. 00201071  |> 49             /DEC ECX
  45. 00201072  |. 7C 05          |JL SHORT base64_c.00201079
  46. 00201074  |. C1E0 08        |SHL EAX,8
  47. 00201077  |.^EB F8          \JMP SHORT base64_c.00201071
  48. 00201079  |> C1C0 06        ROL EAX,6
  49. 0020107C  |. 24 3F          AND AL,3F
  50. 0020107E  |. D7             XLAT BYTE PTR DS:[EBX+AL]
  51. 0020107F  |. AA             STOS BYTE PTR ES:[EDI]
  52. 00201080  |. C1C0 06        ROL EAX,6
  53. 00201083  |. 24 3F          AND AL,3F
  54. 00201085  |. D7             XLAT BYTE PTR DS:[EBX+AL]
  55. 00201086  |. AA             STOS BYTE PTR ES:[EDI]
  56. 00201087  |. C1C0 06        ROL EAX,6
  57. 0020108A  |. 24 3F          AND AL,3F
  58. 0020108C  |. D7             XLAT BYTE PTR DS:[EBX+AL]
  59. 0020108D  |. AA             STOS BYTE PTR ES:[EDI]
  60. 0020108E  |. C1C0 06        ROL EAX,6
  61. 00201091  |. 24 3F          AND AL,3F
  62. 00201093  |. D7             XLAT BYTE PTR DS:[EBX+AL]
  63. 00201094  |. AA             STOS BYTE PTR ES:[EDI]
  64. 00201095  |. 2BFA           SUB EDI,EDX
  65. 00201097  |. B0 3D          MOV AL,3D
  66. 00201099  |. 8BCA           MOV ECX,EDX
  67. 0020109B  |. F2:AA          REPNE STOS BYTE PTR ES:[EDI]
  68. 0020109D  |. B0 00          MOV AL,0
  69. 0020109F  |. AA             STOS BYTE PTR ES:[EDI]
  70. 002010A0  |. 58             POP EAX
  71. 002010A1  |. 2BC7           SUB EAX,EDI
  72. 002010A3  |. F7D8           NEG EAX
  73. 002010A5  |. 48             DEC EAX
  74. 002010A6  |. 5F             POP EDI
  75. 002010A7  |. 5E             POP ESI
  76. 002010A8  |. 5B             POP EBX
  77. 002010A9  |. 5D             POP EBP
  78. 002010AA  \. C2 0400        RETN 4
  79.  




Ранг: 51.8 (постоянный), 58thx
Активность: 0.03=0.03
Статус: Участник

Создано: 31 мая 2011 19:22
· Личное сообщение · #15

suratiy пишет:
Т.е. я сам все это придумал?

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

suratiy пишет:
что бы оно заработало недостаточно только скомпилировать процедуру из 1-го поста.

В 1-ом посте не хватало кодовой таблицы, ниже она появилась и выяснилось, что она стандартная. Процедура вполне самодостаточная, с ее параметрами тоже всё понятно. Не вижу проблем с компиляцией и проверкой.



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

Создано: 31 мая 2011 19:29
· Личное сообщение · #16

Prober пишет:
Нет, не думаю. Но ты выложил отдельный кусок, я вижу только его, и ничего более, и говорю только про него.


Я выложил весь кусок, ответственный за шифрование.



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 31 мая 2011 19:29 · Поправил: tihiy_grom
· Личное сообщение · #17

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




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 31 мая 2011 21:22
· Личное сообщение · #18

Prober прав, я скомпилил выложенный кусок:

Code:
  1. const
  2.   szAlf: array [0..63] of AnsiChar = (
  3.     'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
  4.     'P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d',
  5.     'e','f','g','h','i','j','k','l','m','n','o','p','q','r','s',
  6.     't','u','v','w','x','y','z','0','1','2','3','4','5','6','7',
  7.     '8','9','+','/'
  8.   );
  9. function base64encode(Src: PByte; Dst: PByte; SrcLen: DWord): Integer; assembler;
  10. asm
  11.   PUSH EBX
  12.   PUSH ESI
  13.   PUSH EDI
  14.   PUSH EBP
  15.   PUSH ECX
  16.   MOV DWORD PTR SS:[ESP],ECX
  17.   MOV ESI,EAX
  18.   MOV EBP,EDX
  19.   XOR EBX,EBX
  20.   XOR EDI,EDI
  21.   MOV EAX,DWORD PTR SS:[ESP]
  22.   MOV ECX,3
  23.   CDQ
  24.   IDIV ECX
  25.   TEST EAX,EAX
  26.   JLE @L_00576874
  27. @L_005767F7:
  28.   XOR EDX,EDX
  29.   MOV DL,BYTE PTR DS:[ESI+EBX]
  30.   SHR EDX,2
  31.   MOV DL,BYTE PTR DS:[EDX+szAlf]
  32.   MOV BYTE PTR SS:[EBP+EDI],DL
  33.   MOV DL,BYTE PTR DS:[ESI+EBX]
  34.   AND DL,3
  35.   AND EDX,0FFh
  36.   SHL EDX,4
  37.   XOR ECX,ECX
  38.   MOV CL,BYTE PTR DS:[ESI+EBX+1]
  39.   SHR ECX,4
  40.   ADD EDX,ECX
  41.   PUSH DWORD PTR DS:[EDX+szAlf]
  42.   POP EDX
  43.   MOV BYTE PTR SS:[EBP+EDI+1],DL
  44.   MOV DL,BYTE PTR DS:[ESI+EBX+1]
  45.   AND DL,0Fh
  46.   AND EDX,0FFh
  47.   SHL EDX,2
  48.   XOR ECX,ECX
  49.   MOV CL,BYTE PTR DS:[ESI+EBX+2]
  50.   SHR ECX,6
  51.   ADD EDX,ECX
  52.   PUSH DWORD PTR DS:[EDX+szAlf]
  53.   POP EDX
  54.   MOV BYTE PTR SS:[EBP+EDI+2],DL
  55.   MOV DL,BYTE PTR DS:[ESI+EBX+2]
  56.   AND DL,3Fh
  57.   AND EDX,0FFh
  58.   MOV DL,BYTE PTR DS:[EDX+szAlf]
  59.   MOV BYTE PTR SS:[EBP+EDI+3],DL
  60.   ADD EDI,4
  61.   ADD EBX,3
  62.   DEC EAX
  63.   JNZ @L_005767F7
  64. @L_00576874:
  65.   MOV EAX,DWORD PTR SS:[ESP]
  66.   MOV ECX,3
  67.   CDQ
  68.   IDIV ECX
  69.   DEC EDX
  70.   JE @L_0057688A
  71.   DEC EDX
  72.   JE @L_005768BF
  73.   JMP @L_00576910
  74. @L_0057688A:
  75.   XOR EAX,EAX
  76.   MOV AL,BYTE PTR DS:[ESI+EBX]
  77.   SHR EAX,2
  78.   MOV AL,BYTE PTR DS:[EAX+szAlf]
  79.   MOV BYTE PTR SS:[EBP+EDI],AL
  80.   MOV AL,BYTE PTR DS:[ESI+EBX]
  81.   AND AL,3
  82.   AND EAX,0FFh
  83.   SHL EAX,4
  84.   MOV AL,BYTE PTR DS:[EAX+szAlf]
  85.   MOV BYTE PTR SS:[EBP+EDI+1],AL
  86.   MOV BYTE PTR SS:[EBP+EDI+2],3Dh
  87.   MOV BYTE PTR SS:[EBP+EDI+3],3Dh
  88.   JMP @L_00576910
  89. @L_005768BF:
  90.   XOR EAX,EAX
  91.   MOV AL,BYTE PTR DS:[ESI+EBX]
  92.   SHR EAX,2
  93.   MOV AL,BYTE PTR DS:[EAX+szAlf]
  94.   MOV BYTE PTR SS:[EBP+EDI],AL
  95.   MOV AL,BYTE PTR DS:[ESI+EBX]
  96.   AND AL,3
  97.   AND EAX,0FFh
  98.   SHL EAX,4
  99.   XOR EDX,EDX
  100.   MOV DL,BYTE PTR DS:[ESI+EBX+1]
  101.   SHR EDX,4
  102.   ADD EAX,EDX
  103.   MOV AL,BYTE PTR DS:[EAX+szAlf]
  104.   MOV BYTE PTR SS:[EBP+EDI+1],AL
  105.   MOV AL,BYTE PTR DS:[ESI+EBX+1]
  106.   AND AL,0Fh
  107.   AND EAX,0FFh
  108.   SHL EAX,2
  109.   MOV AL,BYTE PTR DS:[EAX+szAlf]
  110.   MOV BYTE PTR SS:[EBP+EDI+2],AL
  111.   MOV BYTE PTR SS:[EBP+EDI+3],3Dh
  112. @L_00576910:
  113.   MOV EAX,DWORD PTR SS:[ESP]
  114.   ADD EAX,2
  115.   MOV ECX,3
  116.   CDQ
  117.   IDIV ECX
  118.   SHL EAX,2
  119.   POP EDX
  120.   POP EBP
  121.   POP EDI
  122.   POP ESI
  123.   POP EBX
  124. end;


Дергаем для '1':
Code:
  1. var
  2.   Src, Dst: array [0..255] of AnsiChar;
  3. begin
  4.   Src := '1';
  5.   base64encode(@Src[0], @Dst[0], 1);
  6.   ShowMessage(String(Dst));
  7. end;


Получаем MQ==

Так что это чистый base64, а suratiy либо неправильно вопрос задал, либо потешается над нами.

-----
Yann Tiersen best and do not fuck




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

Создано: 31 мая 2011 21:50 · Поправил: suratiy
· Личное сообщение · #19

Нет, не потешаюсь. Вопрос тоже был правильным.
Не могу найти в чем фишка)

Вроде все кодирование в этом участке кода, но при этом... вообщем я что то пропустил.



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 31 мая 2011 22:20
· Личное сообщение · #20

Либо выкладывай прогу, либо смотри что за данные приходят на вход этой процедуре



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 02 июня 2011 16:34 · Поправил: tundra37
· Личное сообщение · #21

suratiy Я же написал алгоритм. Перед запуском base64 строка ксорится "мусором"...
Или сам ищи или выложи штук десять образцов для 8-ми или более символов - разных а не только 123.... Я проверю.
Проверять твои образцы нет смысла, т.к. строка для ксора может строится и из исходной строки,
хотя 321 вроде это опровергает, но нужен еще материал.


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


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