Полезна Assembly таблица.

Отговори
Потребителски аватар

Автор на темата
Devil_In_I LoveC++
Потребител
Потребител
Мнения: 18
Регистриран: 16 дек 2017, 12:17
Местоположение: Там

Полезна Assembly таблица.

Мнение от Devil_In_I LoveC++ » 04 яну 2018, 16:39

Много често хората се учат да работят с Asm, а не знаят същност каква големина/колко байта заема всяка инструкция в паметта. (особено тия, които го ползват само за patch с tutorial/готов код и не знаят какво гледат)
Направете switch statement комбиниран с buffer и print функция, за да ползвате тия байтове за debug на някаква част от паметта, съответно да разберете какъв размер трябва да се patch-не, кой байт къде се намира, на кой ред и т.н. без помощта на decompiler.
За тяхно улеснение:

Код: Избери всички

instruction - hex - size
________________________
nop    - 0x90 - 1 byte
________________________
jnz	- 0x75 - 2 bytes
jb	- 0x72 - 2 bytes
test	- 0x84 - 2 bytes
fnstsw  - 0xDF - 2 bytes
jp	- 0x7A - 2 bytes
________________________________
mov	- 0x8B - 2 bytes
Ако байтът след mov отговаря на:
	- 0x5D - 3 bytes
	- 0x35 - 6 bytes
________________________________
xor	- 0x33 - 3 bytes
add	- 0x83 - 3 bytes
test	- 0xF6 - 3 bytes
________________________
push	- 0x68 - 5 bytes
call	- 0xE8 - 5 bytes
jmp	- 0xE9 - 5 bytes
jmp	- 0xEB - 5 bytes
mov	- 0xB8 - 5 bytes
mov	- 0xBF - 5 bytes
mov	- 0xA2 - 5 bytes
________________________
lea 	- 0x8D - 6 bytes
cmp	- 0x81 - 6 bytes
fcmop   - 0xD8 - 6 bytes
fld	- 0xD9 - 6 bytes
jnz	- 0x0F - 6 bytes
________________________
mov	- 0xC6 - 7 bytes
________________________
всички останали байтове:
	      - 1 byte

Отговори

Върни се в “Системно Програмиране”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 1 гост