#1
|
|||
|
|||
How to access an invalid registry key?
Hi,
Looking at a software protection that stores some data in an invalid registry key. Trying to open/delete/rename the key results in "Cannot open <keyname>: Error while opening key." How do I see what is in there, rename it or delete it? Thanks in advance! bb |
#2
|
|||
|
|||
Quote:
For Antivirus / Firewalls : They are not invalid key, the Anti/Fire software uses the SSDT Hook to prevent their changes... To clean SSDT hook try SSDT Unkookers Tools before manipulate these keys . |
#3
|
|||
|
|||
Hi STRELiTZIA,
It is a simple time trial that I suspect is hiding the 'start date/run times' etc in this key, but since I can't look at it, delete it or rename it, I can't confirm that is the case just yet. I will try the SSDT Unhooker you mention - thanks! bb |
#4
|
|||
|
|||
Managed to find the contents, and delete it using Registry Trash Keys Finder using the 'Search Null-embedded Keys' option.
Reset the trial perfectly. Now just to reverse RTKF to find out how it deletes the key and I can make my own automated trial reset for the software. Simples! Thanks all. bb |
#5
|
|||
|
|||
Quote:
You can download the original RegHide with source here: Code:
http://court.shrock.org/sysinternals-bt/RegHide.zip |
#6
|
|||
|
|||
Wow - great find LouCypher!
Thanks a lot - I'll read into that this evening (or today if my boss stays in his office ) Thanks mate! |
#7
|
|||
|
|||
That error also occurs when you do not have the rights to change that key, e.g. with some services. Simply right click the registry entry and check the Permissions. They are probably set to not allow that much.
|
#8
|
|||
|
|||
Hi piccolo,
In this instance it wasn't a rights issue - it was the NULL terminated key name. I was hoping to modify the source code from Sysinternal's RegHide but my C skillz are so weak that I can't even get the original source to compile without a bunch of errors such as : 41 C:\RegHide\REGHIDE.C invalid conversion from `int (*)()' to `NTSTATUS (*)(void*, DWORD, OBJECT_ATTRIBUTES*, DWORD, UNICODE_STRING*, DWORD, long unsigned int*)' So I guess I'll have to knock up a little MASM framework to do it in this coming weekend when I get some free time (hopefully!). I'm aiming to base it on NtCreateKey and NtDeleteKey as per that source - since it appears the NtDeleteKey (according to the brief look I've had) relies on a handle being passed to it created by a successful call to NtCreateKey or NtOpenKey. Damn my feeble C skills - its times like this that being entirely self taught shows that I had a poor teacher! bb |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Mark memory page as invalid | Kerlingen | General Discussion | 3 | 08-29-2016 19:49 |
problem with idr "invalid oep" | SubzEro | General Discussion | 2 | 09-14-2015 00:19 |
Controling access to HDD | Hero | General Discussion | 2 | 08-09-2006 18:13 |
Softice: hwnd -> invalid window handle | dreamershl | General Discussion | 2 | 04-19-2004 09:58 |