Какова временная метка в c ++ exe (файл IDL в TLB с использованием MIDL)

0

Я анализировал файл, написанный на Microsoft Visual C++ 2012, и нашел строку, т.е. "Создана версией MIDL 7.00.0555 в Сб Сен 20 23:13:16 2014", я понимаю, что это происходит потому, что компилятор MIDL был б/у. версия номер я понимаю. Мой вопрос: что означает дата?

  • 0
    Может быть, когда файл был создан?
Теги:
reverse-engineering

2 ответа

1
Лучший ответ

Как инженер-реверс, я не стал бы доверять строковым буквам типа "дата сборки", которые вы найдете при разборке.

Вы хотите, чтобы TimeDateStamp из заголовка EXE (PE Header). Если вы перейдете на http://msdn.microsoft.com/en-us/library/ms809762.aspx, вы можете увидеть хорошее руководство по тому, какая информация находится в этом заголовке. Вас интересует эта строка под Таблицей 2:

DWORD TimeDateStamp
The time that the linker (or compiler for an OBJ file) produced this file. This field holds the number of seconds since December 31st, 1969, at 4:00 P.M.

Несколько лет назад мне нужно было получить только TimeDateStamp, поэтому я перепробовал этот быстрый (и очень хакерский) C++, который я видел где-то в сети (по крайней мере, я думаю, что я его заимствовал), я мог бы написать его с нуля.. это было слишком долго!) Конечно, эта функция предназначена для вызова из WITHIN исполняемого исполняемого файла... но вы получаете идею:

unsigned int GetExecutableTimestamp()
{
    unsigned int BaseAddress = (unsigned int)GetModuleHandle(0);
    unsigned int dwPos = *(unsigned int*)(BaseAddress+0x3C);
    unsigned int Timestamp = *(unsigned int*)(BaseAddress+dwPos+0x8);
    return Timestamp;
}
  • 0
    Я предполагаю, что даже TimeDateStamp может быть подделан / изменен?
  • 1
    Ну, да, можно изменить что угодно, если вы действительно хотите это сделать. Но, по крайней мере, с TimeDateStamp это будет «активный» взлом / подмена / модификация. В общем, компилятор с наименьшей вероятностью будет создавать измененные значения без активных хаков / подделок. В то время как другие библиотеки / программное обеспечение могут иметь настройки и / или другие значения пользовательского интерфейса, которые можно использовать для создания специальных дат / времени и т. Д. Кроме того, строковые литералы в разборке могут быть созданы за несколько секунд до или после фактического компоновщика / компилятора произвел файл. Вы поднимаете правильную точку; Тем не менее, я думаю, что TDS является лучшим выбором.
Показать ещё 1 комментарий
0

Это дата создания .exe.

  • 0
    Спасибо, но у меня есть 3 exe с разными размерами, которые имеют одинаковую метку времени, тогда как 3 exe могут иметь одинаковое время компиляции?
  • 0
    Если бы это была карта проекта, возможно, они были созданы одновременно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню