Сейчас на форуме: bartolomeo, hgdagon (+6 невидимых)

 eXeL@B —› Программирование —› FILETIME to LONG64
Посл.ответ Сообщение

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

Создано: 27 февраля 2006 20:07
· Личное сообщение · #1

В проге (чужой есть функция, которая делит структуру типа FILETIME на 10.000.000
Подскажите плз, как это реверснуть на С++ либо преобразовать FILETIME к LONG64.



Ранг: 64.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 28 февраля 2006 11:38
· Личное сообщение · #2

MSDN:
The FILETIME structure is a 64-bit value that represents the number of 100-nanosecond intervals since January 1, 1601.

windef.h
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *PFILETIME, *LPFILETIME;

Что именно непонятно в документации?




Ранг: 85.7 (постоянный)
Активность: 0.110
Статус: Участник

Создано: 28 февраля 2006 16:34
· Личное сообщение · #3

de_Generat пишет:
Что именно непонятно в документации?

Язык . Закорючки какие-то

-----
Я фантомас, а ты гавно




Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 28 февраля 2006 16:42
· Личное сообщение · #4

мда. объявлена структура из 2-ух двордов
в инклюдах от масма она выглядит так:
FILETIME STRUCT
dwLowDateTime DWORD ?
dwHighDateTime DWORD ?
FILETIME ENDS



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

Создано: 02 марта 2006 18:40
· Личное сообщение · #5

Разобрался уже
вот примерно так (мож кому пригодится)

DWORD Div_64(DWORD dwHi, DWORD dwLow)
{
DWORD dwRet;
DWORD dwDel = 0x989680;
_asm
{
mov eax, dwLow;
mov edx, dwHi;
div dwDel;
mov dwRet, eax;
}
return dwRet;
}



Ранг: 145.8 (ветеран)
Активность: 0.070
Статус: Участник
www.int3.net

Создано: 03 марта 2006 11:27 · Поправил: NG
· Личное сообщение · #6

de_Generat пишет:
вот примерно так (мож кому пригодится)
[skip]

не совсем корректно.
примерно так:

FILETIME a;
...
{
__int64 b;
b = (__int64(a.dwHighDateTime) << 32) + a.dwLowDateTime;
b /= 10000000;
a.dwHighDateTime = b >> 32;
a.dwLowDateTime = (int)b;
}



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


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