From 22e6c6ea83d9614f74551d64c4dbabbbc47e10e2 Mon Sep 17 00:00:00 2001 From: wj32 Date: Sat, 18 Apr 2009 08:17:33 +0000 Subject: [PATCH] fixed object manager offsets git-svn-id: svn://svn.code.sf.net/p/processhacker/code@1088 21ef857c-d57f-4fe0-8362-d861dc6d29cd --- trunk/KProcessHacker/i386/kprocesshacker.sys | Bin 14336 -> 14336 bytes trunk/KProcessHacker/include/ob.h | 1 + trunk/KProcessHacker/include/version.h | 2 ++ trunk/KProcessHacker/ob.c | 8 ++++---- trunk/KProcessHacker/version.c | 4 ++++ 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/trunk/KProcessHacker/i386/kprocesshacker.sys b/trunk/KProcessHacker/i386/kprocesshacker.sys index 0b5585cd242b495f5286841f44a39a492932200c..628b5e404dc84d9353f143cef3ac11faf49463c3 100644 GIT binary patch delta 1391 zcmZ9Me@qi+7{~7^lrcuBl(k5uiiQ5rAYR|QYp-|L7L_7IC7{fhY1A!l0bP{o$o#qD z8Z!}auqRWLWYf7Bo%SdwzPYA`riS*Lx(%%zx2jSG@&P%hgeKep%i$(ogS+62ozsN@M$wph6b|4Qsbaw+ zU>G@WY~9T;%+eMiodu@O?F6PRJXWnUa z+f5}n9>e%9b^DqniGhAqZBA3 z*UTN}2DzJ@p5Md|@zVuPs2AFWqe8b37p@351kM}wZu7q9?eX?|Z+J(%_qo$amW}?t4OXi9xX;B1XjBVyF0>I4Y+3bNsXX$Ng9QzxY8iOGGM{7E6s%k2E0t zDBY4CNe0;}7t4#~cDYmjSdPno$f*iZ!pbwsI%TU8RZb{Zl@aBRk{(b3ivp_y^?_}H zJ%M)vCjz~J3xTxYoM2^eWpH!wo#4sfP%sf34@R;=wvaP4C$u)SBeXZv6*?L^8~P!1 zH$?AA0i*phm<-m&masBg&Ni}9wu9|rkFnR-U)eF%D^eTp{gW6Sb^3EtOLEe{bN)bc5>(f10ssj3=S zM`?c!9SrZ*%BQu`qLtgU(h*92XaFEPG#t%EKtU)w<}84K!?Bfc2A`eK0WzlOH$egJ z)|bK}ysOWJRJ6wRQsq|Mb~?E+{wvCl8*(8Z*Bhom8@_AEfOVnM1{1*A&`<)s1Z_4W zgPm9e9gy5VHTs3*2M36Fs3dTRo&rgtV{C8bN^E< z7*1-0KHTu|t1yi5rW$xL)MQ%4Hbq#PCUw*Q0#8m_5%*?CVE-e-kuyX6DS0_@-?X4? zp08_7XP7>0Hv4o348XjH7tJXN=MsVGqd~W*Lp1-G2zbSuXc#mCbB%_k57Rti#N1S) zr_cnWcuPV>sYnO+*xPc*qBn^$1(YzuVLh+VbIATdhO-!D^iN{ux!haXmN^seft4pVZb7 zesCHkYX-DnsWlT`##(D4yn-!OKg_~w)*@ihWwSy6m)P=IwFlp_C9~gmW2cQC1^aE2 z*_+)sV&h>I=4IuwmpXAtRvt*WD{GFayp!IBVYQU%2(Zfo3Gx*^m}0$v!w9=A%yVRGUZ^u@fgz$fIN)DIw)#6WK-fl3wyH z=_iBaI{B5{B@Ca;=kP`RGyHnKmH(K(#6Kal3-^Wb;&d?}ZWgzR`@}=yQE|M(>?n3@ za5OmHa2$1XIeHy7=W^#7XVBT~YkC*Y~@Z1L>#obU{I#>r-Rnmki3 zl1t>Ed|2+1Ps&&2iHcQ`l<7*bvP^kF2`bIXJIZCnDc=fTrEjxukME$b$2aJ^tGg<;BQisBNuRBkR;!mZ>gxf<>R?sM)8 z_Y?O!$J!^^pR_NvSK4ds+w6PnhwWYVoAwxDAQqBCTx0<`LK^rV_&@k)VWMCWas)|O aB$NxQ>6dB~&x+KXV;CuPLiDhWT=ZWUPSa=r diff --git a/trunk/KProcessHacker/include/ob.h b/trunk/KProcessHacker/include/ob.h index e9a9a9b1e..26730415f 100644 --- a/trunk/KProcessHacker/include/ob.h +++ b/trunk/KProcessHacker/include/ob.h @@ -23,6 +23,7 @@ #ifndef _OB_H #define _OB_H +#include "types.h" #include "ex.h" #define OBJECT_TO_OBJECT_HEADER(o) \ diff --git a/trunk/KProcessHacker/include/version.h b/trunk/KProcessHacker/include/version.h index 36cd8cf6e..ebae4926f 100644 --- a/trunk/KProcessHacker/include/version.h +++ b/trunk/KProcessHacker/include/version.h @@ -54,6 +54,8 @@ EXT ULONG OffEtClientId; EXT ULONG OffEtStartAddress; EXT ULONG OffEtWin32StartAddress; EXT ULONG OffEpJob; +EXT ULONG OffEpObjectTable; +EXT ULONG OffEpRundownProtect; EXT ULONG OffOtiGenericMapping; #endif diff --git a/trunk/KProcessHacker/ob.c b/trunk/KProcessHacker/ob.c index 4f666e9cf..b3ca21b58 100644 --- a/trunk/KProcessHacker/ob.c +++ b/trunk/KProcessHacker/ob.c @@ -139,7 +139,7 @@ VOID KphObDereferenceProcessHandleTable( PEPROCESS Process ) { - ExReleaseRundownProtection(&((PEPROCESS2)Process)->RundownProtect); + ExReleaseRundownProtection((PEX_RUNDOWN_REF)KVOFF(Process, OffEpRundownProtect)); } NTSTATUS KphObDuplicateObject( @@ -263,12 +263,12 @@ PHANDLE_TABLE KphObReferenceProcessHandleTable( { PHANDLE_TABLE handleTable = NULL; - if (ExAcquireRundownProtection(&((PEPROCESS2)Process)->RundownProtect)) + if (ExAcquireRundownProtection((PEX_RUNDOWN_REF)KVOFF(Process, OffEpRundownProtect))) { - handleTable = ((PEPROCESS2)Process)->ObjectTable; + handleTable = *(PHANDLE_TABLE *)KVOFF(Process, OffEpObjectTable); if (!handleTable) - ExReleaseRundownProtection(&((PEPROCESS2)Process)->RundownProtect); + ExReleaseRundownProtection((PEX_RUNDOWN_REF)KVOFF(Process, OffEpRundownProtect)); } return handleTable; diff --git a/trunk/KProcessHacker/version.c b/trunk/KProcessHacker/version.c index 2ae87e47b..d6e6411bc 100644 --- a/trunk/KProcessHacker/version.c +++ b/trunk/KProcessHacker/version.c @@ -44,6 +44,8 @@ NTSTATUS KvInit() OffEtStartAddress = 0x224; OffEtWin32StartAddress = 0x228; OffEpJob = 0x134; + OffEpObjectTable = 0xc4; + OffEpRundownProtect = 0x80; OffOtiGenericMapping = 0x68; dprintf("Initialized version-specific data for Windows XP\n"); } @@ -57,6 +59,8 @@ NTSTATUS KvInit() OffEtStartAddress = 0x1f8; OffEtWin32StartAddress = 0x240; OffEpJob = 0x10c; + OffEpObjectTable = 0xdc; + OffEpRundownProtect = 0x98; OffOtiGenericMapping = 0x34; dprintf("Initialized version-specific data for Windows Vista\n"); }