Показать сообщение отдельно
Непрочитано 25.08.2016, 20:59   #3
Пользователь

По умолчанию Re: [C++] Получение адреса функции

Если нужно вычислить адрес куда ведет этот переход то я считаю так:

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 будет считать дальше.
flopix вне форума Ответить с цитированием
Сказали спасибо: