Здравствуйте, drVanо, Вы писали:
Сразу скажу очень, хорошо, что вы (и другие) подключились, к проекту, ведь, как я сразу написал, я сделал только то что мне конкретно было надо.
V>Обработка исключений на пересобранном бинарнике проверялась?
Для моей задачи, для того образа, который мне необходимо было обработать, исключения в нем были запрещены для использования.
V>P.S. Я вам по секрету скажу, что парсинга RUNTIME_FUNCTION для этого совершенно недостаточно, оттуда растет еще много чего интересного, и явные ссылки в виде релоков там отсутствуют напрочь.
Парсинг таблиц функций, там делается по сути только для того чтобы их воспроизвести в новом образе и для того чтобы эти функции обнаружить, если нет PDB данных. То есть они частично переезжают в новый как есть, частично ну в том объеме в котором эти функции включатся в новый. Если фрагмент старого кода выбрасывается, то и в таблицу они не перенесутся.
V>P.P.S. В исходниках сходу на нашел обработку SWITCH + JMP таблиц для них. Как это дело у вас перестраивается?
Обрабатываются как перекрестная ссылка из данных. Да, кстати, да там есть небольшая проблема, но если она встретится, и в результате ЭМУЛЯЦИИ ВЫПОЛНЕНИЯ КОДА, значения регистра вычислить не удастся то работа будет остановлена. "Ну не смогла я...." Да так бывает. Для таких случаев надо брать и править код и пушить.