سلام.
کد زیر برای اینجکت کردن به kmplayer هست ولی نمیدونم چرا kmplayer رو میبنده به جای این که title ش رو عوض کنه! برنامه هیچ اروری نمیده.
کد:
کد زیر برای اینجکت کردن به kmplayer هست ولی نمیدونم چرا kmplayer رو میبنده به جای این که title ش رو عوض کنه! برنامه هیچ اروری نمیده.
کد:
کد:
#define CREATE_THREAD_ACCESS (PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ) DWORD Useless(); int privileges(); static DWORD myFunc(LPCWSTR myparam); int main() { DWORD size_myFunc = (PBYTE)Useless - (PBYTE)myFunc; HANDLE Proc; Proc = OpenProcess(CREATE_THREAD_ACCESS, FALSE, 8328); cout<<privileges(); LPVOID MyFuncAddress = VirtualAllocEx(Proc, NULL, size_myFunc, MEM_RESERVE|MEM_COMMIT, PAGE_EXECUTE_READWRITE); WriteProcessMemory(Proc, MyFuncAddress, (void*)myFunc,size_myFunc, NULL); LPVOID DataAddress = VirtualAllocEx(Proc,NULL,sizeof("injected ho ho"),MEM_RESERVE|MEM_COMMIT,PAGE_READWRITE); WriteProcessMemory(Proc, DataAddress,"injected ho ho",sizeof("injected ho ho"), NULL); HANDLE thread = CreateRemoteThread(Proc, NULL, 0, (LPTHREAD_START_ROUTINE)MyFuncAddress, DataAddress, 0, NULL); if (thread!=0){ WaitForSingleObject(thread, INFINITE); //this waits untill thread thread has finished VirtualFree(MyFuncAddress, 0, MEM_RELEASE); //free myFunc memory VirtualFree(DataAddress, 0, MEM_RELEASE); //free data memory CloseHandle(thread); CloseHandle(Proc); //don't wait for the thread to finish, just close the handle to the process cout<<"Injection completed!"<<endl; }else{ cout<<"Error!"<<endl; } CloseHandle(Proc); return 0; } static DWORD Useless(){ return 0; } static DWORD myFunc(LPCWSTR myparam){ SetWindowText(FindWindow(NULL,TEXT("The KMPlayer")),myparam); return 0; } int privileges(){ HANDLE Token; TOKEN_PRIVILEGES tp; if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&Token)) { LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tp.Privileges[0].Luid); tp.PrivilegeCount = 1; tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; if (AdjustTokenPrivileges(Token, 0, &tp, sizeof(tp), NULL, NULL)==0){ return 1; //FAIL }else{ return 0; //SUCCESS } } return 1; }
Comment