Во первых, очень интересная тема(прям дух захватывает))), qak спасибо за ссылочку... :wink:
Прочитал все, подумал ))), насамом деле помойму нада забить на то что ксор двух вторых байтов соседних ключей равен 6D, и иногда 6С. На мой взгляд это не причина, это следствие... Постараюсь объяснить чот я имею ввиду:
Давайте еще раз посмотрим на последовательность из поста QaK'a в котором он впервые предложил делать ксор соседних ключей, НО!!! что очень важно, на время забъем на сами рез-ты ксоров и попробуем взглянуть в другом направлении. У нас там была такая после-ть ключей:
Цитата:
18-F2 0000 3EE3 5487
71-9F 0000 203F 5487
04-F2 0000 5D8E 5487
9D-9F 0000 4352 5487
F0-F2 0000 3EE3 5487
89-9F 0000 203F 5487
DC-F2 0000 5D8E 5487
B5-9F 0000 4352 5487
C8-F2 0000 3EE3 5487
A1-9F 0000 203F 5487
B4-F2 0000 5D8E 5487
CD9F 0000 4352 5487
A0-F2 0000 3EE3 5487
F9-9F 0000 203F 5487
8C-F2 0000 5D8E 5487
E5-9F 0000 4352 5487
78-F3 0000 3EE3 5487
11-9E 0000 203F 5487
64-F3 0000 5D8E 5487
3D-9E 0000 4352 5487
50-F3 0000 3EE3 5487
29-9E 0000 203F 5487
3C-F3 0000 5D8E 5487
55-9E 0000 4352 5487
28-F3 0000 3EE3 5487
41-9E 0000 203F 5487
14-F3 0000 5D8E 5487
|
Приглядевшись можно заметь, что второй байт ключа постоянно чередуется кусками... Вот тут та и вся соль на мой взгляд!
Здесь не один ключ, а два!! используются они по очереди, изменяясь в соответсвии с какойто последовательностью.
Вспомним как нам говорили на физ-ре в школе... На 1-й, 2-й расчитайтесь.... 2-ые три шага вперед... Нада разделить эту последовательность на четные и нечетные члены... то есть в первый список записать 1-й 3-й 5-й 7-й 9-й и т.д. члены, а во второй 2-й 4-й 6-й 8-й 10-й и т.д.:
Нечетные
Цитата:
18-F2 0000 3EE3 5487
04-F2 0000 5D8E 5487
F0-F2 0000 3EE3 5487
DC-F2 0000 5D8E 5487
C8-F2 0000 3EE3 5487
B4-F2 0000 5D8E 5487
A0-F2 0000 3EE3 5487
8C-F2 0000 5D8E 5487
78-F3 0000 3EE3 5487
64-F3 0000 5D8E 5487
50-F3 0000 3EE3 5487
3C-F3 0000 5D8E 5487
28-F3 0000 3EE3 5487
14-F3 0000 5D8E 5487
|
Четные
Цитата:
71-9F 0000 203F 5487
9D-9F 0000 4352 5487
89-9F 0000 203F 5487
B5-9F 0000 4352 5487
A1-9F 0000 203F 5487
CD-9F 0000 4352 5487
F9-9F 0000 203F 5487
E5-9F 0000 4352 5487
11-9E 0000 203F 5487
3D-9E 0000 4352 5487
29-9E 0000 203F 5487
55-9E 0000 4352 5487
41-9E 0000 203F 5487
|
Теперь попробуем сделать только первый байт ХексТоИнт , ведь второй же изменяется гораздо реже, и вычислить значения на которые они изменяются(QaK если это верный путь, то ты бал близок, нада было только разделить последовательность на четные и нечетные члены(на два ключа другими словами)):
Вот что получается с нечетными:
Цитата:
18-F2 0000 3EE3 5487 24
-20
04-F2 0000 5D8E 5487 4
-20 (ведь максимальное значение байта в десятичном представлении 256)
F0-F2 0000 3EE3 5487 240
-20
DC-F2 0000 5D8E 5487 220
-20
C8-F2 0000 3EE3 5487 200
-20
B4-F2 0000 5D8E 5487 180
-20
A0-F2 0000 3EE3 5487 160
-20
8C-F2 0000 5D8E 5487 140
-20
78-F3 0000 3EE3 5487 120 (вот здесь второй байт инкрементируется на еденицу, об этом ниже)
-20
64-F3 0000 5D8E 5487 100
-20
50-F3 0000 3EE3 5487 80
-20
3C-F3 0000 5D8E 5487 60
-20
28-F3 0000 3EE3 5487 40
-20
14-F3 0000 5D8E 5487 20
|
Эххххх, если бы эта цепь была подлиннее можно было бы еще помозговать, а из этой видно лишь одно изменение второго байта "нечетного" ключа(если можно так выразится)...
Главный вопрос у меня,
почему второй байт ключа изменился там где 140 переходит в 120, а не там где 4 переходит в 240 как бы "обнуляя" счетчик. И почему он вообще увеличился, ведь первый байт постоянно уменьшается на 20.
Если произвести те же манипуляции с последовательностью "четных" ключей (с вашего позваления ))), то картинка посложнее получается:
Цитата:
71-9F 0000 203F 5487 113
+44
9D-9F 0000 4352 5487 157
-20
89-9F 0000 203F 5487 137
+44
B5-9F 0000 4352 5487 181
-20
A1-9F 0000 203F 5487 161
+44
CD-9F 0000 4352 5487 205
+44
F9-9F 0000 203F 5487 249
-20
E5-9F 0000 4352 5487 229
+38 (????? вот это странно)
11-9E 0000 203F 5487 11 (9F -> 9E, то есть второй байт тут уменьшается на еденицу, не смотря на то что все изменения первого байта в конечном итоге носят характер прибавления. Но тут хотя бы по всей видимости второй байт меняется при обнулении первого)
+50 (???)
3D-9E 0000 4352 5487 61
-20
29-9E 0000 203F 5487 41
+44
55-9E 0000 4352 5487 85
-20
41-9E 0000 203F 5487 65
|
p.s. а ксор двух вторых байтов соседних ключей равен 6D, это факт... 6С он становится равен тогда, когда у одного из соседних ключей второй байт прибавляется на ед., а у второго еще не успел прибавится.....Опа... я понял почему у "нечетного" ключа второй байт прибавился на ед. при переходе первого с 140 на 120.... Потому что он сменился прям перед тем как сменился второй байт из "четного" ключа, который в свою очередь сменился в тот момент когда проскочил "0" своего первого байта.... ТАААКККССС...
то есть имеем такие свойства действия XOR:
9F xor F2 = 6D
F2 xor 9F = 6D
и если например программа видит что второй байт одного из ключей сменится сейчас на ед., она заблаговременно меняет второй байт второго ключа чтоб рез-тат действия xor оставался 6D, причем если один прибавился на единицу, то другой должен уменьшится для того чтоб рез-тат был 6D:
F2+1 = F3
F3 xor 9F = 6C
9F-1 = 9E
F3 xor 9E = 6D
В случае с 6А один из вторых байтов изменился с 02 на 05 (т.е. +3), поэтому рез-тат xor стал 6А.
Но второй байт другого ключа тут же изменился на сколько? првильно, на -3, и рез-тат опять стал 6D.))
p.s.s. Мне кажется нада забить на рез-таты ксоров, просто нада понимать что имеем дело с комбинацией двух чередующихся ключей которые между собой связаны рядом закономерностей...
(Сорри за такое большое сообщение)
Добавлено спустя 3 часа 52 минуты 19 секунд:
Ребят вы че молчите? Задумались чтоль? )) Отписывайтесь по теме плз..))