У меня не так много опыта работы с отладчиками, потому строго не судите) на рисунке скрин олли с инструкцией CALL и адресом соответственно. мне нужно поменять этот адрес на другой. E8 - это я так понял CALL, а вот оставшиеся 4 байта (выделено красным) какую связь имеют с адресом в CALL (выделенно зеленым)? спасибо!
Адрес относительно инструкции CALL E8 00000000 следующая инструкция B8 00000000 E8 F6FFFFFF предыдущая
>> Адрес относительно инструкции CALL не совсем так, относительно конца инструкции (или адреса начала следующей == eip)
не совсем понятно. приведу пример: адрес: 140B инструкция CALL ... hex: e8 8e 18 02 00 адрес: 22С9E То есть с адреса 140b мы колом попадаем на 22C9E. Какая связь между этими адресами и записью в hex 8e 18 02 00 ?
Код (Text): IF OperandSize = 32 THEN tempEIP < EIP + DEST; (* DEST is rel32 *) IF tempEIP is not within code segment limit THEN #GP(0); FI; IF stack not large enough for a 4-byte return address THEN #SS(0); FI; Push(EIP); EIP < tempEIP; FI; Intel® 64 and IA-32 Architectures Software Developer’s Manual v.2A, p.93.