Полезна Assembly таблица.
Публикувано на: 04 Яну 2018, 16:39
Много често хората се учат да работят с Asm, а не знаят същност каква големина/колко байта заема всяка инструкция в паметта. (особено тия, които го ползват само за patch с tutorial/готов код и не знаят какво гледат)
Направете switch statement комбиниран с buffer и print функция, за да ползвате тия байтове за debug на някаква част от паметта, съответно да разберете какъв размер трябва да се patch-не, кой байт къде се намира, на кой ред и т.н. без помощта на decompiler.
Направете 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