зная адресс куда нужно прыгнуть, перезаписать другой прыжок на свой. Вручную(например в winHEX) перезаписать эти самые пять байт формула нужна
Из целевого адреса вычитаешь адрес изменяемой инструкции (адрес в образе, а не смещение в файле) + 5 байт (это размер call 0xXXXXXXXX). Например, целевой адрес будет 0x401000. Инструкция находится по адресу 0x401010. 0x401010 + 5 = 0x401015. 0x401000 - 0x401015 = -0x15. -0x15 == 0xFFFFFFEB. Это и есть наше смещение. Проверка: 0x401015 + 0xFFFFFFEB = 0x401000. Значит, все верно.
La_plaza Лучше на формулы не полагайся, а на свою голову. По себе знаю, если влом одолеет, то пиши пропало (
Вопросик, не ругайте, если глупый. можно-ли прыгнуть не в метку, а например так cmp ... jz и сразу здесь писать код.
а где бы почитать про то, как вендозный загрузчик запускает PE файл ? т.е не вода, а именно пошаговая работа, чтобы глубже понять что где находится