|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Расшифровать текст записи
Здравствуйте, уважаемые форумчане.
У меня вопрос в следующем: есть бинарный файл, я разобрался в его структуре, есть программа, которая создает эти файлы и может читать(исходника, соответственно, нету, структура не описана). Вот например наименьший кусочек файла: (в Hex виде) Код:
66 A5 67 A3 70 9A 76 AA 67 A5 67 A3 70 9A Структура одной записи: (без дополнительного одного байта, указывающего на длину либо конец строки). Кстати, так и не понял до сих пор тоже, как понять, что строка определенной длины..что здесь используется символ типа #0 или вначале например число, указывающее на длину. Код:
Singature:Byte; // $66 Rating:String; // В данном случае длина = 1, значение = "1" Question:String; // В данном случае длина = 1, значение = "1" Answer:String; // также 1, значение = "1" Value1:String; // 1, значение = "1" Value2:String; // 1, значение = "1" Value3:String; // 1, значение = "1" Value4:String; // 1, значение = "1" т.е. если изобразить правильнее, то для данного кусочка структура такая: Код:
Singature :Byte; Rating :String[2]; Question :String[2]; Answer :String[2]; Value1 :String[2]; Value2 :String[2]; Value3 :String[2]; Value4 :String[1]; // не стоит символ конца! Вот примерно можно увидеть наглядно эту запись немного "приятнее" для глаз: Код:
Исходная: 66 A5 67 A3 70 9A 76 AA 67 A5 67 A3 70 9A а теперь немного структурированнее, смотрим сверху вниз первый столбик, затем на второй столбик, видим что закономерно начинается повторение. 66 A5 67 67 A3 A3 70 70 9A 9A 76 AA 67 A5 т.е. например сделаем, чтобы вопрос(question) был из двух символов "1", тогда имеем уже: Код:
66 A5 67 A3 9F 6B A5 7B 96 76 96 74 9F 6B A5 а исходная(с вопросом, где символ "1" один): 66 A5 67 A3 70 9A 76 AA 67 A5 67 A3 70 9A Очень надеюсь на вашу помощь, т.к. сам пока не могу понять. Если нужны записи другой длины, с другим содержанием или ещё что-то, то скажите. Помогите, пожалуйста разобраться. Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей |
#2
|
|||
|
|||
хотелось бы увидеть что выдаст при Rating='2' и '3'
или длинную строку из одного итого же символа я так понял, сейчас оно вот-так: http://imglink.ru/show-image.php?id=...0b785dacf97ea9 Последний раз редактировалось Pyro, 25.09.2011 в 14:27. |
#3
|
||||
|
||||
Вот
При Rating = '2'
Код:
66 A6 67 A3 70 9A 76 AA 67 A5 67 A3 70 9A Код:
66 A5 67 A3 9F 9A A5 AA 67 A5 67 A3 70 9A 76 AA 67 A5 Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей |
#4
|
|||
|
|||
Цитата:
в xor не шарю, но думается, потом взять из результата посимвольно вычесть '1' и это будет ключ Последний раз редактировалось Pyro, 25.09.2011 в 14:36. |
#5
|
||||
|
||||
Создал файл, где questions ='11111111111111111111' // т.е. 20 единиц.
Код:
66 // signature A5 67 // ratink {questions} A3 9F 9A A5 AA 96 A5 96 A3 9F 9A A5 AA 96 A5 96 A3 9F 9A A5 7B 96 76 // answer 96 74 // val1 9F 6B // val2 A5 7B // val3 96 // val4 Получается хor ключ 8 значный ?! Этот ? Код:
$92 $AE $AB $94 $9B $A7 $94 $A7 146 174 171 148 155 167 148 167 Как тогда правильно восстановить по этому коду исходный ? Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей Последний раз редактировалось Oleg, 25.09.2011 в 15:02. |
#6
|
|||
|
|||
похоже что 8-значный, а xor или что-то ещё чтобы узнать, надо не 111111... а что-то другое подставлять и смотреть как меняется, например интересно глянуть что даст 11111111222222221111111122222222... по 8 тех и этих
|
#7
|
|||
|
|||
или сразу строку 1111112222233333.... итд по 8
|
#8
|
||||
|
||||
вот questions = '11111111222222221111111122222222'
Код:
66 A5 67 A3 9F 9A A5 AA 96 A5 96 // 8 единиц A4 A0 9B A6 AB 97 A6 97 // 8 двоек A3 9F 9A A5 AA 96 A5 96 // 8 единиц A4 A0 9B A6 AB 97 A6 97 // 8 двоек 74 // конец строки 9F 6B A5 7B 96 76 96 74 9F А вот questions = '111111112222222233333333' Код:
66 // sign A5 67 // rat {questions} A3 9F 9A A5 AA 96 A5 96 // 8 единиц A4 A0 9B A6 AB 97 A6 97 // 8 двоек A5 A1 9C A7 AC 98 A7 98 // 8 троек 74 // конец строки 9F 6B A5 7B 96 76 96 74 9F Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей |
#9
|
|||
|
|||
похоже на сложение но может быть и чё другое
что будет, если послать яяяяяяяя? (ord('я') = 255) |
#10
|
||||
|
||||
Наконец-то интересная тема.
Олег, сейчас у меня времени нету ответить, отвечу вечером. Но по том что я, пока что, вижу - это похоже на Ci=(Pi+Kj) mod 256; |
#11
|
||||
|
||||
Цитата:
Цитата:
Код:
66 // sign A5 67 // rat 71 6D 68 73 78 64 73 64 // 8 раз "я" 74 // конец строки 9F 6B A5 7B 96 76 96 74 9F Код:
71 6D 68 73 78 64 73 64 Xor Key: 92 AE AB 94 9B A7 94 A7 Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей Последний раз редактировалось Oleg, 25.09.2011 в 15:42. |
#12
|
|||
|
|||
походу так оно и есть: rnityete
Хорошо бы ещё кусок реальных данных в тему для уверенности Последний раз редактировалось Pyro, 25.09.2011 в 15:52. |
#13
|
||||
|
||||
Цитата:
Код:
66 //sing A5 67 // rat E6 D3 DC E8 99 36 62 53 53 67 4E 61 61 4A 94 5A 57 59 58 // quest 76 // конец AA 67 // answ A5 67 // v1 A3 70 // v2 9A 76 // v3 AA // v4 Спасибо большое, буду пробовать ещё. Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей Последний раз редактировалось Oleg, 25.09.2011 в 16:14. |
#14
|
|||
|
|||
test Сообщение хелп
|
#15
|
||||
|
||||
Спасибо!
Цитата:
Огромнейшее спасибо за помощь. меня немного правда вот эта строка смутила: Код:
char(byte(a[i]) - byte(b[i])) 256-delta эта. Но вроде пока получается, не возникает исключительных ситуаций никаких даже если так. Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей |