Clean up code
This commit is contained in:
parent
344b45b77b
commit
c9ecc20987
@ -1,14 +1,13 @@
|
|||||||
OUT = patches.8.18
|
OUT = patches.8.18
|
||||||
CC := clang
|
CC = clang
|
||||||
TARGET := x86_64-pc-windows-gnu
|
TARGET = x86_64-pc-windows-gnu
|
||||||
SRC = dllmain.c song_limits.s
|
SRC = dllmain.c
|
||||||
OBJ_NO_PREFIX = dllmain.o song_limits.o
|
OBJ = ${addprefix ../../${TARGET}/plugins/8.18/,${SRC:.c=.o}}
|
||||||
OBJ = ${addprefix ../../${TARGET}/plugins/8.18/,${OBJ_NO_PREFIX}}
|
|
||||||
EXTERN_SRC = src/helpers.c tomlc99/toml.c minhook/src/buffer.c minhook/src/hook.c minhook/src/trampoline.c minhook/src/hde/hde32.c minhook/src/hde/hde64.c
|
EXTERN_SRC = src/helpers.c tomlc99/toml.c minhook/src/buffer.c minhook/src/hook.c minhook/src/trampoline.c minhook/src/hde/hde32.c minhook/src/hde/hde64.c
|
||||||
EXTERN_OBJ = ${addprefix ../../${TARGET}/,${EXTERN_SRC:.c=.o}}
|
EXTERN_OBJ = ${addprefix ../../${TARGET}/,${EXTERN_SRC:.c=.o}}
|
||||||
CFLAGS = -std=c99 -I../../src -I../../minhook/include -I../../tomlc99 -Wall -Ofast -target ${TARGET} -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=_WIN32_WINNT_WIN7
|
CFLAGS = -std=c99 -I../../src -I../../minhook/include -I../../tomlc99 -Wall -Ofast -target ${TARGET} -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=_WIN32_WINNT_WIN7
|
||||||
LDFLAGS := -shared -static -static-libgcc -s
|
LDFLAGS = -shared -static -static-libgcc -s
|
||||||
LIBS := -lmingw32 -luuid -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lsetupapi -lversion
|
LIBS = -lmingw32 -luuid -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lsetupapi -lversion
|
||||||
|
|
||||||
all: options ${OUT}
|
all: options ${OUT}
|
||||||
|
|
||||||
@ -26,10 +25,6 @@ options:
|
|||||||
@echo BUILD $@
|
@echo BUILD $@
|
||||||
@${CC} -c ${CFLAGS} $< -o $@
|
@${CC} -c ${CFLAGS} $< -o $@
|
||||||
|
|
||||||
../../${TARGET}/plugins/8.18/%.o: %.s
|
|
||||||
@echo BUILD $@
|
|
||||||
@${CC} -m64 -masm=intel -Wall -Ofast -target ${TARGET} -c $< -o $@
|
|
||||||
|
|
||||||
.PHONY: ${OUT}
|
.PHONY: ${OUT}
|
||||||
${OUT}: dirs ${OBJ}
|
${OUT}: dirs ${OBJ}
|
||||||
@echo LINK $@
|
@echo LINK $@
|
||||||
|
@ -4,20 +4,11 @@
|
|||||||
const u64 song_data_size = 1024 * 1024 * 64;
|
const u64 song_data_size = 1024 * 1024 * 64;
|
||||||
void *song_data;
|
void *song_data;
|
||||||
|
|
||||||
extern void set_song_data_rdx ();
|
#define RDX_MOV 0x48, 0xBA
|
||||||
extern void set_song_data_r8 ();
|
#define R8_MOV 0x49, 0xB8
|
||||||
|
#define GENERATE_MOV(instruction, location) \
|
||||||
#define GENERATE_CALL(to) \
|
instruction, (u8)(u64)(location), (u8)((u64)(location) >> 8), (u8)((u64)(location) >> 16), (u8)((u64)(location) >> 24), \
|
||||||
0x48, 0xB8, (u8)(u64)(to), (u8)((u64)(to) >> 8), (u8)((u64)(to) >> 16), (u8)((u64)(to) >> 24), (u8)((u64)(to) >> 32), (u8)((u64)(to) >> 40), \
|
(u8)((u64)(location) >> 32), (u8)((u64)(location) >> 40), (u8)((u64)(location) >> 48), (u8)((u64)(location) >> 56)
|
||||||
(u8)((u64)(to) >> 48), (u8)((u64)(to) >> 56), 0xFF, 0xD0
|
|
||||||
|
|
||||||
#define NOPS_NEEDED(start, return_location) WRITE_NOP ((u64)(start) + 12, (u64)(return_location)-1 - (u64)(start)-11)
|
|
||||||
|
|
||||||
#define HOOK_SONG_DATA(function, start_loc, ret_loc, handle) \
|
|
||||||
{ \
|
|
||||||
WRITE_MEMORY (ASLR (start_loc, handle), u8, GENERATE_CALL (function)); \
|
|
||||||
NOPS_NEEDED (ASLR (start_loc, handle), ASLR (ret_loc, handle)); \
|
|
||||||
}
|
|
||||||
|
|
||||||
HOOK_DYNAMIC (u8, __fastcall, qrVtable1, u64 a1) { return 1; }
|
HOOK_DYNAMIC (u8, __fastcall, qrVtable1, u64 a1) { return 1; }
|
||||||
HOOK_DYNAMIC (u8, __fastcall, qrReadFromCOM1, u64 a1) {
|
HOOK_DYNAMIC (u8, __fastcall, qrReadFromCOM1, u64 a1) {
|
||||||
@ -78,26 +69,26 @@ PreInit () {
|
|||||||
memset (song_data, 0, song_data_size);
|
memset (song_data, 0, song_data_size);
|
||||||
|
|
||||||
// Song data
|
// Song data
|
||||||
HOOK_SONG_DATA (set_song_data_r8, 0x140313678, 0x140313685, handle);
|
WRITE_MEMORY (ASLR (0x14031367B, handle), u8, GENERATE_MOV (R8_MOV, song_data));
|
||||||
// Crown data
|
// Crown data
|
||||||
HOOK_SONG_DATA (set_song_data_rdx, 0x1402F3AC2, 0x1402F3AD0, handle);
|
WRITE_MEMORY (ASLR (0x1402F3AC6, handle), u8, GENERATE_MOV (RDX_MOV, song_data));
|
||||||
HOOK_SONG_DATA (set_song_data_rdx, 0x1402F39F8, 0x1402F3A06, handle);
|
WRITE_MEMORY (ASLR (0x1402F39FC, handle), u8, GENERATE_MOV (RDX_MOV, song_data));
|
||||||
HOOK_SONG_DATA (set_song_data_rdx, 0x1402F3BF6, 0x1402F3C04, handle);
|
WRITE_MEMORY (ASLR (0x1402F3BFA, handle), u8, GENERATE_MOV (RDX_MOV, song_data));
|
||||||
HOOK_SONG_DATA (set_song_data_r8, 0x1403140D4, 0x1403140E1, handle)
|
WRITE_MEMORY (ASLR (0x1403140D7, handle), u8, GENERATE_MOV (R8_MOV, song_data));
|
||||||
// Score ranks
|
// Score ranks
|
||||||
HOOK_SONG_DATA (set_song_data_rdx, 0x1403065E6, 0x1403065F4, handle);
|
WRITE_MEMORY (ASLR (0x1403065EA, handle), u8, GENERATE_MOV (RDX_MOV, song_data));
|
||||||
HOOK_SONG_DATA (set_song_data_rdx, 0x14030651A, 0x140306528, handle);
|
WRITE_MEMORY (ASLR (0x14030651E, handle), u8, GENERATE_MOV (RDX_MOV, song_data));
|
||||||
HOOK_SONG_DATA (set_song_data_rdx, 0x14030644E, 0x14030645C, handle);
|
WRITE_MEMORY (ASLR (0x140306452, handle), u8, GENERATE_MOV (RDX_MOV, song_data));
|
||||||
HOOK_SONG_DATA (set_song_data_rdx, 0x1403068A6, 0x1403068B4, handle);
|
WRITE_MEMORY (ASLR (0x1403068AA, handle), u8, GENERATE_MOV (RDX_MOV, song_data));
|
||||||
HOOK_SONG_DATA (set_song_data_rdx, 0x1403067DA, 0x1403067E8, handle);
|
WRITE_MEMORY (ASLR (0x1403067DE, handle), u8, GENERATE_MOV (RDX_MOV, song_data));
|
||||||
HOOK_SONG_DATA (set_song_data_rdx, 0x14030670E, 0x14030671C, handle);
|
WRITE_MEMORY (ASLR (0x140306712, handle), u8, GENERATE_MOV (RDX_MOV, song_data));
|
||||||
HOOK_SONG_DATA (set_song_data_rdx, 0x14030699E, 0x1403069B1, handle);
|
WRITE_MEMORY (ASLR (0x1403069A2, handle), u8, GENERATE_MOV (RDX_MOV, song_data));
|
||||||
// Unknown
|
// Unknown
|
||||||
HOOK_SONG_DATA (set_song_data_rdx, 0x140313752, 0x14031375F, handle);
|
WRITE_MEMORY (ASLR (0x140313755, handle), u8, GENERATE_MOV (RDX_MOV, song_data));
|
||||||
HOOK_SONG_DATA (set_song_data_rdx, 0x140313A08, 0x140313A15, handle);
|
WRITE_MEMORY (ASLR (0x140313A0B, handle), u8, GENERATE_MOV (RDX_MOV, song_data));
|
||||||
HOOK_SONG_DATA (set_song_data_rdx, 0x140313B49, 0x140313B56, handle);
|
WRITE_MEMORY (ASLR (0x140313B4C, handle), u8, GENERATE_MOV (RDX_MOV, song_data));
|
||||||
HOOK_SONG_DATA (set_song_data_rdx, 0x140313D35, 0x140313D42, handle);
|
WRITE_MEMORY (ASLR (0x140313D38, handle), u8, GENERATE_MOV (RDX_MOV, song_data));
|
||||||
HOOK_SONG_DATA (set_song_data_r8, 0x140313C3F, 0x140313C4C, handle);
|
WRITE_MEMORY (ASLR (0x140313C42, handle), u8, GENERATE_MOV (R8_MOV, song_data));
|
||||||
|
|
||||||
// Save settings cross session without F:/ and G:/ drive
|
// Save settings cross session without F:/ and G:/ drive
|
||||||
WRITE_MEMORY (ASLR (0x140B5C528, handle), char, "./Setting1.bin");
|
WRITE_MEMORY (ASLR (0x140B5C528, handle), char, "./Setting1.bin");
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
.global set_song_data_rdx
|
|
||||||
.global set_song_data_r8
|
|
||||||
|
|
||||||
set_song_data_rdx:
|
|
||||||
mov rdx, qword ptr song_data [rip]
|
|
||||||
ret
|
|
||||||
|
|
||||||
set_song_data_r8:
|
|
||||||
mov r8, qword ptr song_data [rip]
|
|
||||||
ret
|
|
@ -11,7 +11,7 @@ char accessCode1[21] = "00000000000000000001";
|
|||||||
char accessCode2[21] = "00000000000000000002";
|
char accessCode2[21] = "00000000000000000002";
|
||||||
char chipId1[33] = "00000000000000000000000000000001";
|
char chipId1[33] = "00000000000000000000000000000001";
|
||||||
char chipId2[33] = "00000000000000000000000000000002";
|
char chipId2[33] = "00000000000000000000000000000002";
|
||||||
char *server = "https://divamodarchive.com";
|
char *server = "127.0.0.1";
|
||||||
|
|
||||||
typedef i32 (*callbackAttach) (i32, i32, i32 *);
|
typedef i32 (*callbackAttach) (i32, i32, i32 *);
|
||||||
typedef void (*callbackTouch) (i32, i32, u8[168], u64);
|
typedef void (*callbackTouch) (i32, i32, u8[168], u64);
|
||||||
|
Loading…
Reference in New Issue
Block a user