Извиняюсь, напомните пожалуйста как получить смещение байта из ОП в EXEшнике ! Я гружу EXE, нахожу инструкцию в ОП а как ее связать, как ее же найти в EXEшнике ?
Видимо, вопрос о том, как по RVA найти смещение в файле. Надо из целевого VA вычесть базу исполняемого. Таким образом получится RVA. Затем из целевого RVA вычесть RVA начала содержащей байт секции и прибавить смещение этой же секции в файле.
я имею вот это: после загрузки EXEшника: Image Base: 400000 Start Address: 4657dc 01h: - длина инструкции 55h: - opcode Я хочу в этом EXEшнике в файле найти эту инструкцию ! Если не ошибаюсь кто то уже описывал алгоритм - найти не могу...
Описывали много раз. И я описал выше. 657DC -- RVA инструкции. Надо вычесть из него RVA начала секции (описывается в IMAGE_SECTION_HEADER::VirtualAddress) и прибавить физическое смещение в секции (описывается в IMAGE_SECTION_HEADER::PoiterToRawData). Значения можно посмотреть либо в Hex-редакторе, либо PE-редактором, типа PETools.