x86 переходят к адресу

Вы можете попробовать использовать row_number()

select * from
(
select *,row_number() over(partition by cust_id order id desc) rn from tablename
)A where rn=1
7
задан 1201ProgramAlarm 17 April 2019 в 23:22
поделиться

5 ответов

Возможно, потому что это переход на относительный адрес, а компоновщик или загрузчик переместили ваш код. Попробуйте поместить адрес в переменную, а затем выполните:

jmp dword [var]

или, альтернативно:

push 0xbffff994
ret
24
ответ дан 6 December 2019 в 07:28
поделиться

Даниэль Объясняет, почему ваш прыжок не тот, который вы запрограммировали. Это связано с объектными файлами и связыванием.

Если вы хотите перейти к определенному адресу, лучше всего пропатчить переход, используя отладчик или дизассемблер.

0
ответ дан 6 December 2019 в 07:28
поделиться

Трудно определить точный адрес во время компиляции, пробовали ли вы использовать метки? Гораздо более распространено использовать их с jmp.

пример:

start:
 jmp exit

exit:
 ret
0
ответ дан 6 December 2019 в 07:28
поделиться

Я бы порекомендовал использовать шестнадцатеричный редактор и просто изменить значение, если это только одноразовая вещь.

0
ответ дан 6 December 2019 в 07:28
поделиться

В моей системе (gcc версии 4.2.4, Ubuntu) это выглядит нормально на дизассемблере ( Insight):

int main()
{
asm("jmp 0xbffff994"); 
return 0;
};       

результаты дизассемблирования (Insight):

        0x8048344       :                 lea    0x4(%esp),%ecx
-       0x8048348       :               and    $0xfffffff0,%esp
-       0x804834b       :               pushl  -0x4(%ecx)
-       0x804834e       :              push   %ebp
-       0x804834f       :              mov    %esp,%ebp
-       0x8048351       :              push   %ecx
-       0x8048352       :              jmp    0xbffff994
-       0x8048357       :              mov    $0x0,%eax
-       0x804835c       :              pop    %ecx
-       0x804835d       :              pop    %ebp
-       0x804835e       :              lea    -0x4(%ecx),%esp
-       0x8048361       :              ret
0
ответ дан 6 December 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: