-
Notifications
You must be signed in to change notification settings - Fork 497
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PspCidTable address #41
Comments
I thought about a pattern matching vs disasm on a design step and from my point of view a pattern matching has a much bigger chance to miss a signature or receive a wrong object. In case of disasm you scan exact place where the object should appears and it decreases a chance to get a wrong object. That is more important for me than a binary size because I do want to make a stable driver (not a PoC quality) even if it makes a tricky stuff in a kernel. |
Disasm cannot find PspCidTable on my win10 pro 21H1. Pattern matching is such stable in ntoskrnl on win10, okay I dont care about win7/8. Even you dont want that, switch with win ver is an other option like this: |
I don't think my approach is bad just because it doesn't work on 21H1, I expect it should be easy to fix. A process hiding feature isn't completed right now and it's possible to have issues on the latest NT versions. I'm planning complete a feature soon and pretty sure it will work good enough with CidTable. I'm really don't care about it cuz there are another unsolved challenges for instance looking for a PspActiveProcessLock that is needed to respect an ActiveProcessLink synchronization to avoid list corruptions during a manipulation over it. Disasm can't find it because such object is too small and requires to trace too deep (with sub calls etc) and I even checked an ability to find it via pattern matching but as far as I remember binary pattern wasn't good enough too. |
Thanks for your great work again and again. |
@oiramario could you please provide ntoskrnl.exe from the machine where injection doesn't work |
ntoskrnl.zip |
@oiramario it seems strange, I verified kernels you provided and even checked 21H1 on a VM and an analyzer should find PspCidTable without any issue. Do you have additional components on your systems that might install splicing\EAT hooks to PsLookupProcessByProcessId or PspReferenceCidTableEntry routines? |
log.zip |
@oiramario if you have attached debugger to VM could you please run the following commands:
and provide here an output Thanks! |
PBYTE PspCidTableAddress = FindPatternImage(base, "\x48\x8B\x0D\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x49\x89", "xxx????x????xx");
Disasm could be removed.
hidden.sys size from 400KB reduce to 50KB.
The text was updated successfully, but these errors were encountered: