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"
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"

View file

@ -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 = []

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
Just inject it at early startup.

View file

@ -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
tar -acvf camellya-patch-win64.zip -C build .

View file

@ -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");

View file

@ -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{