本论坛为只读模式,仅供查阅,不能注册新用户,不能发帖/回帖,有问题可发邮件 xikug.xp (^) gmail.com
查看: 10727|回复: 16

XP下禁止Ctrl+Alt+Del(非修改注册表) [复制链接]

Rank: 1

发表于 2006-4-1 03:33:11 |显示全部楼层
从老外那弄来的代码

示例中用Ctrl+Alt+F6关闭程序
Ctrl+Alt+小键盘'+'号显示窗口
    bHotKeyExit = RegisterHotKey(m_hWnd, myExitHotKey, MOD_ALT|MOD_CONTROL, VK_F6);
    bHotKeyShow = RegisterHotKey(m_hWnd, myShowHotKey, MOD_ALT|MOD_CONTROL, VK_ADD);




/*****************************************
* Load a library into a remote process. *
*****************************************/
int InjectDll()
{
    HANDLE    hThread;                // Thread handle
    HANDLE    hProcess;                // Process handle
    DWORD    dwPID;                    // Process ID
    char    szLibPath[MAX_PATH];    // Full DLL path
    void    *pLibRemote;            // Address (in the remote process) where szLibPath will be copied to

    // Enable DEBUG privilege
    if (!EnablePrivilege(SE_DEBUG_NAME, TRUE))
        return 0;

    // Get remote process id
    dwPID = GetPIDFromName(szProcessName);
    if (dwPID == -1)
        return 0;

    // Open remote process
    hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPID);
    if (hProcess == NULL)
        return 0;

    // Get full path of the DLL
    if (!GetModuleFileName(hInst, szLibPath, MAX_PATH))
        return 0;
    strcpy(strrchr(szLibPath, '\\') + 1 , szDllName);

    // Allocate memory in the remote process to store the szLibPath string
    pLibRemote = VirtualAllocEx(hProcess, NULL, sizeof(szLibPath), MEM_COMMIT, PAGE_READWRITE);
    if (pLibRemote == NULL)
        return 0;
    // Copy the szLibPath string to the remote process.
    if (!WriteProcessMemory(hProcess, pLibRemote, (void*)szLibPath, sizeof(szLibPath), NULL))
        return 0;

    // Load the DLL into the remote process
    // (via CreateRemoteThread() & LoadLibrary())
    hThread = CreateRemoteThread(hProcess,
                                 NULL,
                                 0,   
                                 (LPTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle("Kernel32"), "LoadLibraryA"),
                                 pLibRemote,
                                 0,
                                 NULL);
    // Failed
    if(hThread == NULL)
    {
        VirtualFreeEx(hProcess, pLibRemote, sizeof(szLibPath), MEM_RELEASE);
        return 0;
    }

    // Wait for LoadLibrary() to finish and get return code (handle of loaded library)
    WaitForSingleObject(hThread, INFINITE);
    GetExitCodeThread(hThread, &hLibModule);
    CloseHandle(hThread);
    CloseHandle(hProcess);

    // Free remote memory for szLibPath
    VirtualFreeEx(hProcess, pLibRemote, sizeof(szLibPath), MEM_RELEASE);

    // Remote LoadLibrary() failed
    if (!hLibModule)
        return 0;

    // Disable DEBUG privilege
    EnablePrivilege(SE_DEBUG_NAME, FALSE);

    return 1;
}

禁止CtrlAtlDel.rar

478 KB, 下载次数: 375

Rank: 9Rank: 9Rank: 9

发表于 2006-4-1 13:11:50 |显示全部楼层
原来是像winlogon.exe进程注入来实现的,不错。。。

附件中的压缩包看了一下,代码中有很多有用的代码。。。像
DWORD GetPIDFromName(char *szProcessName)
DWORD GetPIDFromNameZwQuerySystemInformation(char *szProcessName)
DWORD GetPIDFromNamePSAPI(char *szProcessName)
DWORD GetPIDFromNameToolhelp(char *szProcessName)
BOOL EnablePrivilege(LPCTSTR lpszPrivilegeName, BOOL bEnable)

实用性非常大

悟空,退下,为师一个人就够了

Rank: 1

发表于 2006-4-1 14:27:50 |显示全部楼层
西裤哥

Rank: 1

发表于 2006-8-5 15:47:16 |显示全部楼层
功能不错,有很多不错的地方。

Rank: 1

发表于 2008-4-22 21:15:09 |显示全部楼层
抱回家再看看

Rank: 2

发表于 2008-4-24 20:56:54 |显示全部楼层
Ctrl+Alt+Del在2000以后就需要修改winlogin了
winlogin在系统启动就注册了Ctrl+Alt+Del 其他程序不能拦截了

需要进去winlogin 可以代理dll 也可以修改文件
当然驱动键盘拦截肯定可以

Rank: 1

发表于 2008-4-27 02:19:01 |显示全部楼层
很好的代码......谢谢

Rank: 1

发表于 2008-4-30 05:51:04 |显示全部楼层
下来收藏.会看了再看........

Rank: 1

发表于 2008-7-31 03:47:40 |显示全部楼层
不错。真得好好读读看

Rank: 1

发表于 2008-8-1 21:04:28 |显示全部楼层
学习

Rank: 1

发表于 2008-8-4 23:05:00 |显示全部楼层
学习一下

Rank: 1

发表于 2008-11-11 01:54:52 |显示全部楼层
下来慢慢学习一下

Rank: 1

发表于 2008-11-11 10:20:18 |显示全部楼层
俺是新来的还望多多指教

Rank: 1

发表于 2008-11-25 03:10:59 |显示全部楼层
      

Rank: 1

发表于 2008-11-26 18:13:42 |显示全部楼层
好 东西

Rank: 1

发表于 2013-3-13 14:28:48 |显示全部楼层
新来的,学习一下

Rank: 1

发表于 2013-3-13 15:33:06 |显示全部楼层
看看。。。。
您需要登录后才可以回帖 登录 | 立即加入

Archiver|手机版|第8个男人 - 论坛为只读模式,仅供查阅

GMT+8, 2019-5-20 21:50 , Processed in 0.031814 second(s), 11 queries .

Design by pvo.cn

© 2011 Pvo Inc.

回顶部