анализ заголовка DAT-файла

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
WadimZapara
Активист
Сообщения: 181
Зарегистрирован: 11 Июнь 2008, 12:11
Откуда: Тамбов

анализ заголовка DAT-файла

Сообщение WadimZapara »

Почти (зы: самому не нравится словцо) сделал функцию чтения и анализа заголовка DAT-файла клары.
Не достаёт информации, где спрятано:
1. флаг, что MEMO BINARY
2. флаг OEM
3. алгоритм расшифровки

Подскажите, добры люди...
Компьютер имеет то преимущество перед мозгом, что им пользуются...
Igor
Бывалый
Сообщения: 75
Зарегистрирован: 08 Июль 2005, 11:03
Откуда: Королев

Re: анализ заголовка DAT-файла

Сообщение Igor »

Здается мне что свойства
1. флаг, что MEMO BINARY
2. флаг OEM
передаются драйверу Клары из проги и к заголовку не имеют никакого отношения.
Аватара пользователя
WadimZapara
Активист
Сообщения: 181
Зарегистрирован: 11 Июнь 2008, 12:11
Откуда: Тамбов

Re: анализ заголовка DAT-файла

Сообщение WadimZapara »

Заголовок кларион=dat-файла анализируется с ограничениями, связанными с оставшимися открытыми вопросами:
1. BINARY для MEMO - где в файле ?
2. алгоритм расшифровки для ENCRYPT ?
Компьютер имеет то преимущество перед мозгом, что им пользуются...
Igor
Бывалый
Сообщения: 75
Зарегистрирован: 08 Июль 2005, 11:03
Откуда: Королев

Re: анализ заголовка DAT-файла

Сообщение Igor »

Из документации описания структуры
struct {
unsigned filesig; /* file signature */
unsigned sfatr; /* file attribute and status */
unsigned char numbkeys;/* number of keys in file */
unsigned long numrecs;/* number of records in file */
unsigned long numdels;/* number of deleted records */
unsigned numflds; /* number of fields */
unsigned numpics; /* number of pictures */
unsigned nummars; /* number of array descriptors */
unsigned reclen; /* record length (including record header) */
unsigned long offset;/* start of data area */
unsigned long logoef;/* logical end of file */
unsigned long logbof;/* logical beginning of file */
unsigned long freerec;/* first usable deleted record */
unsigned char recname[12];/* record name without prefix */
unsigned char memnam[12];/* memo name without prefix */
unsigned char filpre[3];/* file name prefix */
unsigned char recpre[3];/* record name prefix */
unsigned memolen; /* size of memo */
unsigned memowid; /* column width of memo */
unsigned long reserved;/* reserved */
unsigned long chgtime;/* time of last change */
unsigned long chgdate;/* date of last change */
unsigned reserved2;/* reserved */
{;


The file attribute field (sfatr) is a 2-byte field.
Currently, only the lower 8 bits are used.


bit 0 - file is locked
bit 1 - file is owned
bit 2 - records are encrypted
bit 3 - memo file exists
bit 4 - file is compressed
bit 5 - reclaim deleted records
bit 6 - file is read only
bit 7 - file may be created

Теперь про расшифровку.

Если bit 2 TRUE то файл зашифрован. (первые 4 байта не шифруются).
Для шифрования используется 2-х байтовая маска и XOR-шифрование .
Пока про самый простой способ попробовать найти маску .
Надо считать последние 2 байта из struct.recname[12].
В незашифрованном виде там должны быть два пробела (если их не изменили ручками).
Сделав XOR с двумя пробелами получим маску. Далее начиная с struct.numbkeys читаем
по 2 байта и применяем XOR . Должны получиться расшифрованные данные заголовка.
Для данных аналогично.
Аватара пользователя
WadimZapara
Активист
Сообщения: 181
Зарегистрирован: 11 Июнь 2008, 12:11
Откуда: Тамбов

Re: анализ заголовка DAT-файла

Сообщение WadimZapara »

спасибо. помогло
Компьютер имеет то преимущество перед мозгом, что им пользуются...
Ответить