Index: libemu/src/environment/win32/emu_env_w32.c
===================================================================
--- libemu.orig/src/environment/win32/emu_env_w32.c 2013-07-03 21:39:06.281432486 +0200
+++ libemu/src/environment/win32/emu_env_w32.c 2013-07-10 21:07:22.279324349 +0200
@@ -382,7 +382,7 @@
uint16_t Length;
uint16_t MaximumLength;
uint32_t Buffer;
- } UNICODE_STRING, *PUNICODE_STRING;
+ } UNICODE_STRING; //, *PUNICODE_STRING
// PEB_LDR_DATA Structure
// http://msdn.microsoft.com/en-us/library/aa813708%28VS.85%29.aspx
@@ -392,10 +392,10 @@
uint32_t Flink;
uint32_t Blink;
// struct _LIST_ENTRY *Blink;
- } LIST_ENTRY, *PLIST_ENTRY; //, *RESTRICTED_POINTER PRLIST_ENTRY;
+ } LIST_ENTRY; //, *PLIST_ENTRY, *RESTRICTED_POINTER PRLIST_ENTRY;
typedef uint32_t PVOID;
- typedef unsigned char BYTE;
+ // typedef unsigned char BYTE;
typedef uint32_t ULONG;
typedef struct _LDR_DATA_TABLE_ENTRY
@@ -415,7 +415,7 @@
PVOID Reserved6;
};
uint32_t TimeDateStamp;
- } LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
+ } LDR_DATA_TABLE_ENTRY; //, *PLDR_DATA_TABLE_ENTRY;
// http://www.nirsoft.net/kernel_struct/vista/PEB_LDR_DATA.html
@@ -428,17 +428,17 @@
/* 0x14 */ LIST_ENTRY InMemoryOrderModuleList;
/* 0x1c */ LIST_ENTRY InInitializationOrderModuleList;
/* 0x24 */ uint8_t EntryInProgress;
- } PEB_LDR_DATA, *PPEB_LDR_DATA;
+ } PEB_LDR_DATA; //, *PPEB_LDR_DATA;
- struct _PEB_LDR_DATA peb_ldr_data;
- peb_ldr_data.InMemoryOrderModuleList.Flink = 0x00251ea0 + 0x1000 + offsetof(struct _LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks);
- peb_ldr_data.InInitializationOrderModuleList.Flink = 0x00251ea0 + 0x1000 + offsetof(struct _LDR_DATA_TABLE_ENTRY, InInitializationOrderLinks);
+ PEB_LDR_DATA peb_ldr_data;
+ peb_ldr_data.InMemoryOrderModuleList.Flink = 0x00251ea0 + 0x1000 + offsetof(LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks);
+ peb_ldr_data.InInitializationOrderModuleList.Flink = 0x00251ea0 + 0x1000 + offsetof(LDR_DATA_TABLE_ENTRY, InInitializationOrderLinks);
emu_memory_write_block(mem, 0x00251ea0, &peb_ldr_data, sizeof(peb_ldr_data));
uint32_t magic_offset = 0x00251ea0+0x1000;
- struct _LDR_DATA_TABLE_ENTRY tables[16];
+ LDR_DATA_TABLE_ENTRY tables[16];
memset(tables, 0, sizeof(tables));
char names[16][64];
@@ -448,7 +448,7 @@
for ( i=0; known_dlls[i].dllname != NULL; i++ )
{
struct emu_env_w32_known_dll *from = known_dlls+i;
- struct _LDR_DATA_TABLE_ENTRY *to = tables+i;
+ LDR_DATA_TABLE_ENTRY *to = tables+i;
to->DllBase = from->baseaddress;
to->BaseDllName.Length = (strlen(from->dllname) + strlen(".dll")) * 2 + 2;
@@ -456,10 +456,10 @@
to->BaseDllName.Buffer = magic_offset + sizeof(tables) + i * 64;
to->InMemoryOrderLinks.Blink = 0xaabbccdd;
- to->InMemoryOrderLinks.Flink = magic_offset + (i+1) * sizeof(struct _LDR_DATA_TABLE_ENTRY) + offsetof(struct _LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks);
+ to->InMemoryOrderLinks.Flink = magic_offset + (i+1) * sizeof(struct _LDR_DATA_TABLE_ENTRY) + offsetof(LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks);
to->InInitializationOrderLinks.Blink = 0xa1b2c3d4;
- to->InInitializationOrderLinks.Flink = magic_offset + (i+1) * sizeof(struct _LDR_DATA_TABLE_ENTRY) + offsetof(struct _LDR_DATA_TABLE_ENTRY, InInitializationOrderLinks);
+ to->InInitializationOrderLinks.Flink = magic_offset + (i+1) * sizeof(struct _LDR_DATA_TABLE_ENTRY) + offsetof(LDR_DATA_TABLE_ENTRY, InInitializationOrderLinks);
int j;
for( j=0;j<strlen(from->dllname); j++ )