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 Software to inject .so libraries into running process
For Linux and FreeBSD 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, "CD ib" : 5,
"0F 34" : 6, "0F 34" : 6,
"0F 05" : 7, "0F 05" : 7,
"F3 0F 1E FA" : 8 "F3 0F 1E FB" : 8,
"F3 0F 1E FA" : 9
} }
def __init__(self, ins): def __init__(self, ins):
@ -349,6 +350,7 @@ if __name__ == "__main__":
# add custom instructions # add custom instructions
groups.append(CustomInstructionGroup([ groups.append(CustomInstructionGroup([
"F3 0F 1E FB", # endbr32
"F3 0F 1E FA" # endbr64 "F3 0F 1E FA" # endbr64
])) ]))

View file

@ -36,7 +36,8 @@
#define RT_TARGET_INT_N 5 // CD ib #define RT_TARGET_INT_N 5 // CD ib
#define RT_TARGET_SYSENTER 6 // 0F 34 #define RT_TARGET_SYSENTER 6 // 0F 34
#define RT_TARGET_SYSCALL 7 // 0F 05 #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 #define MAX_OPCODE_LEN 4