int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static char szAppName[] = "OSK-Launcher"; HWND hwnd; MSG msg; WNDCLASSEX wndclass; wndclass.cbSize = sizeof(wndclass); wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance; wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = szAppName; wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); RegisterClassEx(&wndclass); hwnd = CreateWindow(szAppName, "The Hello Program", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 300, 200, NULL, NULL, hInstance, NULL); mainHwnd = hwnd; ShowWindow(hwnd, iCmdShow); UpdateWindow(hwnd); ShellExecute(NULL, "open", "C:\\Program\\Click-N-Type\\Click-N-Type.exe", "", "", SW_SHOW); HANDLE hProcess; do { hProcess = GetProcessHandle("Click-N-Type.exe"); Sleep(1); } while (hProcess == NULL); if (!DllInject(hProcess, "C:\\Tobbe\\DevProjects\\C++\\CnTSkin\\Debug\\InjectionDLL.dll")) { MessageBox(HWND_DESKTOP, "An error occurred injecting DLL!", "Error!", MB_OK | MB_ICONERROR); } while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return (int)msg.wParam; }
VOID InjectorWorkItem(PVOID pvContext) { NTSTATUS St = DllInject(((PWI_INJECT)pvContext)->hProcessID, ((PWI_INJECT)pvContext)->pepProcess, ((PWI_INJECT)pvContext)->pktThread); if (NT_SUCCESS(St)) { DbgPrint("DllInject OK\n"); } else { DbgPrint("NO\n"); } KeSetEvent(&((PWI_INJECT)pvContext)->keEvent, (KPRIORITY)0, FALSE); return; }
int main(int argc,char* argv[]) { if (argc==2 && stricmp(argv[1],"-unstall")==0) { Dettach(); } //为了保险,提个权先 AddPrivilege(); int pid = IExcute(); if (pid==0) { return 0; } DllInject(pid,DLLNAME); CleanJob(); return 0; }