[DLL Injection] Firefox.exe
-
Meinen Tipp befolgt? Was sagt GetExitCodeThread?
-
Ethon schrieb:
Meinen Tipp befolgt? Was sagt GetExitCodeThread?
Kannst du mir bitte kurz erklären wie ich den einbauen muss?
Danke & lg
-
Hab den Code nun angepasst:
DWORD lpExitCode; GetExitCodeThread(hRemoteThread,&lpExitCode); if(STILL_ACTIVE == lpExitCode) cout << "Thread is still active..." <<endl; else cout << "Thread has been closed..." <<endl; cout << "[information] Got GetExitCodeThread: " <<lpExitCode <<endl;
Das Ergebnis:
path is: C:\Dev-Cpp\projects\dll.dll
Waiting for firefox.exe...
Process detected!PID: 1736
Injecting dll.dll...
Thread has been closed...
[information] Got GetExitCodeThread: 1628176384
Dll succesfully injected!
Drücken Sie eine beliebige Taste . . .
-
PUSH again
-
Wie wäre damit selber mal das Gehirn einzuschalten?
Thread has been closed...
[information] Got GetExitCodeThread: 1628176384
Dll succesfully injected!Dein Loadlibrary Aufruf war offensichtlich erfolgreich. Die DLL wurde im Zielprozess an Adresse 0x610C0000 geladen.
-
Ja?
Aber es passiert offensichtlich nichts - darum frage ich mich wo der Fehler liegt.
-
Woher sollen wir das wissen?
Firefox ist äußerst komplex und startet beim Initialisieren eine Menge Threads. Möglicherweise gibt es da irgendwelche Seiteneffekte mit Deiner hässlichen MessageBox.Probiere doch erst einmal einen einfachen Prozess zu injecten! Wie wäre es zum Beispiel mit Notepad.exe? Ist das wirklich so schwer auch mal einen Schritt zurück zu gehen?
-
Hallo,
Das war ein Kommunikationsfehler - meine Schuld.
Natürlich habe ich es schon bei folgenden Programmen versucht:
- Firefox
- IE
- calc
- explorer
- pinball (das Game)
- NotepadBei allen leider die selbe Problematik...
Darum bin ich ja so verwundert.Danke und lg
-
Vl noch zur Info:
Habe es am Beispiel von DeepBurner auch getestet:
My DLL Injector
Library: dll.dll
Process: DeepBurner.exepath is: C:\Dev-Cpp\projects\dll.dll
Waiting for DeepBurner.exe...
Process detected!PID: 1136
Injecting dll.dll...
Thread has been closed...
[information] Got GetExitCodeThread: 1628176384
Dll succesfully injected!
Drücken Sie eine beliebige Taste . . .Dann habe ich es für Notepad getestet, und siehe da:
My DLL Injector
Library: dll.dll
Process: notepad.exepath is: C:\Dev-Cpp\projects\dll.dll
Waiting for notepad.exe...
Process detected!PID: 6032
Injecting dll.dll...
Injection failed
Drücken Sie eine beliebige Taste . . .GetLastError()
Gibt auch kein Ergebnis
-
Ich gehe mal davon aus das Dein Injector schon läuft bevor Du den Targetprozess startest?
Falls das so ist: Bevor Du injectes solltest Du unbedingt ein bisschen Zeit vergehen lassen, bis sich der Prozess vollständig initialisiert hat.Das hier
while (!ProcessExists(ProcessName)){ }
Ist übrigens auch Mist und verbrät viel Rechenzeit.
Mach mal so:while (!ProcessExists(ProcessName)){ Sleep(1000);} // zu Testzwecken: // zusätzlich Zeit einräumen für das starten des Prozesses Sleep(5000);
-
Hallo,
Danke für deine Antwort.
Nein ich lasse den Prozess in der Regel 1-2 Minuten laufen, bevor ich injecte...HAbe den Code mal angepasst - leider auch keine Änderungen.
Gruss
-
In Deinem Code waren noch einige komische Dinge.
So wie hier unten geht es bei mir problemlos. Achtung ich habe hier mit wchar_t gearbeitet.Natürlich ohne Gewähr.
// Injector.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung. // #include "stdafx.h" #include <iostream> #include <string> #include <windows.h> #include <tlhelp32.h> using namespace std; DWORD GetProcID(wstring ProcName) { HANDLE hProcessSnap; PROCESSENTRY32 pe32; hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); pe32.dwSize = sizeof(PROCESSENTRY32); //** I had problems for weeks until I realized this was missing -.- do { //cout << pe32.szExeFile <<"\n"; if(pe32.szExeFile == ProcName) { DWORD ProcId = pe32.th32ProcessID; CloseHandle(hProcessSnap); return ProcId; } } while(Process32Next(hProcessSnap, &pe32)); CloseHandle(hProcessSnap); return 0; } bool ProcessExists(wstring process) { HANDLE hProcessSnap; PROCESSENTRY32 pe32; hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); pe32.dwSize = sizeof(PROCESSENTRY32); do { if(pe32.szExeFile == process) { CloseHandle(hProcessSnap); return true; } } while(Process32Next(hProcessSnap, &pe32)); CloseHandle(hProcessSnap); return false; } int _tmain(int argc, wchar_t* argv[]) { wstring DLLName = L"InjectorDll.dll"; //wstring ProcessName = L"firefox.exe"; wstring ProcessName = L"notepad.exe"; //bool CloseAfterCorrectInjection=true; DWORD procID = 0; system("color a"); wcout << L"My DLL Injector\n" << endl; wcout << L"Library: " << DLLName << endl; wcout << L"Process: " << ProcessName << endl << endl; wchar_t awBuffer[MAX_PATH]; GetCurrentDirectory(MAX_PATH, awBuffer) ; wstring dll = awBuffer; dll.append(L"\\"); dll.append(DLLName); HMODULE hLocKernel32 = GetModuleHandle(L"Kernel32.dll"); FARPROC hLocLoadLibrary = GetProcAddress(hLocKernel32, "LoadLibraryW"); HANDLE hToken; TOKEN_PRIVILEGES tkp; if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY | PROCESS_ALL_ACCESS, &hToken)) { LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, 0, &tkp, sizeof(tkp), NULL, NULL); } HANDLE hProc = INVALID_HANDLE_VALUE; wcout << L"Waiting for " << ProcessName << L"..." << endl; while (!ProcessExists(ProcessName)){Sleep(1000);} wcout << L"Process detected!" << endl << endl; procID = GetProcID(ProcessName); wcout << L"PID: " << procID << endl << endl; Sleep(2500); wcout << L"Injecting " << dll << "..." << endl << endl; LPVOID hRemoteMem = NULL; hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, procID); if (hProc != INVALID_HANDLE_VALUE) { hRemoteMem = VirtualAllocEx(hProc, NULL, (dll.size() + 1) * sizeof(wchar_t), MEM_COMMIT, PAGE_READWRITE); if (hRemoteMem != NULL) { DWORD numBytesWritten; WriteProcessMemory(hProc, hRemoteMem, dll.c_str(), (dll.size() + 1) * sizeof(wchar_t), &numBytesWritten); HANDLE hRemoteThread = CreateRemoteThread(hProc, NULL, 0, (LPTHREAD_START_ROUTINE)hLocLoadLibrary, hRemoteMem, 0, NULL); bool res = false; if (hRemoteThread != 0) { DWORD lpExitCode; Sleep(1000); GetExitCodeThread(hRemoteThread, &lpExitCode); wcout << L"[information] Got GetExitCodeThread: " << lpExitCode << L" " << hex << lpExitCode <<endl; if (lpExitCode != 0) { wcout << L"Dll succesfully injected!" << endl; } else { wcout << L"Injection failed " << GetLastError() << endl; } CloseHandle(hRemoteThread); } else { wcout << L"Injection failed " << GetLastError() << endl; } } else { wcout << L"Injection failed " << GetLastError() << endl; } } else { wcout << L"Injection failed " << GetLastError() << endl; } if (hProc != INVALID_HANDLE_VALUE) { if (hRemoteMem != NULL) VirtualFreeEx(hProc, hRemoteMem, (dll.size() + 1) * sizeof(wchar_t), MEM_RELEASE); CloseHandle(hProc); } system("PAUSE"); return 0; }
-
Hallo,
Danke.
Hast du das mit Visual Studio C++ 2010 Express kompiliert?
Dev-C++ lässt das nicht durch den Compiler (mal abgesehen von der stdafx.h)Danke und Gruss
-
Ja habe ich.
Schmeiße Dev C++ weg. Nimm besser CodeBlocks oder VC++ Express.
-
Hab's jetzt mit VC++ versucht, jedoch schreit der Compiler nach 100terten Fehlern...
Muss noch etwas inkludiert oder verändert werden?zur Info:
testing.cpp(68): error C2679: Binärer Operator '<<': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::wstring' akzeptiert (oder keine geeignete Konvertierung möglich)
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(679): kann 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)' sein
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(726): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(764): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(811): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(937): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const signed char *)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(944): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,signed char)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(951): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const unsigned char *)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(958): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,unsigned char)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(968): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>,std::wstring>(std::basic_ostream<_Elem,_Traits> &&,_Ty)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ty=std::wstring
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(1085): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const std::error_code &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(186): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ostream<_Elem,_Traits> &(__cdecl *)(std::basic_ostream<_Elem,_Traits> &))"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(192): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(199): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::ios_base &(__cdecl *)(std::ios_base &))"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(206): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::_Bool)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(226): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(short)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(260): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned short)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(280): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(int)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(305): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned int)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(325): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(long)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(345): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned long)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(366): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__int64)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(386): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned __int64)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(407): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(float)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(427): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(double)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(447): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(long double)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(467): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(const void *)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(487): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_streambuf<_Elem,_Traits> *)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> bei Anpassung der Argumentliste '(std::basic_ostream<_Elem,_Traits>, std::wstring)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1>testing.cpp(90): error C2679: Binärer Operator '<<': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::wstring' akzeptiert (oder keine geeignete Konvertierung möglich)
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(679): kann 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)' sein
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(726): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(764): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(811): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(937): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const signed char *)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(944): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,signed char)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(951): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const unsigned char *)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(958): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,unsigned char)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(968): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>,std::wstring>(std::basic_ostream<_Elem,_Traits> &&,_Ty)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ty=std::wstring
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(1085): oder "std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const std::error_code &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(186): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ostream<_Elem,_Traits> &(__cdecl *)(std::basic_ostream<_Elem,_Traits> &))"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(192): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(199): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::ios_base &(__cdecl *)(std::ios_base &))"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(206): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::_Bool)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(226): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(short)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(260): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned short)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(280): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(int)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(305): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned int)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(325): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(long)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(345): oder "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned long)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
-
Er kann kein geeignetes casting für die Streamoperationen finden. Aber eigentlich sollte es so gehen wie ich es gepostet habe.
Was steht denn bei Dir zB in Zeile 68 und 90?
-
Wenn Du nicht selber dahinter kommts, solltest Du besser noch an den Grundlagen arbeiten.
-
Zeile 68:
cout << L"Process: " << ProcessName << endl << endl;
Zeile 90:
cout << L"Waiting for " << ProcessName << L"..." << endl;
Scheint mir dass die cout's mit dem "L" Probleme machen?
-
Es sieht wirklich danach aus, das VC++ Probleme hat:
Hab den Code mal angepasst (couts auskommentiert, tmain in main umbenannt)testing.obj : error LNK2028: Nicht aufgelöstes Token (0A000385) ""extern "C" int __stdcall AdjustTokenPrivileges(void *,int,struct _TOKEN_PRIVILEGES *,unsigned long,struct _TOKEN_PRIVILEGES *,unsigned long *)" (?AdjustTokenPrivileges@@$$J224YGHPAXHPAU_TOKEN_PRIVILEGES@@K1PAK@Z)", auf das in Funktion ""int __cdecl main(int,wchar_t * * const)" (?main@@$$HYAHHQAPA_W@Z)" verwiesen wird.
1>testing.obj : error LNK2028: Nicht aufgelöstes Token (0A000386) ""extern "C" int __stdcall LookupPrivilegeValueW(wchar_t const *,wchar_t const *,struct _LUID *)" (?LookupPrivilegeValueW@@$$J212YGHPB_W0PAU_LUID@@@Z)", auf das in Funktion ""int __cdecl main(int,wchar_t * * const)" (?main@@$$HYAHHQAPA_W@Z)" verwiesen wird.
1>testing.obj : error LNK2028: Nicht aufgelöstes Token (0A000388) ""extern "C" int __stdcall OpenProcessToken(void *,unsigned long,void * *)" (?OpenProcessToken@@$$J212YGHPAXKPAPAX@Z)", auf das in Funktion ""int __cdecl main(int,wchar_t * * const)" (?main@@$$HYAHHQAPA_W@Z)" verwiesen wird.
1>testing.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall AdjustTokenPrivileges(void *,int,struct _TOKEN_PRIVILEGES *,unsigned long,struct _TOKEN_PRIVILEGES *,unsigned long *)" (?AdjustTokenPrivileges@@$$J224YGHPAXHPAU_TOKEN_PRIVILEGES@@K1PAK@Z)" in Funktion ""int __cdecl main(int,wchar_t * * const)" (?main@@$$HYAHHQAPA_W@Z)".
1>testing.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall LookupPrivilegeValueW(wchar_t const *,wchar_t const *,struct _LUID *)" (?LookupPrivilegeValueW@@$$J212YGHPB_W0PAU_LUID@@@Z)" in Funktion ""int __cdecl main(int,wchar_t * * const)" (?main@@$$HYAHHQAPA_W@Z)".
1>testing.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall OpenProcessToken(void *,unsigned long,void * *)" (?OpenProcessToken@@$$J212YGHPAXKPAPAX@Z)" in Funktion ""int __cdecl main(int,wchar_t * * const)" (?main@@$$HYAHHQAPA_W@Z)".
-
gestg schrieb:
Zeile 68:
cout << L"Process: " << ProcessName << endl << endl;
Zeile 90:
cout << L"Waiting for " << ProcessName << L"..." << endl;
Scheint mir dass die cout's mit dem "L" Probleme machen?
Ja, sicher. Entweder Du lässt die "L" weg oder Du solltest da wcout (also die wide char Variante) einsetzen.
Es sieht wirklich danach aus, das VC++ Probleme hat:
Hab den Code mal angepasst (couts auskommentiert, tmain in main umbenannt)Nein, Du scheinst einfach nur nicht genug Erfahrung zu haben. Vielleicht ist es wirklich besser Du vertiefst erst einmal die Grundlagen.