как в hex виде указать смещение джампа?

zimerfm

Участник
Автор темы
72
7
Версия MoonLoader
Другое
здравствуйте. у меня есть hex код 58 00 06 80 что означает, что джамп будет через 6 опкодов.
вод опкоды:

Код:
000270C0: 0074    0E:IST          0
[ДЖАМП]       000270C4: 0078    58:JMP      0 => 0094
000270C8: 007C    36:GGET     0   7      ; "thisScript"
000270CC: 0080    42:CALL     0   2   1
000270D0: 0084    12:MOV      1   0
000270D4: 0088    39:TGETS    0   0   8  ; "unload"
000270D8: 008C    42:CALL     0   1   2
000270DC: 0090    32:UCLO     0 => 050C
[СЮДА ПРЫЖОК]          000270E0: 0094 => 36:GGET     0   9      ; "refresssssssss"
000270E4: 0098    42:CALL     0   1   1
000270E8: 009C    33:FNEW     0  10      ; palatka.luac:0
000270EC: 00A0    37:GSET     0  11      ; "run_scr"
000270F0: 00A4    36:GGET     0  12      ; "sampRegisterChatCommand"
000270F4: 00A8    36:GGET     1  13      ; "MAIN_CMD"
000270F8: 00AC    36:GGET     2  11      ; "run_scr"
000270FC: 00B0    42:CALL     0   1   3
00027100: 00B4    36:GGET     0  12      ; "sampRegisterChatCommand"
00027104: 00B8    27:KSTR     1  14      ; "tstsl"
00027108: 00BC    33:FNEW     2  15      ; script.luac:0

как вручную писать смещение, если мне нужно прыгнуть, например, через 500 опкодов? я правильно понял? 2 байт - размер шага, 3 байт - кол-во шагов.
и как прыгать назад?


в luajit в качестве второго и третьего байта указывается смещениена кол-во опкодов, а итоговое смещение равно сумме второго и третьего байта. вопрос закрыт
 
Последнее редактирование: