eXTracted INternals

eXTracted INternals
 
ФорумФорум  ЧаВоЧаВо  ПоискПоиск  РегистрацияРегистрация  ПользователиПользователи  ГруппыГруппы  Вход  

Поделиться | 
 

 Вопрос по структуре E32 Image

Предыдущая тема Следующая тема Перейти вниз 
АвторСообщение
Aquarius



Количество сообщений : 5
Дата регистрации : 2008-04-15

СообщениеТема: Вопрос по структуре E32 Image   Чт 1 Май - 23:39

Всем доброго времени суток. Есть вопрос по заголовку исполняемых файлов Symbian 9. Не могу понять как преобразовать штамп времени создания файла (iTimeLo и iTimeHi) в обычный формат (часы, минуты, секунды). Что за алгоритм конвертации используется?
Вернуться к началу Перейти вниз
Посмотреть профиль http://symbiandev.cdtools.net
Hex

avatar

Количество сообщений : 397
Возраст : 35
Дата регистрации : 2006-07-12

СообщениеТема: Re: Вопрос по структуре E32 Image   Пт 2 Май - 13:24

Да там придурошное кодирование времени, я находил в сорцах petran. Завтра постараюсь найти...
Вернуться к началу Перейти вниз
Посмотреть профиль
Aquarius



Количество сообщений : 5
Дата регистрации : 2008-04-15

СообщениеТема: -   Сб 3 Май - 8:15

Ага, нашел в исходниках (в файле pe_tran.cpp) функцию TInt64 timeToTInt64(TInt aTime). Буду разбираться.
Вернуться к началу Перейти вниз
Посмотреть профиль http://symbiandev.cdtools.net
Aquarius



Количество сообщений : 5
Дата регистрации : 2008-04-15

СообщениеТема: -   Пн 5 Май - 1:54

В общем, разобрался, ничего замудреного нет. В зоголовок файла записывается кол-во секунд, прошедших от нуля до текущего времени, умноженное на 1000000.
Пример реализации кода формирования этого числа можно посмотреть в файле pe_tran.cpp.
Время создания файла заносится в заголовок файла так:
Код:
iHeader->iTime=timeToTInt64(time(0));
В данном случае на входе у timeToTInt64 получается время, которое возвращает функция time (кол-во секунд, прошедших с 1 января 1970 00:00).
Код функции timeToTInt64:
Код:
TInt64 timeToTInt64(TInt aTime)
{
aTime-=(30*365*24*60*60+7*24*60*60); // seconds since midnight Jan 1st, 2000 (вычитаем 30 лет от 1970 года, с которого считает функция time)
TInt64 daysTo2000AD=730497;
TInt64 t=daysTo2000AD*24*3600+aTime; // кол-во секунд от 0000 до текущего времени
t=t+3600; // BST (?)
return t*1000000; // milliseconds
}

Сделать обратное преобразование, чтобы узнать время не составит труда.
Вернуться к началу Перейти вниз
Посмотреть профиль http://symbiandev.cdtools.net
Hex

avatar

Количество сообщений : 397
Возраст : 35
Дата регистрации : 2006-07-12

СообщениеТема: Re: Вопрос по структуре E32 Image   Пн 5 Май - 3:43

А точно, это я с CRC перепутал. Время там просто считается, а вот CRC поизвратному.
Вернуться к началу Перейти вниз
Посмотреть профиль
twit



Количество сообщений : 57
Дата регистрации : 2007-07-24

СообщениеТема: Re: Вопрос по структуре E32 Image   Пн 5 Май - 5:13

Это, по идее, формат UNIX time.
http://www.onlineconversion.com/unix_time.htm
А почему в Int64, то в википедии написанно:
Цитата :
19 января 2038 года в 03:14:08 по всемирному времени значение переменной типа time_t, отсчитывающей число секунд, прошедших с 1 января 1970 года, достигнет 2^31, что может привести к ошибочной интерпретации этого числа как отрицательного. Возможное решение данной проблемы состоит в использовании не 32-битной, а 64-битной переменной для хранения времени, чего хватит ещё на 300 миллиардов лет.
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

Количество сообщений : 397
Возраст : 35
Дата регистрации : 2006-07-12

СообщениеТема: Re: Вопрос по структуре E32 Image   Пн 5 Май - 5:16

Ага. он самый. в MSVC он реализуется через time_t.
Вернуться к началу Перейти вниз
Посмотреть профиль
Aquarius



Количество сообщений : 5
Дата регистрации : 2008-04-15

СообщениеТема: -   Пн 5 Май - 9:39

Да, CRC у них замутные. Помню надо было реализовать пересчет UID Checksum в sis-пакете (алгоритм тот же, что и для iUidChecksum в бинарнике), CCITT CRC16, но сосчитать не получалось пока исходник UIDCRC случайно не нашел.
Вернуться к началу Перейти вниз
Посмотреть профиль http://symbiandev.cdtools.net
Спонсируемый контент




СообщениеТема: Re: Вопрос по структуре E32 Image   

Вернуться к началу Перейти вниз
 
Вопрос по структуре E32 Image
Предыдущая тема Следующая тема Вернуться к началу 
Страница 1 из 1
 Похожие темы
-
» Вопрос про парики для далочек
» Кокэси
» Вопрос - ответ
» Вопрос: А кто нить макароны ..
» Меркантильный вопрос или как продать найденные монеты

Права доступа к этому форуму:Вы не можете отвечать на сообщения
eXTracted INternals :: Вопросы и ответы :: Общий форум-
Перейти: