ВРасчет файлового смещения точки входа в PE файл
http://en.redinskala.com/finding-the-ep/
есть информация о том, как найти файловое смещение точки входа в EXE-файл.
Здесь я могу прочитать, что
EP (Файл) = AddressOfEntryPoint - BaseOfCode + .text [PointerToRawData] + FileAlignment
Однако, когда я вычислял это сам (я использовал несколько разных exe-файлов). Я пришел к выводу, что
Смещение точки входа в EXE-файл = AddressOfEntryPoint + .text [Pointe rToRawData] - .text [VirtualAddress]
Где AddressOfEntryPoint извлекается из IMAGE_OPTIONAL_HEADER и двух других значений из IMAGE_SECTION_HEADER.
Является ли информация на этой веб-странице ложной? Добавление FileAlignment, как будто они кажутся неправильными, это не имеет смысла. Или это? Выравнивание файла предполагает, что я должен использовать modulo или что-то, чтобы вычислить значение. Если BaseOfCode и FileAlignment имеют одинаковое значение (в основном это они), это не помешает их добавить к вычислению, но как это будет иметь смысл?
Мне пришлось бы перечитать спецификацию PE, но добавление выравнивания файлов кажется действительно неправильным. Если неуравновешенное смещение - 'x', я бы пошел на' x - x% FileAlignment'. –