1.4 Beta support

This commit is contained in:
xavo95 2024-10-11 15:25:10 +02:00
parent 0c9a1e61c7
commit bac8d2277f
Signed by: xavo95
GPG key ID: CBF8ADED6DEBB783
6 changed files with 37 additions and 21 deletions

20
Cargo.lock generated
View file

@ -17,6 +17,14 @@ version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
[[package]]
name = "camellya-patch"
version = "0.1.0"
dependencies = [
"ilhook",
"windows",
]
[[package]] [[package]]
name = "iced-x86" name = "iced-x86"
version = "1.21.0" version = "1.21.0"
@ -61,9 +69,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.86" version = "1.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" checksum = "b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]
@ -106,14 +114,6 @@ version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]]
name = "shorekeeper-patch"
version = "0.1.0"
dependencies = [
"ilhook",
"windows",
]
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.79" version = "2.0.79"

View file

@ -1,13 +1,14 @@
[package] [package]
name = "shorekeeper-patch" name = "camellya-patch"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2021"
[lib] [lib]
name = "shorekeeper" name = "camellya"
crate-type = ["cdylib"] crate-type = ["cdylib"]
[features] [features]
cn_beta_1_4_0 = []
cn_beta_1_3_0 = [] cn_beta_1_3_0 = []
cn_live_1_3_0 = [] cn_live_1_3_0 = []
os_live_1_3_0 = [] os_live_1_3_0 = []

View file

@ -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 ### How to use
Just inject it at early startup. Just inject it at early startup.

View file

@ -5,7 +5,7 @@ GOTO:MAIN
cargo clean cargo clean
cargo build --release --no-default-features -F %~1 cargo build --release --no-default-features -F %~1
set features=%~1:,=-% set features=%~1:,=-%
COPY target\release\shorekeeper.dll build\shorekeeper-%~1.dll COPY target\release\camellya.dll build\camellya-%~1.dll
cargo clean cargo clean
ENDLOCAL ENDLOCAL
EXIT /B 0 EXIT /B 0
@ -15,6 +15,8 @@ if exist "build" rd /q /s "build"
mkdir build mkdir build
cargo clean cargo clean
: Build for cn_beta_1_4_0
call:cargoReleaseBuild cn_beta_1_4_0
: Build for cn_beta_1_3_0 : Build for cn_beta_1_3_0
call:cargoReleaseBuild cn_beta_1_3_0 call:cargoReleaseBuild cn_beta_1_3_0
: Build for cn_live_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 : Build for os_live_1_3_0
call:cargoReleaseBuild os_live_1_3_0 call:cargoReleaseBuild os_live_1_3_0
tar -acvf shorekeeper-patch-win64.zip -C build tar -acvf camellya-patch-win64.zip -C build .

View file

@ -21,7 +21,7 @@ fn thread_func() {
println!("Waiting for ACE init"); println!("Waiting for ACE init");
let module = unsafe { GetModuleHandleA(PCSTR::null()) }.unwrap(); 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 { loop {
if unsafe { std::ptr::read(pak_file_offset) } == CONFIG.f_pak_file_check_preamble { if unsafe { std::ptr::read(pak_file_offset) } == CONFIG.f_pak_file_check_preamble {
println!("ACE Initialization finished"); println!("ACE Initialization finished");

View file

@ -10,16 +10,29 @@ pub(crate) struct DisableSdkConfiguration {
pub(crate) struct InjectConfiguration { pub(crate) struct InjectConfiguration {
pub(crate) f_pak_file_check: usize, 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, pub(crate) kuro_http_get: usize,
#[cfg(not(feature = "enable-sdk"))] #[cfg(not(feature = "enable-sdk"))]
pub(crate) disable_sdk: DisableSdkConfiguration, 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")] #[cfg(feature = "cn_beta_1_3_0")]
pub(crate) const CONFIG: InjectConfiguration = InjectConfiguration { pub(crate) const CONFIG: InjectConfiguration = InjectConfiguration {
f_pak_file_check: 0x3D2F460, f_pak_file_check: 0x3D2F460,
f_pak_file_check_preamble: 0x943D80000000A8EC8148574157565340, f_pak_file_check_preamble: 0x8148574157565340,
kuro_http_get: 0xFC8CF0, kuro_http_get: 0xFC8CF0,
#[cfg(not(feature = "enable-sdk"))] #[cfg(not(feature = "enable-sdk"))]
disable_sdk: DisableSdkConfiguration{ disable_sdk: DisableSdkConfiguration{
@ -32,7 +45,7 @@ pub(crate) const CONFIG: InjectConfiguration = InjectConfiguration {
#[cfg(feature = "cn_live_1_3_0")] #[cfg(feature = "cn_live_1_3_0")]
pub(crate) const CONFIG: InjectConfiguration = InjectConfiguration { pub(crate) const CONFIG: InjectConfiguration = InjectConfiguration {
f_pak_file_check: 0x3D35DF0, f_pak_file_check: 0x3D35DF0,
f_pak_file_check_preamble: 0x943D80000000A8EC8148574157565340, f_pak_file_check_preamble: 0x8148574157565340,
kuro_http_get: 0xFC9900, kuro_http_get: 0xFC9900,
#[cfg(not(feature = "enable-sdk"))] #[cfg(not(feature = "enable-sdk"))]
disable_sdk: DisableSdkConfiguration{ disable_sdk: DisableSdkConfiguration{
@ -45,7 +58,7 @@ pub(crate) const CONFIG: InjectConfiguration = InjectConfiguration {
#[cfg(feature = "os_live_1_3_0")] #[cfg(feature = "os_live_1_3_0")]
pub(crate) const CONFIG: InjectConfiguration = InjectConfiguration { pub(crate) const CONFIG: InjectConfiguration = InjectConfiguration {
f_pak_file_check: 0x3CDC430, f_pak_file_check: 0x3CDC430,
f_pak_file_check_preamble: 0x943D80000000A8EC8148574157565340, f_pak_file_check_preamble: 0x8148574157565340,
kuro_http_get: 0xFC6C20, kuro_http_get: 0xFC6C20,
#[cfg(not(feature = "enable-sdk"))] #[cfg(not(feature = "enable-sdk"))]
disable_sdk: DisableSdkConfiguration{ disable_sdk: DisableSdkConfiguration{