CNBetaWin2.0.5 support
This commit is contained in:
parent
25a6caf0a3
commit
0ca6e1ebda
5 changed files with 37 additions and 17 deletions
|
@ -32,12 +32,14 @@ unsafe fn thread_fn() {
|
|||
thread::sleep(Duration::from_secs(5));
|
||||
util::disable_memory_protection();
|
||||
|
||||
println!("vivian-patch (2.0.4 BETA) is initializing");
|
||||
println!("vivian-patch (2.0.5 BETA) is initializing");
|
||||
|
||||
println!(
|
||||
"to work with vivian-rs: https://git.xeondev.com/vivian-rs/vivian-rs/src/branch/2.0_beta"
|
||||
);
|
||||
|
||||
println!("\nJoin us on Discord at https://discord.gg/reversedrooms\n\n\n");
|
||||
|
||||
let mut module_manager = NapModuleManager::default();
|
||||
module_manager.add::<Network>();
|
||||
module_manager.add::<HoyopassPatch>();
|
||||
|
|
|
@ -3,11 +3,11 @@ use std::sync::atomic::{AtomicU32, Ordering};
|
|||
|
||||
use super::{ModuleInitError, NapModule, NapModuleContext};
|
||||
|
||||
const SET_DITHER_CONFIG: usize = 0x8DF8980;
|
||||
const SET_DITHER_CONFIG: usize = 0x86FE960;
|
||||
const DITHER_CONFIG_AVATAR_USING_DITHER_ALPHA: usize = 0x41;
|
||||
|
||||
const ON_ENTER_SCENE_SC_NOTIFY: usize = 0x83862A0;
|
||||
const ENTER_SCENE_SC_NOTIFY_SCENE_DATA: usize = 0x18;
|
||||
const ON_ENTER_SCENE_SC_NOTIFY: usize = 0x85088C0;
|
||||
const ENTER_SCENE_SC_NOTIFY_SCENE_DATA: usize = 0x20;
|
||||
const SCENE_DATA_SCENE_TYPE: usize = 0x6C;
|
||||
const SCENE_TYPE_HALL: u32 = 1;
|
||||
|
||||
|
|
|
@ -7,14 +7,14 @@ use crate::{
|
|||
util::{import, GAME_ASSEMBLY_BASE},
|
||||
};
|
||||
|
||||
import!(rsa_create() -> usize = 0x1B56B2E0);
|
||||
import!(rsa_from_xml_string(instance: usize, xml_string: usize) -> usize = 0x1B56B520);
|
||||
import!(il2cpp_string_new(cstr: *const u8) -> usize = 0x115F1B0);
|
||||
import!(rsa_create() -> usize = 0x1B582F20);
|
||||
import!(rsa_from_xml_string(instance: usize, xml_string: usize) -> usize = 0x1B583160);
|
||||
import!(il2cpp_string_new(cstr: *const u8) -> usize = 0x1158AA0);
|
||||
|
||||
pub unsafe fn initialize_rsa_public_key() {
|
||||
const SERVER_PUBLIC_KEY: &str = include_str!("../../server_public_key.xml");
|
||||
let rsa_public_key_backdoor_field =
|
||||
((*(GAME_ASSEMBLY_BASE.wrapping_add(0x5552100) as *const usize)) + 252792) as *mut usize;
|
||||
((*(GAME_ASSEMBLY_BASE.wrapping_add(0x554E500) as *const usize)) + 252856) as *mut usize;
|
||||
|
||||
let rsa = rsa_create();
|
||||
rsa_from_xml_string(
|
||||
|
@ -33,18 +33,36 @@ pub unsafe fn initialize_rsa_public_key() {
|
|||
pub unsafe fn replace_sdk_public_key_string_literal() {
|
||||
const SDK_PUBLIC_KEY: &str = include_str!("../../sdk_public_key.xml");
|
||||
|
||||
*(GAME_ASSEMBLY_BASE.wrapping_add(0x5954398) as *mut usize) = il2cpp_string_new(
|
||||
*(GAME_ASSEMBLY_BASE.wrapping_add(0x5950C50) as *mut usize) = il2cpp_string_new(
|
||||
CString::new(SDK_PUBLIC_KEY)
|
||||
.unwrap()
|
||||
.to_bytes_with_nul()
|
||||
.as_ptr(),
|
||||
) as usize;
|
||||
|
||||
*(GAME_ASSEMBLY_BASE.wrapping_add(0x5974060) as *mut usize) = il2cpp_string_new(
|
||||
[27818, 40348, 47410, 27936, 51394, 33172, 51987, 8709, 44748,
|
||||
23705, 45753, 21092, 57054, 52661, 369, 62630, 11725, 7496, 36921, 28271,
|
||||
34880, 52645, 31515, 18214, 3108, 2077, 13490, 25459, 58590, 47504, 15163,
|
||||
8951, 44748, 23705, 45753, 29284, 57054, 52661]
|
||||
.into_iter()
|
||||
.enumerate()
|
||||
.flat_map(|(i, v)| {
|
||||
let b = (((i + ((i >> 31) >> 29)) & 0xF8).wrapping_sub(i)) as i16;
|
||||
(((v << ((b + 11) & 0xF)) | (v >> ((-11 - b) & 0xF))) & 0xFFFF_u16)
|
||||
.to_be_bytes()
|
||||
.into_iter()
|
||||
})
|
||||
.chain([0])
|
||||
.collect::<Vec<_>>()
|
||||
.as_ptr(),
|
||||
) as usize;
|
||||
}
|
||||
|
||||
pub unsafe fn monitor_network_state(interceptor: &mut Interceptor) {
|
||||
interceptor
|
||||
.attach(
|
||||
GAME_ASSEMBLY_BASE.wrapping_add(0xD8AAEC0),
|
||||
GAME_ASSEMBLY_BASE.wrapping_add(0xDE96720),
|
||||
on_network_state_change,
|
||||
)
|
||||
.unwrap();
|
||||
|
|
|
@ -4,10 +4,10 @@ use crate::util::GAME_ASSEMBLY_BASE;
|
|||
|
||||
use super::{ModuleInitError, NapModule, NapModuleContext};
|
||||
|
||||
const ON_COMBO_INIT_SUCCESS: usize = 0x1ACA72F0;
|
||||
const STATICS: usize = 0x5552100;
|
||||
const STATIC_ID: usize = 34512;
|
||||
const FIELD_OFFSET: usize = 64;
|
||||
const ON_COMBO_INIT_SUCCESS: usize = 0x1ACCE700;
|
||||
const STATICS: usize = 0x554E500;
|
||||
const STATIC_ID: usize = 34496;
|
||||
const FIELD_OFFSET: usize = 0x44;
|
||||
|
||||
pub struct HoyopassPatch;
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@ use crate::util::{self, import, read_csharp_string};
|
|||
|
||||
use super::{ModuleInitError, NapModule, NapModuleContext};
|
||||
|
||||
const MAKE_INITIAL_URL: usize = 0x1D1458E0;
|
||||
const WEB_REQUEST_CREATE: usize = 0x1CC2D2A0;
|
||||
const MAKE_INITIAL_URL: usize = 0x1D172280;
|
||||
const WEB_REQUEST_CREATE: usize = 0x1CC5EC00;
|
||||
|
||||
pub struct Network;
|
||||
|
||||
|
@ -37,7 +37,7 @@ unsafe extern "win64" fn on_web_request_create(reg: *mut Registers, _: usize) {
|
|||
}
|
||||
}
|
||||
|
||||
import!(il2cpp_string_new(cstr: *const u8) -> usize = 0x115F1B0);
|
||||
import!(il2cpp_string_new(cstr: *const u8) -> usize = 0x1158AA0);
|
||||
|
||||
impl Network {
|
||||
const SDK_URL: &str = "http://127.0.0.1:20100";
|
||||
|
|
Loading…
Reference in a new issue