The Offline NT Password Editor (c) 1997-2010 Petter Nordahl-Hagen Registry Editor Usermanual/docs See COPYING for copyright & credits. See INSTALL for compile/installation instructions. See README for docs on the passwordpart (or website for bootdisk) Some known limitations as of first half 2010: This release features full basic registry edit with add/del keys and values and resizing values. Limitations/not implemented yet: - Not possible to expand the hive file with new pages. Only existing free space within the current filesize can be used to add keys/values. This is a short demo of the registry editor-part, should give you an idea on how it works. This demo is pretty old (several years, but most is still the same) You can navigate the registry almost like a filesystem (only difference being that the "files" actually are of a special datatype, instead of just a bytestream) Note that this demo is just some random editing, will likely cause windows to not boot if written back to it. >chntpw -h chntpw version 0.99.0 030111, (c) Petter N Hagen chntpw: change password of a user in a NT SAM file, or invoke registry editor. chntpw [OPTIONS] [systemfile] [securityfile] [otherreghive] [...] -h This message -u Username to change, Administrator is default -l list all users in SAM file -i Interactive. List users (as -l) then ask for username to change -e Registry editor. Now with full write support! -d Enter buffer debugger instead (hex editor), -t Trace. Show hexdump of structs/segments. (deprecated debug function) -L Write names of changed files to /tmp/changed -N No allocation mode. Only (old style) same length overwrites possible (example edit of a SYSTEM-hive) >chntpw -e system chntpw version 0.99.0 030111, (c) Petter N Hagen Hive's name (from header): ROOT KEY at offset: 0x001020 This is probably not a sam HIVE Simple registry editor. ? for help. [1020] > ? Simple registry editor: hive [] - list loaded hives or switch to hive numer n' cd - change key ls | dir [] - show subkeys & values, cat | type - show key value st [] - show struct info nk - add key dk - delete key (must be empty. recursion not supported yet) ed - Edit value nv - Add value dv - Delete value delallv - Delete all values in current key debug - enter buffer hexeditor q - quit (list the contents of the current key) [1020] > l ls of node at offset 0x1024 Node has 6 subkeys and 0 values offs key name [ 11b8] [ dff88] [1c2040] [ de448] [ de998] [ deab8] (now let's make a subkey here) [1020] > nk DemoKey [1020] > l ls of node at offset 0x1024 Node has 7 subkeys and 0 values offs key name [ 11b8] [ dff88] [1c2ef8] [1c2040] [ de448] [ de998] [ deab8] (and delete the key) [1020] > dk DemoKey [1020] > l ls of node at offset 0x1024 Node has 6 subkeys and 0 values offs key name [ 11b8] [ dff88] [1c2040] [ de448] [ de998]