From 970561afb9a95a90bed12ce8e2da4e928ae6a682 Mon Sep 17 00:00:00 2001 From: mkrsym1 Date: Fri, 4 Aug 2023 14:28:30 +0300 Subject: [PATCH] Change pe_find_section interface again, add error handling --- game_payload/blob/core.o | Bin 8050 -> 8306 bytes game_payload/include/pe.h | 6 +----- game_payload/src/pe.c | 9 ++++----- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/game_payload/blob/core.o b/game_payload/blob/core.o index 84dbad4efb246574613d89926028a2af115e3c73..6cc56b7e6f7d1610ceee9f0f42596b53325c320e 100644 GIT binary patch delta 2373 zcmZXVe{2(F7{}l1+O1=4t`mmCfE?R_&Wy2|p&RIEp@Vm^8w2?<6*n5%j_PPqPEe*cc0YJyB2E*2aGH z{boYSEt*A0F1mv>ILg{5`^nJV+T;_>LCPIvZIk^9G2aHiPbT7J!`A#3RHScY7QtfJ zm&=|J=4Bs)-++ZJ7m8S0meDX|VL_oN`#jX&E$lGV{w$+#i=7dQO~VjJ*&m>B&^WUi zinGlq%V1?M8H%zCffg%k0zMC%Ze@Fcl|aeLjsq$11uMG>Yy?(V*(2a)V6~Oa%PPul z2U07m2krx|wz6%&9^eKm`y6--=(n-~;7MScm5pZ26V9;$Q?7!7f8<36}K8Ia45$9@=U4owua zYf&~CKcd1=>Lyj^^V`*h+C`kbN4pTJt}k>e|MEZ-k@h@9GOEKu6Nlton0KBm*Sr$) z%(A*fX^vY-PGpgA$qiIJB==w%Dpg!^C6i3k7CTZywCaY~ImoN}%RVU1)&dc=0YP0h z8%?^Yr9^nV?(%A)JWBdnpC%3=~A(T z+R{y|B89Cjo{FNijj^&kW#d^T2Op$TleSNcB-%`|nhYguS(t5*t!qLM!l^h$FhQXq)2OloNLc_Kb3 z)aDCHo}d(nM7F{TO3}?e=^c;P7l`_#u&*r?2}DET4k^;++Z6D31cEJ6M`&wUYVmCG zNj`5N8VCg!gncczNS;zWVVf@;fkBFp{o6Qvqv$I7QS?6aA@tkmqpZXH94j@;`C6Sa zj%uxy<9eX?J9CE+I|Fk8x{>^f@nud|FjjKXUd$>^Q?dJB@31 zTT9bdpw)cViA1V6xk0aUY6LAJB!&k!0~d4gUC=9>!k||IOMD^?;n5 zz634h^fhQ1rxPIT0zBgfPz|RGpyiw{fnqB-8t_8WS?7S(aBUfAEvFXHI!@a`l#_O1 zmT=mUp!Oninn^j=%4j?6&9T3;CTwC5;7$i&h9wUBWPqZh0v?g{(EbN_cTV>$kI@o(p z6~{U={*tzYXa_S2et=v#u2U}Pls|QfL9211rQx%=* z71!Ys$Pj|@5u?PvjQ`YxVkEYSJgR?qs1Oo`5DW=T6cHno=lY%5Yq9PoGxwR#{N^_^ zJG*TrYaF246)H=$P@SV0G zgCval4a4Iy@EOEe6>h9ZX^@OjzkYaJ4E|%peO8VO$+(2kFwGsuRYmo6hxxtAq|hnE zovYw;m3Zg^@b?P77B~RBQo;8s@nBfY!Vf7Ef-%rYejYR#RKqKM6GF2<<5WJw7Y|Y3 zWR))mE(1QI@=o9yV3W$f0Ja0?s{ADI9biV~w}JbB&#HWqKh6y$;LECffj=JVhFz=j zS7CR-wyXRj*i*3ERDJ~ZEbLB|U-VB>4)f80sqwG%9v>mp{)@6q_=4D|#U_d$sFd@w z#a`ywzytZW^jc@MtFJ**`#Sn%c%ertY;+u_<82bQ*qbqJ$11c~3!z1Kz>9%xR4F-U zEjC>yU~|MzP8)Ax61F&I6-_;3+1Jv_ZJCfVOV7~a9(@bKQr!vEPToz0NW<-Bd-Q$i zpth+e(snOpL9`HUl;td^WHnyZIyTGA4J7-t@mtVESVpBqGa98utE$>+ytLsWwZBUp zG|-jmCQ(9?eS`b#T}4@7;tKRo##ylTDH=1GQQK1J)3#S5ZL%k=l;kc_Y}yv8oXlwXL9rtiH2AGxY^q%335fKePg(s}7d~P2 z<&{$Vm{nXIJ!0zVaQf=`qo&@%+d`xB-6O?{>Pp&y=gk#Yf67f5yX2@si&@>W&mBnx z!rFmfOg2xYk?(0oZ&2P*wp49N_M{FvI9Q6CWe*_ReA!Ztr;ANB$scp3oeE&UsH3UN zq9bQ7(ih-~uoN8h!T}a#Mj&mMEG2&(p(D*Az1~vSYufXDX?yGlv5Rd@ICcwXmoS+; zrt%5N(}cl^luwDW)`Sz4E9<{?Qw;j=gVF!_EsuKdj>=Q_`RVVx;|A46uUg?%tzI=7 zDu)}t9k&*@sG~=*8jooO|82+VuS1pW>laH%Ug^J2I6fu3;I1<_9EUOle_Q+9@;2(6 z-NmhlUKdA#I()bcl%*(ZQ3@y@pmd>Jl2f4K6C)2+iAD)_@VB9BYvgq${|(wnlmPhw z^-M`8QO}YjQY@4d!4vhQq=!J3q*p+#lKup_S^gQKJRaPqWp5>>ZIl!PJtIj6%_by| zi5~_&D&Gha19&_V=2G2mO{6{R7>8^2x$1L)gb;Hcg PuG2N`k*>CJ)xLiLA~>%b diff --git a/game_payload/include/pe.h b/game_payload/include/pe.h index f24195f..7233a21 100644 --- a/game_payload/include/pe.h +++ b/game_payload/include/pe.h @@ -2,10 +2,6 @@ #include -struct pe_section_info { - void *base_address; - size_t initialized_size; -}; +IMAGE_SECTION_HEADER *pe_find_section(HMODULE module, const char *section); -void pe_find_section(HMODULE module, const char *section, struct pe_section_info *buf); void *pe_find_entry_point(HMODULE module); diff --git a/game_payload/src/pe.c b/game_payload/src/pe.c index 9d0ba23..12273b6 100644 --- a/game_payload/src/pe.c +++ b/game_payload/src/pe.c @@ -1,6 +1,6 @@ #include -void pe_find_section(HMODULE module, const char *section, struct pe_section_info *buf) { +IMAGE_SECTION_HEADER *pe_find_section(HMODULE module, const char *section) { char *cModule = (char*)module; IMAGE_DOS_HEADER* dosHeader = (IMAGE_DOS_HEADER*)module; @@ -11,14 +11,13 @@ void pe_find_section(HMODULE module, const char *section, struct pe_section_info for (WORD i = 0; i < sectionCount; i++) { if (strncmp((char*)sectionHeader->Name, section, 8) == 0) { - break; + return sectionHeader; } sectionHeader++; } - - buf->base_address = cModule + sectionHeader->VirtualAddress; - buf->initialized_size = sectionHeader->SizeOfRawData; + + return NULL; } void *pe_find_entry_point(HMODULE module) {