- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
execute = 0
i = 100
while i < $
load a byte from i
if a = 0xc3
execute = i
i = $
else
i = i + 1
end if
end while
if execute = 0
display "ret not found", 13, 10
execute = $
ret
end if
3oJloTou_neTyx 01.01.2019 22:07 # −1
hersgori 01.01.2019 23:47 # +1
HoBorogHuu_nemyx 02.01.2019 10:48 # 0
3oJloTou_neTyx 02.01.2019 11:08 # 0
guest8 02.01.2019 12:26 # −999
Ksyrx 06.01.2019 07:41 # 0
я смотрел в интернете
guest8 14.07.2019 03:05 # −999
TEH3OPHblu_nemyx 14.07.2019 03:51 # 0
guest8 14.07.2019 03:53 # −999
TEH3OPHblu_nemyx 14.07.2019 04:53 # 0
guest8 14.07.2019 04:56 # −999
TEH3OPHblu_nemyx 15.07.2019 08:55 # 0
bormand 06.01.2019 12:26 # 0
gpyrou_nemyx 06.01.2019 13:35 # 0
HoBorogHuu_nemyx 06.01.2019 13:53 # +2
Ещё можно попытаться найти C3 в байте mod R/M (в 32- или в 64-битном режиме ещё и в s-i-b).
C3 расшифровывается как reg = AX (AL/EAX/RAX); r/m = BX (BL/EBX/RBX). Т. е. оба аргумента в регистрах, без ссылок на память. Это, например, MOV AX, BX (в одной кодировке) или MOV BX, AX (в другой кодировке).
Для байта s-i-b C3 означает base = EBX (RBX), index = EAX (RAX), scale = 3, итого [EBX+EAX*8].
gpyrou_nemyx 06.01.2019 14:10 # 0
guest8 27.06.2019 12:21 # −999
HoBorogHuu_nemyx 06.01.2019 14:14 # +1
1. MOV R/M, reg
Пример: 89 C3 = MOV BX, AX
Другой ассемблер эту же инструкцию (MOV BX, AX) может закодировать как 8B D8.
2. MOV reg, R/M
Пример: 8B C3 = MOV AX, BX
Другой ассемблер эту же инструкцию (MOV AX, BX) может закодировать как 89 D8.
Опасно, правда?
Есть инструкции, имеющие единственную кодировку. Например, в которых вместо одного из аргументов используются специальные регистры.
8C C3 = MOV BX, ES
8E C3 = MOV ES, BX
gpyrou_nemyx 06.01.2019 14:24 # 0
HoBorogHuu_nemyx 06.01.2019 14:32 # +1
В общем, если ты пишешь BIOS для машины, на которой будет запускаться 64-битная Windows, то при такой ручной сборке HAL.DLL может сглючить. В остальных случаях можешь смело использовать.
gpyrou_nemyx 06.01.2019 14:49 # 0
HoBorogHuu_nemyx 06.01.2019 14:26 # 0
gpyrou_nemyx 06.01.2019 14:35 # 0