最新IBM水货笔记本价格,详细点击进入

查看完整版本: 注册表终极操作——锁定注册表

风舞残阳 2008-4-1 13:28

注册表终极操作——锁定注册表

  你有没有遇到注册表被锁定,无法打开注册表来手工修复呢?很多人都为这个头疼吧,相信你被锁定一次就知道他的操作原理了:
A'w3x/sK   修改[HKEY_CURRENT_USERSoftware
]&d3B2^5D"n!l   MicrosoftWindowsCurrent/C?_Sm g
  VersionPoliciesSystem]下的DisableRegistryTools值为1
`-K*cv&Z+\Bc   解锁的方法也有几种,比如[wiki]程序[/wiki]用API函数调用注册表直接删除,做一个REG文件直接导入,写一个脚本…………
,Q KE Z{-H5`"{~a   今天我就教大家写个程序来实现另[wiki]类[/wiki]锁定,是不是很好奇了?跟我来。
P2S:s1I!@4NB:A   实验[wiki]环境[/wiki]:[wiki]windows[/wiki]2000
9wJ8jdQ~n5Q!N|   实验目的:锁定注册表(本方法利用了Cracker的思路来实现,直接让程序修改程序指令,使调用注册表程序禁止。)%Y5m"LX)^Q7xm5cP!J
  实现方法:C程序
3V'{2G8? k g,r v_   首先我们要按照Cracker的思路反汇编WINNT下的regedit.exe和regedt32.exe找到跳转指令,怎么得到这些[wiki]信息[/wiki]不是我们今天的目的,这里我就不详细介绍了,以下是我反汇编找到的跳转地址:0Y0Ou.NuQ1[\u5u:s
  1.regedit.exe
c#d1EQaf   偏移地址:0x69CA将指令:0x740x1A修改成:0x900x90
AzX!w&o^+sq   2.regedt32.exe1Pk8C%b'I&vu
  偏移地址:0x10bf2将指令:0x740x52修改成:0x900x90
1n!z G6T:| ]d [   现在我们用程序把这2个偏移地址的指令给修改成0x900x90(0x90代表nop,就是让程序什么也不做,执行下一条指令)让我们看看程序是如何实现的吧。
1VdRF/B1KG3p #includeY6c+C6}[)n]
#includej3K*c]U3k8O8`9F!QN
boolscanreg(constchar*file,longoffset,intlength,char*the);/*函数说明*/pA"d0h4sr2jS1{C
  main()c0R0Kh/H"A
{
~4S6J%JZ!N%?}M%{ charthe[]={0x90,0x90};'k{$V#Ue4X d
scanreg("C:\WINNT\regedit.exe",0x69CA,0x02,the);/*调用函数修改winnt下的regedit.exe其中的0x02是修改长度*/
z g"Mwp2Q3dt scanreg("C:\WINNT\ServicePackFiles\i386\regedit.exe",0x69CA,0x02,the);/*调用函数改变补丁下regedit.exe*/
kus D`.@ s s)Q oF.c scanreg("C:\WINNT\system32\regedt32.exe",0x10bf2,0x02,the);/*调用函数修改system32下的regedt32.exe*/
zn S0A4F;O?*n rI scanreg("C:\WINNT\ServicePackFiles\i386\regedt32.exe",0x10bf2,0x02,the);/*调用函数改变补丁下regedt32.exe*/O-I-JT;nC$m
}$RL&ISa p
boolscanreg(constchar*file,longoffset,intlength,char*the)
Ybu7}ye@aV$v {
(cM8D l4dS FILE*fp=NULL;Bw;[0?H1NVy2T
boolresult=false;Y$jM5Cu ]&d
if((fp=fopen(file,"rb+"))!=NULL)/*打开文件进行读写操作*/K4n1i9vfo
{
)o J)kJS8oTFec ] fseek(fp,offset,1);/*把指针指向我们定义的偏移地址*/
S9qfe5l `7JG fwrite(the,length,1,fp);/*修改程序,把指令替换成0x90*/
]Ytn)W2nw7U6Je fclose(fp);/*关闭文件*/Y&V&[ w:e
result=true;4h`JUI
}
|6z;C}[J k\ return(result);
fxD+V.^b }  好了,我这里只是一个示范,只适合2000[wiki]系统[/wiki],把windows每种系统的注册表调用程序都分析一下,然后在程序开始用API函数GetVersionEx(L[wiki]POS[/wiki]VERSIONINFOlpVersionInfo)判断系统,根据判断的系统来调用相应的修改函数。那不是通杀windows了?上面把方法公布出来,以便大家做好防范。
页: [1]
查看完整版本: 注册表终极操作——锁定注册表