Ik raad je aan misschien te beginnen met C#, als je wat uitdaging wilt. Als je echt een grote uitdaging wilt kun je met C++ beginnen, alleen om de genoemde functies van Matrebatre te gebruiken is dat wel erg lastig in C++, volgens mij.. Dus je kunt VB oif C# proberen.
De functies die ik gaf zijn C++ hoor

. De C#-functies lijken er wel heel sterk op.
Ik wil er zelf wel even een maken, maar ik kan de functie niet vinden om het proces-id of handle te krijgen op basis van de naam van het proces (dus iets zoals 'iexplore.exe').
EDIT: Ik heb nog wat zitten proberen, maar het lukt echt niet. Dit is wat ik nu heb:
#include <cstdlib>
#include <windows.h>
#include <Psapi.h>
int main() {
DWORD ids[1000];
DWORD idcount = 0;
EnumProcesses(ids, 1000, &idcount);
idcount /= sizeof(DWORD);
for(DWORD i = 0; i<idcount; ++i) {
if(ids[i]==0) continue;
HANDLE p = OpenProcess(PROCESS_VM_READ|PROCESS_QUERY_INFORMATION, false, ids[i]);
if(p==NULL) {
printf("Process %lu: id = %lu, OpenProcess failed.\n", i, ids[i]);
} else {
char path[1001];
DWORD len = GetModuleFileNameEx(p, NULL, path, 1000);
path[len] = '\0';
CloseHandle(p);
printf("Process %lu: id = %lu, path = '%s'\n", i, ids[i], path);
}
}
system("pause");
return 0;
}
Het werkt, maar ik krijg voor ongeveer 70% van de processen "OpenProcess failed", wat betekent dat het programma geen toegang heeft tot dat proces. En voor de 30% die wel werkt krijg ik bij de helft een lege string als path. Van de 78 processen waren er maar 13 die correct werkten, en daar stonden niet eens alle open vensters tussen. Game Maker 8 bijvoorbeeld staat er niet tussen, om die te zien moet je programma administratorrechten hebben (GM8 had die nodig om te kunnen werken, en dankzij UAC is GM8 dus volledig geisoleerd van de normale processen).
Ik weet niet of je op deze manier nog iets hebt eraan. Ik ben er zeker van dat er betere manieren moeten zijn dan wat ik doe. Process Explorer kan zonder administratorrechten wel alle processen tonen, en nog veel meer. Maar ik heb geen idee hoe.
CheatEngine slaagt er op een of andere manier ook in om alles te zien, en zelfs om zonder administratorrechten aanpassingen te maken aan het geheugen van Game Maker 8, die wel administratorrechten heeft. Daarmee zou ik in principe mijn eigen code kunnen injecteren in Game Maker en die onder administratorrechten laten uitvoeren. Daarmee zie je maar hoe veilig die UAC echt is ...