rendered paste body#define WIN32_MEAN_AND_LEAN
#include "CProcessInfo.h"
#include <windows.h>
#include <iostream>
using namespace std;
struct FileInfo
{
char ClassName[261];
char WindowText[261];
char ProcessName[261];
char ProgramDescr[261];
bool Found;
/*FileInfo()
{
memset(&ClassName, 0, sizeof(ClassName));
memset(&WindowText, 0, sizeof(WindowText));
memset(&ProcessName, 0, sizeof(ProcessName));
memset(&ProgramDescr, 0, sizeof(ProgramDescr));
Found = false;
}*/
};
int main(int argc, char* argv[])
{
CProcessInfo ProcessList;
cout << "-------------------------------" << endl;
cout << " NeWbY's FTP Detector " << endl;
cout << " Made by Paul aka. NeWbY " << endl;
cout << "-------------------------------" << endl;
if (!ProcessList.Initialize())
{
cout << "ProcessList.Initialize()";
return GetLastError();
}
FileInfo FTPServers[] = {
{"RSockWin", "RWinSocket", "ServUDaemon.exe", "Serv-U FTP Daemon", false},
{"ServUWinClass", "Serv-U", "ServUDaemon.exe", "Serv-U FTP Daemon", false},
{"TAdminForm", "", "ServUAdmin.exe", "Serv-U Administrator", false},
{"TMessageForm", "User messages", "ServUAdmin.exe", "Serv-U Administrator", false},
{"TApplication", "Serv-U", "ServUAdmin.exe", "Serv-U Administrator", false},
{"TPUtilWindow", "", "ServUAdmin.exe", "Serv-U Administrator", false},
{0, 0, 0}
};
HWND hWindow = FindWindow(0, 0);
while (hWindow)
{
if (!GetParent(hWindow))
{
unsigned long pID;
char ClassName[256];
char WindowText[256];
GetWindowThreadProcessId(hWindow, &pID);
GetWindowText(hWindow, WindowText, sizeof(WindowText));
GetClassName(hWindow, ClassName, sizeof(ClassName));
char* ProcessName = ProcessList.GetProcessName(pID);
char* ProgramPath = ProcessList.GetProcessFilePath(pID);
for (int i = 0; FTPServers[i].ClassName[0]; ++i)
{
if ((ClassName[0]) && (strcmp(ClassName, FTPServers[i].ClassName) == 0) && (!FTPServers[i].Found))
{
FTPServers[i].Found = true;
printf("Found FTP Program matching ClassName!\r\n");
printf("ClassName: %s\r\n", ClassName);
if (WindowText[0])
printf("WindowText: %s\r\n", WindowText);
if (ProcessName[0])
printf("ProcessName: %s\r\n", ProcessName);
if (ProgramPath[0])
printf("ProgramPath: %s\r\n", ProgramPath);
if (FTPServers[i].ProgramDescr[0])
printf("Program Description: %s\r\n", FTPServers[i].ProgramDescr);
printf("------------------------------------------------------------\r\n\r\n");
break;
}
else if ((WindowText[0]) && (strcmp(WindowText, FTPServers[i].WindowText) == 0) && (!FTPServers[i].Found))
{
FTPServers[i].Found = true;
printf("Found FTP Program matching WindowText!\r\n");
printf("WindowText: %s\r\n", WindowText);
if (ClassName[0])
printf("ClassName: %s\r\n", ClassName);
if (ProcessName[0])
printf("ProcessName: %s\r\n", ProcessName);
if (ProgramPath[0])
printf("ProgramPath: %s\r\n", ProgramPath);
if (FTPServers[i].ProgramDescr[0])
printf("Program Description: %s\r\n", FTPServers[i].ProgramDescr);
printf("------------------------------------------------------------\r\n\r\n");
break;
}
else if ((ProcessName[0]) && (strcmp(WindowText, FTPServers[i].ProcessName) == 0) && (!FTPServers[i].Found))
{
FTPServers[i].Found = true;
printf("Found FTP Program matching processname!\r\n");
printf("Process Name: %s\r\n", ProcessName);
if (WindowText[0])
printf("Window Text: %s\r\n", WindowText);
if (ClassName[0])
printf("Class Name: %s\r\n", ClassName);
if (ProgramPath[0])
printf("Program Path: %s\r\n", ProgramPath);
if (FTPServers[i].ProgramDescr[0])
printf("Program Description: %s\r\n", FTPServers[i].ProgramDescr);
printf("------------------------------------------------------------\r\n\r\n");
break;
}
}
/*if (WindowText[0])
printf("WindowText: %s\r\n", WindowText);
if (pID)
printf("PID: %d\r\n", pID);
if (ProcessName)
printf("Process Name: %s\r\n", ProcessName);
if (ProcessFilePath)
printf("Process FilePath: %s\r\n", ProcessFilePath);
if (ProcessName)
delete[] ProcessName;
if (ProcessFilePath)
delete[] ProcessFilePath;*/
}
hWindow = GetWindow(hWindow, GW_HWNDNEXT);
}
//system("pause");
return 0;
}