[原]關於VC運行時關閉極域電子教室的改進方法

        今天是2013年3月的最後一天了,想起三月時發的日誌《[原]VC被控制時關閉極域電子教室、破解聯想硬盤保護系統密碼(上)》《[原]VC被控制時關閉極域電子教室、破解聯想硬盤保護系統密碼(下)》,感覺有一些不足,畢竟操作起來太過於繁瑣,於是我又在CSDN論壇上進行提問:“VC如何向某個進程或窗口發送關機消息?”,9樓回答了通過線程注入實現的方法,後來我試驗了一下,能使用,而且不需要對windows和極域電子教室做任何實現配置。

//本代碼在DEVC++下編譯可能有問題,在VC6下通過,

//本代碼編譯出來的程序在 極域電子教室V6 2007豪華版 學生機 下測試通過。

#include <windows.h>
#include <tlhelp32.h>
int main()
{
PROCESSENTRY32 pe32 = {0};
pe32.dwSize = sizeof(PROCESSENTRY32);
HANDLE hProcess = 0;
DWORD dwExitCode = 0;

HANDLE hProessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProessSnap != INVALID_HANDLE_VALUE)
{
if (::Process32First(hProessSnap, &pe32))
{
do
{
if ( strcmp(pe32.szExeFile, TEXT("StudentMain.exe")) == 0)
{
hProcess = ::OpenProcess(PROCESS_VM_OPERATION|PROCESS_VM_WRITE|PROCESS_VM_READ|PROCESS_CREATE_THREAD, FALSE, pe32.th32ProcessID);
CloseHandle(hProessSnap);
break;
}
}while(::Process32Next(hProessSnap, &pe32));
}
}

LPVOID Param = VirtualAllocEx(hProcess, NULL, sizeof(DWORD), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(hProcess, Param, (LPVOID)&dwExitCode, sizeof(DWORD), NULL);

HANDLE hThread = CreateRemoteThread(hProcess,NULL,NULL,(LPTHREAD_START_ROUTINE)ExitProcess,Param,NULL,NULL);
return 0;
}

(注:考慮到線程注入屬於非正常手段,殺毒軟件極易報毒,請添加信任。本軟件本有任何惡意,源碼已公佈,大家可以自己編譯)

EXE文件下載地址:360雲盤,新浪微盤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章