diff --git a/Cargo.lock b/Cargo.lock index 8195bb2..58e322f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,6 +17,14 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +[[package]] +name = "camellya-patch" +version = "0.1.0" +dependencies = [ + "ilhook", + "windows", +] + [[package]] name = "iced-x86" version = "1.21.0" @@ -61,9 +69,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a" dependencies = [ "unicode-ident", ] @@ -106,14 +114,6 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" -[[package]] -name = "shorekeeper-patch" -version = "0.1.0" -dependencies = [ - "ilhook", - "windows", -] - [[package]] name = "syn" version = "2.0.79" diff --git a/Cargo.toml b/Cargo.toml index f6b53c9..92cd947 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,13 +1,14 @@ [package] -name = "shorekeeper-patch" +name = "camellya-patch" version = "0.1.0" edition = "2021" [lib] -name = "shorekeeper" +name = "camellya" crate-type = ["cdylib"] [features] +cn_beta_1_4_0 = [] cn_beta_1_3_0 = [] cn_live_1_3_0 = [] os_live_1_3_0 = [] diff --git a/README.md b/README.md index acacb2f..2a0917e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# shorekeeper-patch +# camellya-patch -PAK files signature check bypass for Wuthering Waves 1.3 beta +PAK files signature check bypass for Wuthering Waves 1.4 beta ### How to use Just inject it at early startup. diff --git a/build.bat b/build.bat index 0f5a31c..db4c846 100644 --- a/build.bat +++ b/build.bat @@ -5,7 +5,7 @@ GOTO:MAIN cargo clean cargo build --release --no-default-features -F %~1 set features=%~1:,=-% - COPY target\release\shorekeeper.dll build\shorekeeper-%~1.dll + COPY target\release\camellya.dll build\camellya-%~1.dll cargo clean ENDLOCAL EXIT /B 0 @@ -15,6 +15,8 @@ if exist "build" rd /q /s "build" mkdir build cargo clean +: Build for cn_beta_1_4_0 +call:cargoReleaseBuild cn_beta_1_4_0 : Build for cn_beta_1_3_0 call:cargoReleaseBuild cn_beta_1_3_0 : Build for cn_live_1_3_0 @@ -22,4 +24,4 @@ call:cargoReleaseBuild cn_live_1_3_0 : Build for os_live_1_3_0 call:cargoReleaseBuild os_live_1_3_0 -tar -acvf shorekeeper-patch-win64.zip -C build \ No newline at end of file +tar -acvf camellya-patch-win64.zip -C build . \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index cf19b1b..b5b5ecc 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -21,7 +21,7 @@ fn thread_func() { println!("Waiting for ACE init"); let module = unsafe { GetModuleHandleA(PCSTR::null()) }.unwrap(); - let pak_file_offset = ((module.0 as usize) + CONFIG.f_pak_file_check) as *const u128; + let pak_file_offset = ((module.0 as usize) + CONFIG.f_pak_file_check) as *const u64; loop { if unsafe { std::ptr::read(pak_file_offset) } == CONFIG.f_pak_file_check_preamble { println!("ACE Initialization finished"); diff --git a/src/offsets.rs b/src/offsets.rs index 0b506b2..44e855e 100644 --- a/src/offsets.rs +++ b/src/offsets.rs @@ -10,16 +10,29 @@ pub(crate) struct DisableSdkConfiguration { pub(crate) struct InjectConfiguration { pub(crate) f_pak_file_check: usize, - pub(crate) f_pak_file_check_preamble: u128, + pub(crate) f_pak_file_check_preamble: u64, pub(crate) kuro_http_get: usize, #[cfg(not(feature = "enable-sdk"))] pub(crate) disable_sdk: DisableSdkConfiguration, } +#[cfg(feature = "cn_beta_1_4_0")] +pub(crate) const CONFIG: InjectConfiguration = InjectConfiguration { + f_pak_file_check: 0x3E37D90, // 0x3E37D90 + f_pak_file_check_preamble: 0x8148574157565340, + kuro_http_get: 0xFE9E00, + #[cfg(not(feature = "enable-sdk"))] + disable_sdk: DisableSdkConfiguration{ + sdk_dll: s!("KRSDKEx.dll"), + eula_accept: 0x4A6D0, + sdk_go_away: 0x8BB40, + } +}; + #[cfg(feature = "cn_beta_1_3_0")] pub(crate) const CONFIG: InjectConfiguration = InjectConfiguration { f_pak_file_check: 0x3D2F460, - f_pak_file_check_preamble: 0x943D80000000A8EC8148574157565340, + f_pak_file_check_preamble: 0x8148574157565340, kuro_http_get: 0xFC8CF0, #[cfg(not(feature = "enable-sdk"))] disable_sdk: DisableSdkConfiguration{ @@ -32,7 +45,7 @@ pub(crate) const CONFIG: InjectConfiguration = InjectConfiguration { #[cfg(feature = "cn_live_1_3_0")] pub(crate) const CONFIG: InjectConfiguration = InjectConfiguration { f_pak_file_check: 0x3D35DF0, - f_pak_file_check_preamble: 0x943D80000000A8EC8148574157565340, + f_pak_file_check_preamble: 0x8148574157565340, kuro_http_get: 0xFC9900, #[cfg(not(feature = "enable-sdk"))] disable_sdk: DisableSdkConfiguration{ @@ -45,7 +58,7 @@ pub(crate) const CONFIG: InjectConfiguration = InjectConfiguration { #[cfg(feature = "os_live_1_3_0")] pub(crate) const CONFIG: InjectConfiguration = InjectConfiguration { f_pak_file_check: 0x3CDC430, - f_pak_file_check_preamble: 0x943D80000000A8EC8148574157565340, + f_pak_file_check_preamble: 0x8148574157565340, kuro_http_get: 0xFC6C20, #[cfg(not(feature = "enable-sdk"))] disable_sdk: DisableSdkConfiguration{