00001 /******************************************************************************** 00002 * libemu 00003 * 00004 * - x86 shellcode emulation - 00005 * 00006 * 00007 * Copyright (C) 2007 Paul Baecher & Markus Koetter 00008 * 00009 * This program is free software; you can redistribute it and/or 00010 * modify it under the terms of the GNU General Public License 00011 * as published by the Free Software Foundation; either version 2 00012 * of the License, or (at your option) any later version. 00013 * 00014 * This program is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 * GNU General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU General Public License 00020 * along with this program; if not, write to the Free Software 00021 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00022 * 00023 * 00024 * contact nepenthesdev@users.sourceforge.net 00025 * 00026 *******************************************************************************/ 00027 00028 #ifndef HAVE_EMU_ENV_W32_DLL_H 00029 #define HAVE_EMU_ENV_W32_DLL_H 00030 00031 #include <stdint.h> 00032 00033 struct emu_env_hook; 00034 struct emu_env_w32_dll_export; 00035 00036 struct emu_env_w32_dll 00037 { 00038 char *dllname; 00039 00040 char *image; 00041 uint32_t imagesize; 00042 00043 uint32_t baseaddr; 00044 00045 struct emu_env_w32_dll_export *exportx; 00046 struct emu_env_hook *hooks; 00047 struct emu_hashtable *exports_by_fnptr; 00048 struct emu_hashtable *exports_by_fnname; 00049 }; 00050 00051 struct emu_env_w32_dll *emu_env_w32_dll_new(void); 00052 void emu_env_w32_dll_free(struct emu_env_w32_dll *dll); 00053 void emu_env_w32_dll_exports_copy(struct emu_env_w32_dll *to, struct emu_env_w32_dll_export *from); 00054 00055 00056 struct emu_env_w32_known_dll_segment 00057 { 00058 uint32_t address; 00059 const char *segment; 00060 uint32_t segment_size; 00061 }; 00062 00063 struct emu_env_w32_known_dll 00064 { 00065 const char *dllname; 00066 uint32_t baseaddress; 00067 uint32_t imagesize; 00068 struct emu_env_w32_dll_export *exports; 00069 struct emu_env_w32_known_dll_segment *memory_segments; 00070 }; 00071 00072 #endif
1.6.1