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