It's a single file project named main.cpp that I need to translate from C++ to VB6 language. It's really small but I have no idea how to do it. Any help is appreciated.
PHP Code:
#include <stdio.h>
#include <stdint.h>
#include <Windows.h>
#pragma pack(1)
struct textField
{
//0
union nameField
{
void* ptr;
char cstring[16];
} text;
//16
uint8_t textLength;
//17
char unknown1[3];
//20
uint8_t fieldType;
//21
char unknown2[3];
//24
uint32_t unknown3;
//28
};
#pragma pack(1)
struct infoData
{
uint32_t charListBegin;
uint32_t charListEnd;
char unknown[12];
textField Data1;
textField Data2;
};
#define DESIRED_ACCESS (PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ)
#define INFODATA_ADDR 0x546CB0
#define CLIENTBASE_ADDR 0x400000
#define PID 12192
DWORD clientPid = PID;
HANDLE clientHandle = OpenProcess(DESIRED_ACCESS , FALSE, clientPid );;
HWND clientHwnd = 0;
DWORD clientBase = CLIENTBASE_ADDR;
void getText(char* dst, textField field);
void main()
{
char text[256];
infoData* li = (infoData*) malloc( sizeof(infoData));
if(ReadProcessMemory(clientHandle,(LPCVOID)(clientBase + INFODATA_ADDR),(LPVOID)li,sizeof(infoData),NULL))
{
puts("======Info======");
getText(text,li->Data1);
printf("Name: %s\n",text);
getText(text,li->Data2);
printf("Address: %s\n",text);
system("pause");
}else{
puts("Error reading process memory...exiting...");
system("pause");
exit(0);
}
}
void getText(char* dst, textField field)
{
if(field.fieldType > 0xF)
{
ReadProcessMemory(clientHandle,(LPCVOID) field.text.ptr,(LPVOID)dst,field.textLength,NULL);
}else{
memcpy((void*) dst, (void*)field.text.cstring, field.textLength);
}
dst[field.textLength]=0;
}