From fc21fff3edc33e6bcf7aa7b3ce4940312746e445 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=B6eh=20Matt?= <5415177+ZehMatt@users.noreply.github.com> Date: Sat, 23 Oct 2021 18:37:46 +0300 Subject: [PATCH 1/3] Update plugin sdk to latest --- .../pluginsdk/TitanEngine/TitanEngine.h | 1 + src/include/pluginsdk/_scriptapi_memory.h | 1 + src/include/pluginsdk/bridgemain.h | 2 ++ src/include/pluginsdk/x32bridge.lib | Bin 53804 -> 54042 bytes src/include/pluginsdk/x32dbg.lib | Bin 91992 -> 92296 bytes src/include/pluginsdk/x64bridge.lib | Bin 52634 -> 52866 bytes src/include/pluginsdk/x64dbg.lib | Bin 118436 -> 118746 bytes 7 files changed, 4 insertions(+) diff --git a/src/include/pluginsdk/TitanEngine/TitanEngine.h b/src/include/pluginsdk/TitanEngine/TitanEngine.h index 5b1a1f5..b7bcf76 100644 --- a/src/include/pluginsdk/TitanEngine/TitanEngine.h +++ b/src/include/pluginsdk/TitanEngine/TitanEngine.h @@ -57,6 +57,7 @@ #define UE_ENGINE_CALL_PLUGIN_DEBUG_CALLBACK 8 #define UE_ENGINE_SET_DEBUG_PRIVILEGE 9 #define UE_ENGINE_SAFE_ATTACH 10 +#define UE_ENGINE_MEMBP_ALT 11 #define UE_OPTION_REMOVEALL 1 #define UE_OPTION_DISABLEALL 2 diff --git a/src/include/pluginsdk/_scriptapi_memory.h b/src/include/pluginsdk/_scriptapi_memory.h index f52e0e4..828690e 100644 --- a/src/include/pluginsdk/_scriptapi_memory.h +++ b/src/include/pluginsdk/_scriptapi_memory.h @@ -13,6 +13,7 @@ namespace Script SCRIPT_EXPORT duint RemoteAlloc(duint addr, duint size); SCRIPT_EXPORT bool RemoteFree(duint addr); SCRIPT_EXPORT unsigned int GetProtect(duint addr, bool reserved = false, bool cache = true); + SCRIPT_EXPORT bool SetProtect(duint addr, unsigned int protect, duint size); SCRIPT_EXPORT duint GetBase(duint addr, bool reserved = false, bool cache = true); SCRIPT_EXPORT duint GetSize(duint addr, bool reserved = false, bool cache = true); diff --git a/src/include/pluginsdk/bridgemain.h b/src/include/pluginsdk/bridgemain.h index 5be72e7..ce069ea 100644 --- a/src/include/pluginsdk/bridgemain.h +++ b/src/include/pluginsdk/bridgemain.h @@ -1197,6 +1197,7 @@ typedef enum GUI_INVALIDATE_SYMBOL_SOURCE, // param1=duint base, param2=unused GUI_GET_CURRENT_GRAPH, // param1=BridgeCFGraphList*, param2=unused GUI_SHOW_REF, // param1=unused, param2=unused + GUI_SELECT_IN_SYMBOLS_TAB, // param1=duint addr, param2=unused } GUIMSG; //GUI Typedefs @@ -1378,6 +1379,7 @@ BRIDGE_IMPEXP void GuiInvalidateSymbolSource(duint base); BRIDGE_IMPEXP void GuiExecuteOnGuiThreadEx(GUICALLBACKEX cbGuiThread, void* userdata); BRIDGE_IMPEXP void GuiGetCurrentGraph(BridgeCFGraphList* graphList); BRIDGE_IMPEXP void GuiShowReferences(); +BRIDGE_IMPEXP void GuiSelectInSymbolsTab(duint addr); #ifdef __cplusplus } diff --git a/src/include/pluginsdk/x32bridge.lib b/src/include/pluginsdk/x32bridge.lib index 789b16be6df08e9945f175f7128f4e138d6bba7d..7422c4170bbdc542b93ae560085207384a5e80b4 100644 GIT binary patch delta 9246 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 R=hw@9=zI2c5%yp7{4X10w?F^@ diff --git a/src/include/pluginsdk/x32dbg.lib b/src/include/pluginsdk/x32dbg.lib index 78a01c7e674a8ec82650abe3e9d765bda0349d41..68b589bde6101bde59a0d210c2960099591ba7ed 100644 GIT binary patch delta 14141 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 delta 13976 zcmeHNd30CRwcZ;7gd~I^10i!lNXS4)2qX*v0z{1rAq<8PrX(P>6alRTN-0qnby>BV zU}B_gL%8{oQl+-sjuH z8ScG2xvkZn&8=!8+w{uo)jOw8PHjS$>fF4nc==ZmK-6LZ(dXerU*r>QdYE|TEU}72WfeFhD%7TamK#h>&1rutDV>5C^Kp8r+Z23Z}0yD1(<8@VpGD+H7!t z4diNwzWmsrdUFAh;P8Hf>x+p14$jq}UG=01#FU!f+CB?qLnOhR_2%1d#)1^Cp8WkP{q5!~{3fh^q02gWuDj zJ;kK4e=?C^U%kQ32Z#i>4r_3XKWTJpK`clpGKk9{7Q{Sn&<&9iB(jd75u^{oVL41Gc0YUE@wChDI2tb4cf%yhu zPZ9&PWtRpQo=5%*&!fUoEC8n=hl14A25AUAK!;ISf@8=vz=2|PEkd})V9!QG4%m+f z33eVeXqZI=aQj??@SDVf&Pz3DYc(o=D{u%3f`gbkfL;(mxtq8)G7_=UWni@)UI$neQGf-1Nbx1U^U^tWoVL=8X*ANRrFbf33 z*BXSPAO#~ah#)l7U(WOic?z@Qubm=t>?pH(t zx}2!N{Wjo!1Ab%ix?H`CxIa7q=-Y4&?vE${^lgm>59mt*y0TP*^D!_$C)R0j59AS` z;~)lbMsE!|QHcIR{C-n|zFSBF9*EQcbm~>ifBfN|(He9Tg8y#Cc^JbnzV$aNiOQ`hGSH%!YEj23Pj{rK4wF2Ni zr#0x@X@nfVdq1KL=SHwdVD6+IiT+-poD4iXr{BpOrPPJ zIi6|peM~2TP+$e_*Of92AIJ1QumU>4kbMPui*Y?T7CIA{ZjNDk0KYroS_1i{)%bC~ zf+=|h(~L@{<+y$_k*Rk%QyH$ypcGUFgSZcx#Iyvs0=zg4a#NUgO=emI{nb;M0&va8 zwHWPb=&wTG@aZ4|C-%Vh*eZ~{pJ@%+&co(Xpn5YJYtZ=dmqZ0v3S^02e4Qvan5ljj z(RkF|&98_Gf5c9UNm05DGZC1zohUX1M1b-mL_s&uw;NjpH;Aughhcbq(a8 zw`nsb$?z>;2E%DLiQa?P#e0Y*qgLy|^nsmF08{@MrWW0piV~PI;+USt{WG}Vf&2Gx z|7t8Ek&M)IW!eyrh$J%2#_vT*Op)m8fWE_M>yN(ogP3}?V_F-4bX5m3JsE~Pg2Z`v zRECgerXip3auu%SNJq&ru!r0l5ZnlIa-Ka3VzU~MruHbRaOAQxqJi`rJ%sceB&x!7 z-MtuK1m*%F?AHag)QM>j+WLdQEsVJYdeuV_s(8$_41_8=1OmfRXy{xs5-Gs_THHSy z3MJf!;<^?FUqJY~2QXbn4J<-!oV<%^=G`DIUV%^n(s>kVs{)Za3>+DWIsgiyFcW}> zqnZ3$=-sQDw)=rSGriFgxkO_!uKm$=5#DXS3U86Cjfg;2I@25slz9nHaDACx!?ma% zQzBOG4Y)4DwV*%p|1F}0YYnb_2f+3f=;mX3o`91*m^PvodS{@vaQ|jTHNx{9QTKt! z;VGhM6kT5|<*z|-HLgjSOqbEW68&4x6U{*J%sGdJ6vbBc4Jx@e)`0I(-GeawFwi>~ za6O8wERX3OtXCx*`_11r%Qg!we8ufdR+E>kg>+ z)ev|b{S{D%fWmU5DI$xh?hN{~k*2el8Mw;QyR;Y66S()sbw7yB?!y!Tx#uBY3gV}6 ze;ULe0pW{~UkC?QcVudxjH1ZL4_P!9v>jX!*1;_F&`X?oGFYeB1oXHtHhx)QV=W+mNac^$T3#kK#b04yJ$DyKS z)43=2;JMU~+j1TUayIwjHvCI#-|Uo}ne;1qkRGC+QxtdQU(nC!WjaM)(q^ilDypPu zG@0I~w`o0Xpm*pq`h-5VVrJj_|6%?=5A)k&=8Q>v`_r1;=~mC=F4lAJ2E2W4?YSV| z{;&RA&Rwjlp9lN3+wfz>+W{M|u&=8&A;OB;)ZTPtZSr$>gy!YOn|~DnBe^As@(wF| zQ=FByG0OV$m&bfYtn6J8YHk>ZXfxKD%|&)kZGC#6=ncTeh1J>0o||pW+Y)Q{`!uys z4+yn@Q03gN)_IqZ+el0FKh{0ln)YL$bzyUe&yX6@o72tko3{@4wQ6G3Lw&@Gw+*#> z5*pHjgjipU*_!;w>e!`+bz@tMPe5&J!4X#8_C}wIx0m^PtlIhr^>n(==>F{`z8<49 z;;Rtt&0tt=3$`5D$6EfC?XqU71$sgt00M8#>t@C7um!Ay-G*8=`U8d9a+PeYa0z7Z zG6Ja(2oiy*5wTXgU4hoiJMDnL^~QM2*;(i#*d!jOcRKN~#VdB%;%ZE|FR1mq3Tz|b zXChs)d!(;XRfe+3bOuOuf>$qfPPFFkb>b-kMy+_y-L~38nZDMIu2zq+Fc`a(>MFh}a!X*Mj{uqnVJS8D{vIZV#OkjR}v2RdxG%{IVU+QXfNsrv;NZami-RE*QtI^#o zFo*)fzsDxm9SBtGv$>OP5}G>ElE`StJeQVIcfiSWBR?&Y1Cball4MmM=xUpg`7y1t zuh#Y)aL=p=Yw$r+YQ3Qy2kn}lr+H%zmL}%)2c1bF;|@5|7?<)xwo|$~oWb@VvIld` zuJXgSA(dTZn?LMSQlojDpI#u=P4e^QODXEzY_`k69!q*{ekx2~Bp@`N*UU{({7vdsjcKmQ`m+Iq^?a)!-6 z=?v>u%7W6|F>z|EKi@_x>y$^!c(BUbXiu9QiRZ;X#oocz^3!fx?&Uq=j1#9LXN*H> za3~ktMo*2m;?6k{M!#Xv;jClMZhXqysHusienM@_^0?cZTJp8Wln$t94Z!$W3q0fN zG-!cj2;>XF1<}^r6AnS&{$p64KIgdR4*MWz4lecP%J$;$Hx3`WZpzO)jgYim8zQb{ zSKh(3;tP(JZR#_pQTwB9i9dy6t1>03i9?MMfB&M#mR)yu!|h38@hBNfPr4cr7Q2LtL8`8-Nd?=c7Juh4 zWv8G-yD}-xs=n&ffvq*~dykeOaMs%xEGvMN+&GvTe2;ZxVi&7sg5T{89{k}p2FtE` z8f}B6#^8z%{uhHIui3h_37xI=*Fz1-Pp-}MZ5!S?nJ5k)@Yab(bI)~0Qy+V#+%OAg z0eqZdMl&D;_DS&Sy`Rkh@Is=1Xa*7bDT$%HqZBB*F zL%+(!Y0pU&_7~MIo{hQwFgH!iUC8a(Y-HbxZQ_%EYrHQ$z7AcJvXob1oQD?owBm0# z%PLNYMzN$}Y*R(kv8Taf@%JOxge?~qXTak1#Tl^Z4aN{|+%tcFnr*YnZdLQxY1TA- zCm3~=**TQRCX3x)^H7UhI6aaV!~2DnT;b!b2hj1)1GiZcu=wE_YGX@h8*y=n_49Br zOT3)mXTzzACE4nrpQDFLQjx7VRL8OiLJvZyX33zYo_n3y*vduOK4z-o)@<*V-XfkS zoFD4uS?pA$?|h^Bw_)d8;@Df$#<6Gbt}4r)?J4B6;w759)wSiRq_%8t44Rgnu(Afv z2d%;Ps7LSOa5bkj$J+sSI79?E9Q3SF3j!Jsbn4jvo@}dJ3TVuniVx(ecC$R$=+w#c z!XgPnNlubF9O$G#$3e$mPNTm<{A(Xg{tw5k#gKY1H_3fmL@3O8NRK9GvR}(+#jCnD zkuvqA-fZUt%sC;dv|uL{-lVSzb|u|@U{jgx9R-)2H(bqPN2Zsl_skA#KXds;(C*7A zdMO~5<$2pCOjDBL%LVY0g8wl~^>E0+hDO=akl`^NfcPDQ%O5`U#POCccAUkD_ zN^FQr#goaW5Zk)^B(*-ol}I_uYLe+7`7}uWZcu{C4|Pe{k5Q^7l%3T80sKm1V$-qlkTML9u{g>PvTo84C}i(-2dm7e%$ zUr*m?e!#8_*IlWn*3l_?qdgEqM`*P zDu2}i)`4s+@nI^8o zFU0?${+`D1YD79Gcw#7T-?WgdyXpz zdC9mLF&tg#dCBNFq3|u$(R0jA&U2cZc(EtX<%Oex?_{?#gztQ}YsP0kr`bbyC+Hp; zbtk&`Jm}RkLBZF;+co3kp|@EVmZWwsMrmJir%~{+(b02U#1}rN*{LghdGt2hqZ|-l zCMBvb2f8Mpqliz6UPa>!zC_-x8Q%}R&32t0kvc8;AmL8q;7g=e(~N^p^0#aDAL2C2 z#yxuohw2xD!x6U=7;5l1ycpb;m~72U3{zhWaa?OsD6vDGLTS?V!kxQJkYmdde@}0678BMi-ly*UUa`!4TU_!r)_i6`4a2rU?Hy7yI?k#`UX<@O{Da5 ziXKOvQ_icO-OYD38%HNh#8+n+YLhBsV(>N0H52sPji*N?_uEOxTt0ZWHHx561N{9G_TJ4e5V&m?U97!s(4h> zKS{k7;cPrQMe=rECqSO=uBi`3@GzT+C#u&m$o{%+s$!&L!TXqbgZ%2OWUI|#cPz|9 zvnC>s8#jeW@sLC{b<~~A{D^^S3zF5LQB9_ZP}PQn>Mb$!+~BTiO0grR9xLYb06C?0 zhDZac_lh~gb_d@)O-;w3lT^%T&hhl=cuF6$zjee4Q7cBfIEuC{(E<_=wF^5aec@~QL5#5Z+@Ei9;7CXciHgdsGa(Byemf@ z`@v$r7WT*8=d!OIeD1!+!(0M*v`73Jp6{$S+~vKDVsjP{P>-Ms&vn-2hg!=77cb46bbx~aI z;_WHBNcA&!pNCbH+F9;mrNf;vi9=e+)QnZz$}s~bOyW2voXzG$jCyO5t1g;P8f-U{ zT>^IIwPTX`IQ84fuF{qzSBFNH)p&#^?$an0F~tduyvB=ALQ|WFg;;`mXi8H*sBg8m87&xJJ<7xKYtKm*U}V zD#Vs|3|BoXU9L12OM}?DPT}h1W@0ksbPi<7r9-U8XI(tC?QuOr9jW3l^=K6*+p*E3 zc~a0rr0kgszfE9M)qyHRzQe!Usrl1gUdh2mM?PJRna)Y-!gS|J()*~HC5A)Qv>C2x zZ#%1}sKg{&rs&*%hp9s|TtR8RR`ybP_q)nf3P4wpEVMbQb|!~ggWI=NPgc3OVl=}w zS-pHeN2%|tILVHL=Y-ZrEO<|7@{q0_?V)}*6Hmj@pR`wVW_Yce*Je5+Qq6hnUl$sw c{_>Nio_H3szN+CT?nR;5)a|E!`T)oM4|qZy`v3p{ diff --git a/src/include/pluginsdk/x64bridge.lib b/src/include/pluginsdk/x64bridge.lib index abce042a643f50b2c37ebc9c7b93fe6e093df215..5703dd3e7d1e2dc595cd947d56774abfd5a502b8 100644 GIT binary patch delta 9460 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 bBNczHa$1FAS*yFs?W$Ok&3#WTygK;*QjV!k delta 9128 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 GBmWOKZ+Qv; diff --git a/src/include/pluginsdk/x64dbg.lib b/src/include/pluginsdk/x64dbg.lib index cf19a55b694e2300015142981fcbe3a8daf1fad9..0c3b6c987998815f17d3290a88eac37ebfba5d72 100644 GIT binary patch delta 18947 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 delta 18715 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 Date: Sat, 23 Oct 2021 18:48:58 +0300 Subject: [PATCH 2/3] Add Memory.GetProtection/SetProtection bindings --- src/Bindings/Memory.cpp | 12 ++++++++---- src/Dotx64Managed/API/Memory.cs | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/Bindings/Memory.cpp b/src/Bindings/Memory.cpp index 2172b70..fe5471f 100644 --- a/src/Bindings/Memory.cpp +++ b/src/Bindings/Memory.cpp @@ -90,14 +90,18 @@ namespace Dotx64Dbg::Native return (int)bytesWritten; } - static uint32_t GetProtection(duint addr) + static uint32_t GetProtection(System::UIntPtr addr, bool useCache) { - return 0; + auto va = static_cast(addr.ToUInt64()); + + return Script::Memory::GetProtect(va, false, useCache); } - static uint32_t SetProtection(duint addr, uint32_t prot) + static bool SetProtection(System::UIntPtr addr, uint32_t prot, int size) { - return 0; + auto va = static_cast(addr.ToUInt64()); + + return Script::Memory::SetProtect(va, prot, (duint)size); } static System::UIntPtr GetBase(System::UIntPtr addr) diff --git a/src/Dotx64Managed/API/Memory.cs b/src/Dotx64Managed/API/Memory.cs index a45fc34..66917f0 100644 --- a/src/Dotx64Managed/API/Memory.cs +++ b/src/Dotx64Managed/API/Memory.cs @@ -90,5 +90,23 @@ public static nuint GetBase(ulong address) { return GetBase((nuint)address); } + + public static Protection GetProtection(nuint address, bool useCache) + { + return (Protection)Native.Memory.GetProtection(address, useCache); + } + public static Protection GetProtection(ulong address, bool useCache) + { + return GetProtection((nuint)address, useCache); + } + + public static bool SetProtection(nuint address, Protection protect, int size) + { + return Native.Memory.SetProtection(address, (UInt32)protect, size); + } + public static bool SetProtection(ulong address, Protection protect, int size) + { + return SetProtection((nuint)address, protect, size); + } }; } From d9d1e2795abf344840169e9c57b35fbffd9fcffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=B6eh=20Matt?= <5415177+ZehMatt@users.noreply.github.com> Date: Sat, 23 Oct 2021 19:01:48 +0300 Subject: [PATCH 3/3] Update documentation --- src/Dotx64Managed/API/Memory.cs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/Dotx64Managed/API/Memory.cs b/src/Dotx64Managed/API/Memory.cs index 66917f0..0957072 100644 --- a/src/Dotx64Managed/API/Memory.cs +++ b/src/Dotx64Managed/API/Memory.cs @@ -7,6 +7,7 @@ public static partial class Memory [Flags] public enum Protection { + Invalid = 0, NoAccess = 0x01, ReadOnly = 0x02, ReadWrite = 0x04, @@ -91,6 +92,14 @@ public static nuint GetBase(ulong address) return GetBase((nuint)address); } + /// + /// Gets the protection of the memory, if the cache is used this is the last queried page info. + /// It is normally safe to use the cache for performance, when the cache is used the internal + /// API will not use a syscall to determine the protection. + /// + /// Address of the page to query + /// If this is true it will use the last queried page information + /// In case of failure the result is Protection.Invalid otherwise actual protection public static Protection GetProtection(nuint address, bool useCache) { return (Protection)Native.Memory.GetProtection(address, useCache); @@ -100,6 +109,18 @@ public static Protection GetProtection(ulong address, bool useCache) return GetProtection((nuint)address, useCache); } + /// + /// Sets a new protection on the specified address, the address will be aligned to page + /// boundaries and sets the entire page which is by 4 KiB. This may split up + /// an existing range from the memory map. + /// Internally the size will be always aligned to a minimum of a single page, if the size + /// spans more than two pages then both pages will be modified. + /// This will also update the cached protection info + /// + /// Address of the page + /// New protection + /// The size of the range + /// True on success public static bool SetProtection(nuint address, Protection protect, int size) { return Native.Memory.SetProtection(address, (UInt32)protect, size);