From 522a8a83573181a6f4899892eb356b83e5d3e567 Mon Sep 17 00:00:00 2001 From: ptmaster Date: Mon, 2 Dec 2024 00:57:19 +0800 Subject: [PATCH] TestMode Refactor Remove Debug Hook Fix Scanner LogOutput --- src/patches/scanner.cpp | 27 ++++++------ src/patches/versions/JPN39.cpp | 79 +++++++++++++++++++--------------- 2 files changed, 57 insertions(+), 49 deletions(-) diff --git a/src/patches/scanner.cpp b/src/patches/scanner.cpp index 4a9f723..83ec999 100644 --- a/src/patches/scanner.cpp +++ b/src/patches/scanner.cpp @@ -93,7 +93,7 @@ namespace Card { if (chipId.length () < 32) chipId = accessCodeTemplate.substr (0, 32 - chipId.length ()) + chipId; for (size_t i = 0; i < 32; i++) *(cardData + 0x2C + i) = i < chipId.length() ? chipId[i] : 0; for (size_t i = 0; i < 20; i++) *(cardData + 0x50 + i) = i < accessCode.length() ? accessCode[i] : 0; - if (!internalInvoke) LogMessage (LogLevel::INFO, "[Card] Insert Card accessCode: \"{}\" chipId: \"{}\"\n", accessCode, chipId); + if (!internalInvoke) LogMessage (LogLevel::INFO, "[Card] Insert Card accessCode: \"{}\" chipId: \"{}\"", accessCode, chipId); patches::Scanner::Card::Internal::AgentInsertCard (cardData, internalInvoke); return true; } @@ -118,7 +118,6 @@ namespace Card { HOOK (u64, bngrw_ReqAiccAuth, PROC_ADDRESS ("bngrw.dll", "BngRwReqAiccAuth")) { return 1; } HOOK (u64, bngrw_DevReset, PROC_ADDRESS ("bngrw.dll", "BngRwDevReset")) { return 1; } // Invoke when enter testmode HOOK (i32, bngrw_ReqCancel, PROC_ADDRESS ("bngrw.dll", "BngRwReqCancel")) { - LogMessage (LogLevel::DEBUG, "[Card] Cancel!\n"); if (state != State::Disable) { state = State::Disable; patches::Scanner::Card::Internal::Commit0 (accessCodeTemplate, chipIdTemplate, true); @@ -157,19 +156,19 @@ namespace Card { bool Commit(std::string accessCode, std::string chipId) { if (!emulateCardReader) { - LogMessage (LogLevel::DEBUG, "[Card] Not emulate CardReader!\n"); + LogMessage (LogLevel::DEBUG, "[Card] Not emulate CardReader!"); return false; } if (state != State::Ready) { - LogMessage (LogLevel::DEBUG, "[Card] Not Waiting for Touch, please wait!\n"); + LogMessage (LogLevel::DEBUG, "[Card] Not Waiting for Touch, please wait!"); return false; } if (accessCode.length() == 0 || accessCode.length() > 20) { - LogMessage (LogLevel::ERROR, "[Card] Not an effective accessCode: \"{}\"\n", accessCode); + LogMessage (LogLevel::ERROR, "[Card] Not an effective accessCode: \"{}\"", accessCode); return false; } if (chipId.length() > 32) { - LogMessage (LogLevel::ERROR, "[Card] Not an effective chipId: \"{}\"\n", chipId); + LogMessage (LogLevel::ERROR, "[Card] Not an effective chipId: \"{}\"", chipId); return false; } return patches::Scanner::Card::Internal::Commit0 (accessCode, chipId, false); @@ -184,7 +183,7 @@ namespace Card { Init() { LogMessage (LogLevel::INFO, "Init Card patches"); if (!emulateCardReader) { - LogMessage (LogLevel::WARN, "[Card] Card reader emulation disabled!\n"); + LogMessage (LogLevel::WARN, "[Card] Card reader emulation disabled!"); INSTALL_HOOK (bngrw_ReqCancelOfficial); INSTALL_HOOK (bngrw_ReqWaitTouchOfficial); // patches::Plugins::InitCardReader (patches::Scanner::Card::Commit); @@ -248,7 +247,7 @@ namespace Qr { if (state == State::CopyWait && scanQueue.size () > 0) { std::vector data = scanQueue.front (); if ((int)data.size () > length) { - LogMessage (LogLevel::ERROR, "[QR] Not an effective code, length: {} require: {}\n", data.size (), length); + LogMessage (LogLevel::ERROR, "[QR] Not an effective code, length: {} require: {}", data.size (), length); } std::stringstream hexStream; hexStream << std::hex << std::uppercase << std::setfill ('0') << std::setw (2); @@ -269,15 +268,15 @@ namespace Qr { bool Commit (std::vector &buffer) { if (!emulateQr) { - LogMessage (LogLevel::DEBUG, "[QR] Not emulate QR Scanner!\n"); + LogMessage (LogLevel::DEBUG, "[QR] Not emulate QR Scanner!"); return false; } if (state == State::Disable) { - LogMessage (LogLevel::DEBUG, "[QR] Not Ready to accept QRData!\n"); + LogMessage (LogLevel::DEBUG, "[QR] Not Ready to accept QRData!"); return false; } if (buffer.size () == 0) { - LogMessage (LogLevel::ERROR, "[QR] Not an effective code, length: 0\n"); + LogMessage (LogLevel::ERROR, "[QR] Not an effective code, length: 0"); return false; } if (scanQueue.empty() || scanQueue.back() != buffer) { @@ -293,7 +292,7 @@ namespace Qr { bool CommitLogin (std::string accessCode) { if (!emulateQr) { - LogMessage (LogLevel::DEBUG, "[QR] Not emulate QR Scanner!\n"); + LogMessage (LogLevel::DEBUG, "[QR] Not emulate QR Scanner!"); return false; } std::vector buffer = {}; @@ -375,7 +374,7 @@ namespace Qr { std::u8string u8PathStr (imagePath.begin (), imagePath.end ()); std::filesystem::path u8Path (u8PathStr); if (!std::filesystem::is_regular_file (u8Path)) { - LogMessage (LogLevel::ERROR, "Failed to open image: {} (file not found)\n", u8Path.string()); + LogMessage (LogLevel::ERROR, "Failed to open image: {} (file not found)", u8Path.string()); return buffer; } int width, height, channels; @@ -399,7 +398,7 @@ namespace Qr { LogMessage (LogLevel::INFO, "Init Qr patches"); if (!emulateQr) { - LogMessage (LogLevel::WARN, "[QR] QR emulation disabled!\n"); + LogMessage (LogLevel::WARN, "[QR] QR emulation disabled!"); return; } patches::Plugins::InitQr (gameVersion); diff --git a/src/patches/versions/JPN39.cpp b/src/patches/versions/JPN39.cpp index 0193f3d..7489607 100644 --- a/src/patches/versions/JPN39.cpp +++ b/src/patches/versions/JPN39.cpp @@ -394,40 +394,48 @@ MID_HOOK (AttractDemo, ASLR (0x14045A720), SafetyHookContext &ctx) { if (TestMode::ReadTestModeValue (L"AttractDemoItem") == 1) ctx.r14 = 0; } -HOOK (u64, EnsoGameManagerInitialize, ASLR (0x1400E2520), u64 a1, u64 a2, u64 a3) { - LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerInitialize"); - u64 result = originalEnsoGameManagerInitialize (a1, a2, a3); - LogMessage (LogLevel::DEBUG, "End EnsoGameManagerInitialize result={}", result); - return result; -} +// HOOK (u64, EnsoGameManagerInitialize, ASLR (0x1400E2520), u64 a1, u64 a2, u64 a3) { +// LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerInitialize"); +// u64 result = originalEnsoGameManagerInitialize (a1, a2, a3); +// LogMessage (LogLevel::DEBUG, "End EnsoGameManagerInitialize result={}", result); +// return result; +// } -HOOK (u64, EnsoGameManagerLoading, ASLR (0x1400E2750), u64 a1, u64 a2, u64 a3) { - LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerLoading"); - u64 result = originalEnsoGameManagerLoading (a1, a2, a3); - LogMessage (LogLevel::DEBUG, "End EnsoGameManagerLoading result={}", result); - return result; -} +// HOOK (u64, EnsoGameManagerLoading, ASLR (0x1400E2750), u64 a1, u64 a2, u64 a3) { +// LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerLoading"); +// u64 result = originalEnsoGameManagerLoading (a1, a2, a3); +// LogMessage (LogLevel::DEBUG, "End EnsoGameManagerLoading result={}", result); +// return result; +// } -HOOK (bool, EnsoGameManagerPreparing, ASLR (0x1400E2990), u64 a1) { - LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerPreparing"); - bool result = originalEnsoGameManagerPreparing (a1); // crashes here - LogMessage (LogLevel::DEBUG, "End EnsoGameManagerPreparing result={}", result); - return result; -} +// HOOK (bool, EnsoGameManagerPreparing, ASLR (0x1400E2990), u64 a1) { +// LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerPreparing"); +// bool result = originalEnsoGameManagerPreparing (a1); // crashes here +// LogMessage (LogLevel::DEBUG, "End EnsoGameManagerPreparing result={}", result); +// return result; +// } -HOOK (u64, EnsoGameManagerStart, ASLR (0x1400E2A10), u64 a1, u64 a2, u64 a3) { - LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerStart"); - u64 result = originalEnsoGameManagerStart (a1, a2, a3); - LogMessage (LogLevel::DEBUG, "End EnsoGameManagerStart result={}", result); - return result; -} +// HOOK (u64, EnsoGraphicManagerPreparing, ASLR (0x1400F0AB0), u64 a1, u64 a2, u64 a3) { +// LogMessage (LogLevel::DEBUG, "Begin EnsoGraphicManagerPreparing"); +// u64 result = originalEnsoGraphicManagerPreparing (a1, a2, a3); +// LogMessage (LogLevel::DEBUG, "End EnsoGraphicManagerPreparing result={}", result); +// return result; +// } -HOOK (u64, EnsoGameManagerChechEnsoEnd, ASLR (0x1400E2A10), u64 a1, u64 a2, u64 a3) { - LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerChechEnsoEnd"); - u64 result = originalEnsoGameManagerChechEnsoEnd (a1, a2, a3); - LogMessage (LogLevel::DEBUG, "End EnsoGameManagerChechEnsoEnd result={}", result); - return result; -} + +// HOOK (u64, EnsoGameManagerStart, ASLR (0x1400E2A10), u64 a1, u64 a2, u64 a3) { +// LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerStart"); +// u64 result = originalEnsoGameManagerStart (a1, a2, a3); +// LogMessage (LogLevel::DEBUG, "End EnsoGameManagerStart result={}", result); +// return result; +// } + +// HOOK (u64, EnsoGameManagerChechEnsoEnd, ASLR (0x1400E2A10), u64 a1, u64 a2, u64 a3) { +// LogMessage (LogLevel::DEBUG, "Begin EnsoGameManagerChechEnsoEnd"); +// u64 result = originalEnsoGameManagerChechEnsoEnd (a1, a2, a3); +// LogMessage (LogLevel::DEBUG, "End EnsoGameManagerChechEnsoEnd result={}", result); +// return result; +// } constexpr i32 datatableBufferSize = 1024 * 1024 * 12; safetyhook::Allocation datatableBuffer1; @@ -492,11 +500,12 @@ Init () { // Hook to get AppAccessor and ComponentAccessor INSTALL_HOOK (DeviceCheck); INSTALL_HOOK (luaL_newstate); - INSTALL_HOOK (EnsoGameManagerInitialize); - INSTALL_HOOK (EnsoGameManagerLoading); - INSTALL_HOOK (EnsoGameManagerPreparing); - INSTALL_HOOK (EnsoGameManagerStart); - INSTALL_HOOK (EnsoGameManagerChechEnsoEnd); + // INSTALL_HOOK (EnsoGameManagerInitialize); + // INSTALL_HOOK (EnsoGameManagerLoading); + // INSTALL_HOOK (EnsoGameManagerPreparing); + // INSTALL_HOOK (EnsoGraphicManagerPreparing); + // INSTALL_HOOK (EnsoGameManagerStart); + // INSTALL_HOOK (EnsoGameManagerChechEnsoEnd); // Apply common config patch WRITE_MEMORY (ASLR (0x140494533), i32, xRes);