Update library
This commit is contained in:
parent
57e6f43142
commit
58f8f2b1c5
5 changed files with 25 additions and 21 deletions
6
Cargo.lock
generated
6
Cargo.lock
generated
|
@ -13,9 +13,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "2.7.0"
|
||||
version = "2.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be"
|
||||
checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36"
|
||||
|
||||
[[package]]
|
||||
name = "iced-x86"
|
||||
|
@ -44,7 +44,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "interceptor-rs"
|
||||
version = "0.1.0"
|
||||
source = "git+https://git.xeondev.com/xavo95/interceptor-rs.git#282da6f98b8e4a4e9844422343d4ce11606c9de6"
|
||||
source = "git+https://git.xeondev.com/xavo95/interceptor-rs.git#418aef083cc6768201f0512fdbdca5c03aa4f787"
|
||||
dependencies = [
|
||||
"ilhook",
|
||||
]
|
||||
|
|
|
@ -12,13 +12,13 @@ advanced = []
|
|||
cn_beta_2_1_0 = []
|
||||
enable-sdk = []
|
||||
only-sig-bypass = []
|
||||
regular = ["dep:regex", "dep:unreal-niggery-rs", "dep:widestring"]
|
||||
regular = ["dep:regex", "dep:widestring"]
|
||||
|
||||
[dependencies]
|
||||
ilhook = "2.1.1"
|
||||
interceptor-rs = { git = "https://git.xeondev.com/xavo95/interceptor-rs.git" }
|
||||
regex = { version = "1.11.1", optional = true }
|
||||
unreal-niggery-rs = { git = "https://git.xeondev.com/xavo95/unreal-niggery-rs.git", optional = true }
|
||||
unreal-niggery-rs = { git = "https://git.xeondev.com/xavo95/unreal-niggery-rs.git" }
|
||||
widestring = { version = "1.1.0", optional = true }
|
||||
windows = { version = "0.59.0", features = [
|
||||
"Win32_Foundation",
|
||||
|
|
|
@ -13,9 +13,7 @@ EXIT /B 0
|
|||
|
||||
:buildAllVariants
|
||||
SETLOCAL ENABLEDELAYEDEXPANSION
|
||||
call:cargoReleaseBuild "cn_live_2_0_2,%~1" %~1
|
||||
call:cargoReleaseBuild "cn_live_bilibili_2_0_2,%~1" %~1
|
||||
call:cargoReleaseBuild "os_live_2_0_2,%~1" %~1
|
||||
call:cargoReleaseBuild "cn_beta_2_1_0,%~1" %~1
|
||||
ENDLOCAL
|
||||
EXIT /B 0
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ use windows::core::PCSTR;
|
|||
use windows::Win32::System::LibraryLoader::GetModuleHandleA;
|
||||
|
||||
use crate::{config, curl_utils};
|
||||
use crate::config::CONFIG;
|
||||
use crate::config::{CONFIG, CurlConfig};
|
||||
use crate::replacer::{AbstractReplacer, GenericReplacer, Replacer};
|
||||
|
||||
type CurlEasySetStr = fn(handle: usize, tag: u64, value: *const c_char);
|
||||
|
@ -59,8 +59,11 @@ pub(crate) fn configure_extras(interceptor: &mut interceptor_rs::Interceptor) {
|
|||
|
||||
let _ = UE_CURL_EASY_SETOPT_FUNC.set(module.0 as usize + CONFIG.ue_curl_config.curl_easy_setopt);
|
||||
interceptor
|
||||
.attach((module.0 as usize) + CONFIG.ue_curl_config.curl_easy_perform, on_ue_curl_easy_perform)
|
||||
.unwrap();
|
||||
.attach(
|
||||
(module.0 as usize) + CONFIG.ue_curl_config.curl_easy_perform,
|
||||
on_curl_easy_perform,
|
||||
Some(&CONFIG.ue_curl_config as *const _ as usize)
|
||||
).unwrap();
|
||||
|
||||
let krsdk_ex = loop {
|
||||
match unsafe { GetModuleHandleA(CONFIG.disable_sdk.sdk_dll) } {
|
||||
|
@ -70,11 +73,11 @@ pub(crate) fn configure_extras(interceptor: &mut interceptor_rs::Interceptor) {
|
|||
};
|
||||
|
||||
interceptor
|
||||
.replace((krsdk_ex.0 as usize) + CONFIG.disable_sdk.eula_accept, dummy)
|
||||
.replace((krsdk_ex.0 as usize) + CONFIG.disable_sdk.eula_accept, dummy, None)
|
||||
.unwrap();
|
||||
|
||||
interceptor
|
||||
.replace((krsdk_ex.0 as usize) + CONFIG.disable_sdk.sdk_go_away, dummy)
|
||||
.replace((krsdk_ex.0 as usize) + CONFIG.disable_sdk.sdk_go_away, dummy, None)
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
|
@ -82,22 +85,25 @@ unsafe extern "win64" fn dummy(_: *mut Registers, _: usize, _: usize) -> usize {
|
|||
1
|
||||
}
|
||||
|
||||
unsafe extern "win64" fn on_ue_curl_easy_perform(reg: *mut Registers, _: usize) {
|
||||
unsafe extern "win64" fn on_curl_easy_perform(reg: *mut Registers, user_data: usize) {
|
||||
let config = std::ptr::read(user_data as *const CurlConfig);
|
||||
|
||||
let curl_handle = unsafe {
|
||||
*(((*reg).rcx + CONFIG.ue_curl_config.handle_rcx_relative_offset) as *const usize)
|
||||
*(((*reg).rcx + config.handle_rcx_relative_offset) as *const usize)
|
||||
};
|
||||
let url_ptr = unsafe {
|
||||
*((curl_handle + CONFIG.ue_curl_config.url_handle_relative_offset) as *const usize)
|
||||
*((curl_handle + config.url_handle_relative_offset) as *const usize)
|
||||
};
|
||||
let url = unsafe { CStr::from_ptr(url_ptr as *const i8) }.to_str().unwrap();
|
||||
println!("[ue_curl_easy_perform] Original URL: {url}");
|
||||
println!("[curl_easy_perform] Original URL: {url}");
|
||||
|
||||
for replacer in unsafe { URL_REPLACER.get_mut().unwrap() } {
|
||||
match replacer.replace(url) {
|
||||
Ok(result) => {
|
||||
println!("[ue_curl_easy_perform] Replacement URL: {result}");
|
||||
println!("[curl_easy_perform] Replacement URL: {result}");
|
||||
let url = CString::new(result.as_str()).unwrap();
|
||||
unsafe {
|
||||
// TODO: Rethink this for other curl interceptors
|
||||
std::mem::transmute::<usize, CurlEasySetStr>(*UE_CURL_EASY_SETOPT_FUNC.get().unwrap())(
|
||||
curl_handle,
|
||||
curl_utils::CURL_OPT_URL,
|
||||
|
|
|
@ -43,7 +43,7 @@ fn thread_func() {
|
|||
|
||||
let mut interceptor = Interceptor::new();
|
||||
interceptor
|
||||
.replace((module.0 as usize) + CONFIG.f_pak_file_check, fpakfile_check_replacement)
|
||||
.replace((module.0 as usize) + CONFIG.f_pak_file_check, fpakfile_check_replacement, None)
|
||||
.unwrap();
|
||||
|
||||
TArray::set_t_array_resize_grow_ptr(module.0 as usize + CONFIG.resize_grow);
|
||||
|
@ -53,10 +53,10 @@ fn thread_func() {
|
|||
println!("Found custom location for pak files: {value}");
|
||||
let _ = CUSTOM_PAK_FOLDER.set(value).unwrap();
|
||||
interceptor
|
||||
.attach((module.0 as usize) + CONFIG.add_pak_folders_entry, add_pak_folders)
|
||||
.attach((module.0 as usize) + CONFIG.add_pak_folders_entry, add_pak_folders, None)
|
||||
.unwrap();
|
||||
interceptor
|
||||
.attach((module.0 as usize) + CONFIG.add_pak_folders_ret, debug_get_pak_folders)
|
||||
.attach((module.0 as usize) + CONFIG.add_pak_folders_ret, debug_get_pak_folders, None)
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue