Сообщений: 357
Тем: 58
Зарегистрирован: Jan 2016
Репутация:
116
Вопрос в том как получить адрес начала инструкции функции?
Так как делаю я меня не устраивает ибо по получаемому мною адресу лежит команда jmp на начало инструкции,а не сама инструкция.
Сообщений: 26
Тем: 2
Зарегистрирован: Apr 2016
Привет, Возможно поможет снеговик ( snowman )
Нажмешь как поставишь его в иду F3 и получишь то что на скриншоте
с началом адреса инструкции , и куда ( если есть ) идет переход , прыжок в данном примере jmp.
ps возможно пригодиться, если правильно понимаю вопрос.
Сообщений: 561
Тем: 44
Зарегистрирован: Sep 2011
Репутация:
412
Если нужно вычислить адрес куда ведет этот переход то я считаю так:
PHP код:
<?php
unsigned int calcRealAddr(unsigned char *addr)
{
if (*addr == 0xE9)//код оператора JMP
{
//jmp operand found, calc jump addr
unsigned int jmpAddr = (unsigned int)addr + (*(int*)((unsigned int)addr + 1)) + 5;
return calcRealAddr((unsigned char*)jmpAddr);
}
return (unsigned int)addr;
}
Причем функция рекурсивная. Если по адресу перехода будет опять jmp будет считать дальше.