From 8c1ea6605fd5ec0db30314617f3beba03902c8a3 Mon Sep 17 00:00:00 2001 From: traffic95 Date: Fri, 9 May 2025 09:40:00 +0200 Subject: [PATCH] Added HoYoPass patch module --- trigger/src/lib.rs | 8 +++---- trigger/src/modules/hoyopass_patch.rs | 32 +++++++++++++++++++++++++++ trigger/src/modules/mod.rs | 1 + 3 files changed, 36 insertions(+), 5 deletions(-) create mode 100644 trigger/src/modules/hoyopass_patch.rs diff --git a/trigger/src/lib.rs b/trigger/src/lib.rs index 690ff8c..6319fbd 100644 --- a/trigger/src/lib.rs +++ b/trigger/src/lib.rs @@ -4,12 +4,9 @@ use std::{thread, time::Duration}; use interceptor::Interceptor; use modules::{ - censorship_patch::CensorshipPatch, - crypto::{ + censorship_patch::CensorshipPatch, crypto::{ initialize_rsa_public_key, monitor_network_state, replace_sdk_public_key_string_literal, - }, - network::Network, - NapModuleManager, + }, hoyopass_patch::HoyopassPatch, network::Network, NapModuleManager }; use windows::{ core::s, @@ -36,6 +33,7 @@ unsafe fn thread_fn() { let mut module_manager = NapModuleManager::default(); module_manager.add::(); module_manager.add::(); + module_manager.add::(); module_manager.init().expect("failed to initialize modules"); initialize_rsa_public_key(); diff --git a/trigger/src/modules/hoyopass_patch.rs b/trigger/src/modules/hoyopass_patch.rs new file mode 100644 index 0000000..6e6866c --- /dev/null +++ b/trigger/src/modules/hoyopass_patch.rs @@ -0,0 +1,32 @@ +use ilhook::x64::Registers; + +use crate::util::GAME_ASSEMBLY_BASE; + +use super::{ModuleInitError, NapModule, NapModuleContext}; + +const ON_COMBO_INIT_SUCCESS: usize = 0x18FAD620; +const STATICS: usize = 0x4EB7100; +const STATIC_ID: usize = 34352; +const FIELD_OFFSET: usize = 67; + +pub struct HoyopassPatch; + +impl NapModule for NapModuleContext { + unsafe fn init(&mut self) -> Result<(), ModuleInitError> { + self.interceptor.attach( + self.base.wrapping_add(ON_COMBO_INIT_SUCCESS), + HoyopassPatch::on_combo_init_success, + )?; + + Ok(()) + } +} + +impl HoyopassPatch { + pub unsafe extern "win64" fn on_combo_init_success(_: *mut Registers, _: usize) { + let statics = *(GAME_ASSEMBLY_BASE.wrapping_add(STATICS) as *mut usize); + let config_manager = *(statics.wrapping_add(STATIC_ID) as *mut usize); + *(config_manager.wrapping_add(FIELD_OFFSET) as *mut bool) = false; + println!("HoYoPassPatch - OnComboInitSuccess()"); + } +} \ No newline at end of file diff --git a/trigger/src/modules/mod.rs b/trigger/src/modules/mod.rs index dcd4437..1359c0f 100644 --- a/trigger/src/modules/mod.rs +++ b/trigger/src/modules/mod.rs @@ -4,6 +4,7 @@ use crate::{interceptor::Interceptor, util}; pub mod censorship_patch; pub mod crypto; +pub mod hoyopass_patch; pub mod network; #[derive(thiserror::Error, Debug)] -- 2.34.1