diff --git a/README.md b/README.md index e925c78..70a99a0 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/genc.py b/genc.py index 0883c5d..c32bd52 100644 --- a/genc.py +++ b/genc.py @@ -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 ])) diff --git a/include/rtdisasm_table.h b/include/rtdisasm_table.h index d9a0a03..80298a4 100644 --- a/include/rtdisasm_table.h +++ b/include/rtdisasm_table.h @@ -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