old sdk generator dll
This commit is contained in:
parent
679f97397a
commit
f57d3491e4
|
@ -5,4 +5,24 @@ edition = "2021"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
name = "sdk_generator_version"
|
||||||
|
path = "src/lib.rs"
|
||||||
|
crate-type = ["cdylib"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
log = "0.4.0"
|
||||||
|
anyhow = "1.0"
|
||||||
|
pdb-helper = {path = "../pdb-helper"}
|
||||||
|
|
||||||
|
simple_logger = "*"
|
||||||
|
|
||||||
|
unreal-sdk = {path = "../unreal-sdk"}
|
||||||
|
|
||||||
|
[dependencies.windows]
|
||||||
|
version = "0.44"
|
||||||
|
features = [
|
||||||
|
"Win32_Foundation",
|
||||||
|
"Win32_System_Threading",
|
||||||
|
]
|
11
sdk-generator/build.rs
Normal file
11
sdk-generator/build.rs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
use std::path::PathBuf;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
println!("cargo:rerun-if-changed=build.rs");
|
||||||
|
|
||||||
|
let root = PathBuf::from(std::env::var("CARGO_MANIFEST_DIR").unwrap());
|
||||||
|
|
||||||
|
let def = root.join("proxy.def");
|
||||||
|
println!("cargo:rustc-link-lib=dylib=d3d11");
|
||||||
|
println!("cargo:rustc-link-arg=/def:{}", def.display());
|
||||||
|
}
|
20
sdk-generator/proxy.def
Normal file
20
sdk-generator/proxy.def
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
LIBRARY VERSION.dll
|
||||||
|
EXPORTS
|
||||||
|
GetFileVersionInfoA=c:\windows\system32\version.dll.GetFileVersionInfoA
|
||||||
|
GetFileVersionInfoByHandle=c:\windows\system32\version.dll.GetFileVersionInfoByHandle
|
||||||
|
GetFileVersionInfoExA=c:\windows\system32\version.dll.GetFileVersionInfoExA
|
||||||
|
GetFileVersionInfoExW=c:\windows\system32\version.dll.GetFileVersionInfoExW
|
||||||
|
GetFileVersionInfoSizeA=c:\windows\system32\version.dll.GetFileVersionInfoSizeA
|
||||||
|
GetFileVersionInfoSizeExA=c:\windows\system32\version.dll.GetFileVersionInfoSizeExA
|
||||||
|
GetFileVersionInfoSizeExW=c:\windows\system32\version.dll.GetFileVersionInfoSizeExW
|
||||||
|
GetFileVersionInfoSizeW=c:\windows\system32\version.dll.GetFileVersionInfoSizeW
|
||||||
|
GetFileVersionInfoW=c:\windows\system32\version.dll.GetFileVersionInfoW
|
||||||
|
VerFindFileA=c:\windows\system32\version.dll.VerFindFileA
|
||||||
|
VerFindFileW=c:\windows\system32\version.dll.VerFindFileW
|
||||||
|
VerInstallFileA=c:\windows\system32\version.dll.VerInstallFileA
|
||||||
|
VerInstallFileW=c:\windows\system32\version.dll.VerInstallFileW
|
||||||
|
VerLanguageNameA=c:\windows\system32\version.dll.VerLanguageNameA
|
||||||
|
VerLanguageNameW=c:\windows\system32\version.dll.VerLanguageNameW
|
||||||
|
VerQueryValueA=c:\windows\system32\version.dll.VerQueryValueA
|
||||||
|
VerQueryValueW=c:\windows\system32\version.dll.VerQueryValueW
|
||||||
|
|
|
@ -1,14 +1,88 @@
|
||||||
pub fn add(left: usize, right: usize) -> usize {
|
use std::{collections::HashSet, time::Duration};
|
||||||
left + right
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
use pdb_helper as pdb;
|
||||||
mod tests {
|
use simple_logger::SimpleLogger;
|
||||||
use super::*;
|
use unreal_sdk::sdk::output::rust::generate_partial_sdk_to_tmp;
|
||||||
|
use windows::s;
|
||||||
|
|
||||||
#[test]
|
#[no_mangle]
|
||||||
fn it_works() {
|
pub extern "win64" fn DllMain(_module: usize, reason: u32, _: usize) -> bool {
|
||||||
let result = add(2, 2);
|
match reason {
|
||||||
assert_eq!(result, 4);
|
1 => {
|
||||||
|
if std::env::current_exe()
|
||||||
|
.expect("current exe")
|
||||||
|
.file_name()
|
||||||
|
.expect("file name")
|
||||||
|
.to_string_lossy()
|
||||||
|
== "ShooterGame.exe"
|
||||||
|
{
|
||||||
|
SimpleLogger::new().init().unwrap();
|
||||||
|
log::info!("hello");
|
||||||
|
std::thread::spawn(move || {
|
||||||
|
let _wnd = loop {
|
||||||
|
let window = unsafe {
|
||||||
|
windows::Win32::UI::WindowsAndMessaging::FindWindowA(
|
||||||
|
None,
|
||||||
|
s!("ARK: Survival Evolved"),
|
||||||
|
)
|
||||||
|
};
|
||||||
|
if window.0 != 0 {
|
||||||
|
log::debug!("found window: {window:?}");
|
||||||
|
break window;
|
||||||
|
}
|
||||||
|
|
||||||
|
log::trace!("window was 0");
|
||||||
|
std::thread::sleep(std::time::Duration::from_millis(150));
|
||||||
|
};
|
||||||
|
|
||||||
|
let globals = pdb::get_pdb().find_ue_globals().expect("globals");
|
||||||
|
unreal_sdk::global_tables::names::GNAMES
|
||||||
|
.write()
|
||||||
|
.unwrap()
|
||||||
|
.set_names(globals.names.cast());
|
||||||
|
unreal_sdk::global_tables::objects::GOBJECTS
|
||||||
|
.write()
|
||||||
|
.unwrap()
|
||||||
|
.set_objects(globals.objects.cast());
|
||||||
|
|
||||||
|
std::thread::sleep(Duration::from_secs(30));
|
||||||
|
let sdk = unreal_sdk::sdk::Sdk::new().patch();
|
||||||
|
_ = generate_partial_sdk_to_tmp(
|
||||||
|
&sdk,
|
||||||
|
HashSet::from_iter([
|
||||||
|
"Package_ShooterGame",
|
||||||
|
"Package_DeathItemCache",
|
||||||
|
"Package_WeapC4",
|
||||||
|
"Package_ExplorerChest_Base",
|
||||||
|
"Package_PointOfInterestBP_MissionStart",
|
||||||
|
"Package_BP_DedicatedStorage",
|
||||||
|
"Package_ElectricGenerator",
|
||||||
|
"Package_ExplorerChest_Base",
|
||||||
|
"Package_FeedingTroughBaseBP",
|
||||||
|
"Package_MilkGlider_Character_BP",
|
||||||
|
"Package_PointOfInterestBP_MissionStart",
|
||||||
|
"Package_SleepingBag",
|
||||||
|
"Package_StorageBox_Huge",
|
||||||
|
"Package_StorageBox_TekGenerator",
|
||||||
|
"Package_StructureAmmoContainer",
|
||||||
|
"Package_StructureTurretBaseBP_Heavy",
|
||||||
|
"Package_StructureTurretBaseBP",
|
||||||
|
"Package_StructureTurretTek",
|
||||||
|
"Package_Structure_DinoLeash",
|
||||||
|
"Package_Structure_TekAlarm",
|
||||||
|
"Package_BP_DedicatedStorage",
|
||||||
|
"Package_Buff_Companion_HLNA",
|
||||||
|
"Package_Buff_TekArmor_Pants",
|
||||||
|
"Package_Buff_TekArmor_Gloves",
|
||||||
|
"Package_Buff_TekArmor_Sword",
|
||||||
|
"Package_Buff_TekArmor_Shirt_Rework",
|
||||||
|
]),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ => {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
true
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue