本文主要是介绍win2000/xp忘记密码的方法(转),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
铩铩飛in2000/xp忘记密码的方法 1.清除sam文件: winnt系列的系统账户信息是存在%systemroot%system32configsam这个注册表文件里的。如果系统里没有重要的账户,或者账户比较少,用删除%systemroot%system32configsam的方法是比较简单的,不过因为系统会还原为只有administrator(密码为空)和guest二个账户,所以有些程序因为它们所依赖的账户丢失了,如iis、vmware就不能启动了。 原来听说这种方法只能适用于nt workstation系列(2kpro),不能用于server,我在2000professional和2000 advanced server上试验都是成功的。不知道为什么会有上述说法,可能是活动目录ad下不行把。 当然首先你要能够访问系统分区,来把sam文件改名或者删除。如果是fat32、fat分区,使用98启动盘就行了。如果是ntfs分区,可以使用winternal的ntfs for dos、ntfs for 98或者是支持ntfs的启动光盘,再或者挂到其他win2000、linux等机器上,再再或者重新安装一个新的win2000。 2.专用工具: windows管理员密码丢失还有一个解决方法是使用petter nordahl-hagen的the offline nt password editor(http://home.eunet.no/~pnordahl/ntpasswd/),这个工具是离线修改注册表文件sam来设置密码的。需要用他的映像文件制作启动盘来引导,进而访问ntfs分区重新设置密码;虽然作者经常更新他的程序,不过我还是会担心他直接操作sam文件的安全性,可能有时会导致系统出错。 可能还有其他类似工具把,恕我无知。 3. 还有一种想法就是用一个修改密码的小程序来替换系统启动的必要程序,然后系统启动时就会替换密码,随后把被替换的程序在还原就行了。当然首先你还是要能够访问系统分区,来替换随系统启动的程序。 替换系统启动的必要程序的一种方法是我写的一个清除administrator密码的小程序(cleanpwd),他所作的就是把administrator密码清空。使用方法如下: (1).用法 1) 用双系统或者启动盘或者挂到别的系统上,如果是ntfs分区其他系统或启动盘要能读写ntfs分区,把windows安装目录下的system32svchost.exe改名svchost.bak.exe备份,把cleanpwd.exe拷贝成svchost.exe。 2) 启动该系统,就把administrator的密码清空了,可以直接登陆。 3) 把svchost.bak.exe 恢复就行了。(如果使用替换的是svchost,最好再启动rpc服务) (2).为什么选用svchost.exe而不是其他程序。 每个windows2000系统都有这几个进程, system(kernel executive and kernel) smss(session manager) csrss(win32 subsystem) winlogon(logon process) services(service control manager) lsass(local security authentication server ) 如果任何一个被杀掉或者出错,系统将重新启动。不过在lsass启动之前你不能修改密码,所以不能选用这几个程序。 另外系统中一般还有以下一些程序: svchost.exe(remote procedure call (rpc) 还有其他一些服务) wbemwinmgmt.exe(windows management umentation) mstask.exe(task scheduler) regsvc.exe(remote registry service) 可能还有其他服务程序,你可能禁止了除rpc之外的其他服务,但不会禁止rpc,否则系统工作就不正常了。所以我选择了svchost,如果你知道其他服务会自动启动,你也可以选择它。 当然如果系统安装了杀毒软件的话,你替换杀毒软件也可以,因为一般杀毒软件都会在系统启动是启动杀毒防火墙来杀毒的。 (3).其他 有这个想法是几个月之前了,不过一直没有写这个程序 程序运行会在c:cleanpwd.txt记一个简单的日志,我也附了源码,你可以任意修改它以满足自己的要求,比如添加一个用户而不是修改管理员的密码(或者你把管理员改名了)。 4.我还在一个网站上看到这样一个方法: 就是把%systemroot%system32logon.scr替换为cmd.exe或者explorer.exe,然后在系统登陆处等待,过一会,系统就会去运行logon.scr这个屏保,因为你替换了这个屏保文件,所以实际上运行的是cmd.exe或者explorer.exe,并且是localsystem权限,于是你可以随便了,最简单的就是在cmd.exe里运行net user administrator "",成功后管理员密码也被清空了,关闭cmd或者explorer就可以用空口令登陆了。 其实这种方法和上边的那种思路是一致的。 ================= code begin ======================= #include #include #include #include #include #pragma comment(lib, "netapi32.lib") #define lof_file "c:\cleanpwd.txt" dword setuserpwd(char *user, char *pass); void banner(file *fp) { if(null == fp)return; fprintf(fp, "clean administrator''s password tool 1a. for lost password. "); fprintf(fp, " by bingle@email.com.cn "); fprintf(fp, "website: www.binglesite.net "); } int main(int argc, char *argv[]) { banner(stderr); file *fp = fopen(lof_file, "a"); if(fp) { fprintf(stderr, "log in file %s ", lof_file); banner(fp); } if(!fp) fp = stderr; char buff[256]; fprintf(fp, "%s: clean administrator''s password ", _strtime(buff)); dword n = setuserpwd("administrator", ""); if(nerr_success == n) fprintf(fp, "ok. "); else fprintf(fp, "failed, error:%d ", n); fclose(fp); return -1; } dword setuserpwd(char *user, char *pass) { wchar_t wuser[pwlen], wpass[pwlen]; user_info_1003 ui; mbstowcs(wuser, user, strlen(user)+1); mbstowcs(wpass, pass, strlen(pass)+1); ui.usri1003_password = wpass; return netusersetinfo(null, wuser, 1003, (lpbyte)&ui, null); } ================= code end ======================= 本文来自:http://www.linuxpk.com/30118.html -->linux电子图书免费下载和技术讨论基地 ·上一篇: WindowsXP自带小工具 ·下一篇: 如何防范恶意网站
最新更新 | ||
·注册表备份和恢复·低级格式化的主要作用·如何防范恶意网站·常见文件扩展名和它们的说明·专家:警惕骇客骗局,严守企业信息·PGPforWindows介紹基本设定(2)·解剖安全帐号管理器(SAM)结构·“恶作剧之王”揭秘·绿色警戒·黑客反击战·网络四大攻击方法及安全现状描述·可攻击3种浏览器代码流于互联网·黑客最新的兴趣点,下个目标会是谁?·“僵尸”——垃圾邮件的主要传播源·Lebreat蠕虫惊现3变种·POSTFIX反病毒反垃圾Ų…·在FreeBSD上用PHP实现在线添加FTP用户·简单让你在FreeBSDADSL上…·安全版本:OpenBSD入门技巧解析·Internet连接共享上网完全攻略·关于ADSL上网网速常识·静态缓存和动态缓存的比较·最友好的SQL注入防御方法·令网站提速的7大秘方·网络基础知识大全·路由基本知识·端口映射的几种实现方法·VLAN经典诠释·问题分析与解决——ADSL错误代码·问题分析——关于2条E1的线路绑定 |
| ||
关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 网址大全 | 友情链接 | 免费注册 | ||
| ||
Copyright © 2004 - 2007 All Rights Reserved 来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14102/viewspace-117463/,如需转载,请注明出处,否则将追究法律责任。 上一篇: WindowsXP自带小工具(转) 下一篇: GHOST怎么用(转) ![]() 请登录后发表评论 登录 全部评论 <%=items[i].createtime%> <%=items[i].content%> <%if(items[i].items.items.length) { %><%for(var j=0;j <%}%> <%}%> <%=items[i].items.items[j].createtime%> <%=items[i].items.items[j].username%> 回复 <%=items[i].items.items[j].tousername%>: <%=items[i].items.items[j].content%> 还有<%=items[i].items.total-5%>条评论 ) data-count=1 data-flag=true>点击查看 <%}%> 最新文章
|
转载于:http://blog.itpub.net/14102/viewspace-117463/
这篇关于win2000/xp忘记密码的方法(转)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!