From 8e6b39d80e9f8db8389bd2a8106d0f64b91c19e9 Mon Sep 17 00:00:00 2001 From: Axel Souchet <0vercl0k@tuxfamily.org> Date: Sun, 9 Sep 2018 06:11:00 -0700 Subject: Adds Windows support and AppVeyor CI (#835) * Get miasm to work on Windows, also add AppVeyor CI * Fix gcc jitter on Linux * Make the dse_crackme tests work on Windows * calling build and then install is less confusing than install twice * fix os.rename race condition on Windows * clean it up * Clean up after the unused cl.exe's artifacts * Use is_win instead of an additional check * Fix issue on Windows where 'w' and 'wb' modes are different * Address review feedback * setuptools is actually not required, so reverting --- miasm2/jitter/vm_mngr.h | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'miasm2/jitter/vm_mngr.h') diff --git a/miasm2/jitter/vm_mngr.h b/miasm2/jitter/vm_mngr.h index d65a45e8..e55847ea 100644 --- a/miasm2/jitter/vm_mngr.h +++ b/miasm2/jitter/vm_mngr.h @@ -18,12 +18,31 @@ #ifndef CODENAT_H #define CODENAT_H +#if defined(_WIN32) || defined(_WIN64) +#define _CRT_SECURE_NO_WARNINGS +#endif + +#if _WIN32 +#define _MIASM_EXPORT __declspec(dllexport) +#else +#define _MIASM_EXPORT +#endif + +#include +#include + +#include "queue.h" + #ifdef __APPLE__ #define __BYTE_ORDER __BYTE_ORDER__ #elif defined(__NetBSD__) || defined(__OpenBSD__) #define __BYTE_ORDER _BYTE_ORDER #define __BIG_ENDIAN _BIG_ENDIAN #define __LITTLE_ENDIAN _LITTLE_ENDIAN +#elif defined(_WIN32) || defined(_WIN64) +#define __BIG_ENDIAN '>' +#define __LITTLE_ENDIAN '<' +#define __BYTE_ORDER __LITTLE_ENDIAN #endif @@ -219,9 +238,9 @@ void add_memory_page(vm_mngr_t* vm_mngr, struct memory_page_node* mpn); void add_mem_read(vm_mngr_t* vm_mngr, uint64_t addr, uint64_t size); void add_mem_write(vm_mngr_t* vm_mngr, uint64_t addr, uint64_t size); -void check_invalid_code_blocs(vm_mngr_t* vm_mngr); -void check_memory_breakpoint(vm_mngr_t* vm_mngr); -void reset_memory_access(vm_mngr_t* vm_mngr); +_MIASM_EXPORT void check_invalid_code_blocs(vm_mngr_t* vm_mngr); +_MIASM_EXPORT void check_memory_breakpoint(vm_mngr_t* vm_mngr); +_MIASM_EXPORT void reset_memory_access(vm_mngr_t* vm_mngr); PyObject* get_memory_read(vm_mngr_t* vm_mngr); PyObject* get_memory_write(vm_mngr_t* vm_mngr); -- cgit 1.4.1