From fd3bdc7166c9afe8e6292f29fee179b98cbc3342 Mon Sep 17 00:00:00 2001 From: IQuant Date: Sat, 30 Nov 2024 17:54:23 +0300 Subject: [PATCH] Some stuff that might help with reversing noita --- ewext/src/lib.rs | 18 ++++++++ shared/Cargo.lock | 107 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 shared/Cargo.lock diff --git a/ewext/src/lib.rs b/ewext/src/lib.rs index 6c5aac53..cfb62d19 100644 --- a/ewext/src/lib.rs +++ b/ewext/src/lib.rs @@ -251,6 +251,14 @@ fn test_fn(_lua: LuaState) -> eyre::Result<()> { Ok(()) } +fn probe(_lua: LuaState) { + backtrace::trace(|frame| { + let ip = frame.ip() as usize; + println!("Probe: 0x{ip:x}"); + false + }); +} + fn __gc(_lua: LuaState) { println!("ewext collected in thread {:?}", thread::current().id()); NETMANAGER.lock().unwrap().take(); @@ -265,6 +273,15 @@ fn __gc(_lua: LuaState) { pub unsafe extern "C" fn luaopen_ewext0(lua: *mut lua_State) -> c_int { println!("Initializing ewext"); + println!( + "lua_call: 0x{:x}", + (*LUA.lua_call.as_ref().unwrap()) as usize + ); + println!( + "lua_pcall: 0x{:x}", + (*LUA.lua_pcall.as_ref().unwrap()) as usize + ); + unsafe { LUA.lua_createtable(lua, 0, 0); @@ -284,6 +301,7 @@ pub unsafe extern "C" fn luaopen_ewext0(lua: *mut lua_State) -> c_int { add_lua_fn!(on_world_initialized); add_lua_fn!(test_fn); add_lua_fn!(bench_fn); + add_lua_fn!(probe); add_lua_fn!(netmanager_connect); add_lua_fn!(netmanager_recv); diff --git a/shared/Cargo.lock b/shared/Cargo.lock new file mode 100644 index 00000000..2cc8b06f --- /dev/null +++ b/shared/Cargo.lock @@ -0,0 +1,107 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "bitcode" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee1bce7608560cd4bf0296a4262d0dbf13e6bcec5ff2105724c8ab88cc7fc784" +dependencies = [ + "arrayvec", + "bitcode_derive", + "bytemuck", + "glam", + "serde", +] + +[[package]] +name = "bitcode_derive" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a539389a13af092cd345a2b47ae7dec12deb306d660b2223d25cd3419b253ebe" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "bytemuck" +version = "1.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" + +[[package]] +name = "glam" +version = "0.29.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc46dd3ec48fdd8e693a98d2b8bafae273a2d54c1de02a2a7e3d57d501f39677" + +[[package]] +name = "proc-macro2" +version = "1.0.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "serde" +version = "1.0.215" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.215" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "shared" +version = "0.1.0" +dependencies = [ + "bitcode", +] + +[[package]] +name = "syn" +version = "2.0.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "unicode-ident" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"