update readme and add endbr32

This commit is contained in:
mykola2312 2024-08-19 12:03:49 +03:00
parent 261961999c
commit ae99c186e4
3 changed files with 17 additions and 2 deletions

View file

@ -3,3 +3,15 @@
Software to inject .so libraries into running process
For Linux and FreeBSD
## Compnents
blackjack consists of multiple components that are responsible for different tasks.
### blackjack
Hijacks runtime process in order to inject shared objects.
### rtdisasm
KISS robust runtime "disassembler". Used to analyze instructions encoded sizes and find desired instructions for trampolines. No need to bloat it with full-blown disassembler logic like other projects do - one big lookup table is enough for such purposes.

View file

@ -30,7 +30,8 @@ class Instruction:
"CD ib" : 5,
"0F 34" : 6,
"0F 05" : 7,
"F3 0F 1E FA" : 8
"F3 0F 1E FB" : 8,
"F3 0F 1E FA" : 9
}
def __init__(self, ins):
@ -349,6 +350,7 @@ if __name__ == "__main__":
# add custom instructions
groups.append(CustomInstructionGroup([
"F3 0F 1E FB", # endbr32
"F3 0F 1E FA" # endbr64
]))

View file

@ -36,7 +36,8 @@
#define RT_TARGET_INT_N 5 // CD ib
#define RT_TARGET_SYSENTER 6 // 0F 34
#define RT_TARGET_SYSCALL 7 // 0F 05
#define RT_TARGET_ENDBR64 8 // F3 0F 1E FA
#define RT_TARGET_ENDBR32 8 // F3 0F 1E FB
#define RT_TARGET_ENDBR64 9 // F3 0F 1E FA
#define MAX_OPCODE_LEN 4