about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2015-12-03 13:13:10 +0100
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2015-12-03 13:24:53 +0100
commite3b24dddd93b6f0418eb0f7e9603a2a23961362a (patch)
tree3c152079d8f4da512991178b268d73d8652553bd
parent8e6e9605bff309919fb279344bfc86172e0ae275 (diff)
downloadmiasm-e3b24dddd93b6f0418eb0f7e9603a2a23961362a.tar.gz
miasm-e3b24dddd93b6f0418eb0f7e9603a2a23961362a.zip
Jitter: clean code
-rw-r--r--miasm2/jitter/vm_mngr.c191
-rw-r--r--miasm2/jitter/vm_mngr.h35
-rw-r--r--miasm2/jitter/vm_mngr_py.c23
3 files changed, 2 insertions, 247 deletions
diff --git a/miasm2/jitter/vm_mngr.c b/miasm2/jitter/vm_mngr.c
index 43513599..414cdc68 100644
--- a/miasm2/jitter/vm_mngr.c
+++ b/miasm2/jitter/vm_mngr.c
@@ -32,13 +32,6 @@
 
 
 
-/*
-struct memory_page_list_head memory_page_pool;
-struct code_bloc_list_head code_bloc_pool;
-
-struct memory_breakpoint_info_head memory_breakpoint_pool;
-*/
-
 /****************memory manager**************/
 
 
@@ -88,11 +81,6 @@ int is_mem_mapped(vm_mngr_t* vm_mngr, uint64_t ad)
 {
 	struct memory_page_node * mpn;
 	int i;
-	/*
-	mpn = memory_page_pool_tab[ad>>MEMORY_PAGE_POOL_MASK_BIT];
-	if ( mpn && (mpn->ad <= ad) && (ad < mpn->ad + mpn->size))
-		return 1;
-	*/
 	for (i=0; i < vm_mngr->memory_pages_number; i++) {
 		mpn = &vm_mngr->memory_pages_array[i];
 		if ((mpn->ad <= ad)  && (ad <mpn->ad + mpn->size))
@@ -103,20 +91,11 @@ int is_mem_mapped(vm_mngr_t* vm_mngr, uint64_t ad)
 }
 
 
-/* return the address base of the memory page
-   containing addr
-*/
+/* Return the address base of the memory page containing addr */
 uint64_t get_mem_base_addr(vm_mngr_t* vm_mngr, uint64_t ad, uint64_t *addr_base)
 {
 	struct memory_page_node * mpn;
 	int i;
-	/*
-	mpn = memory_page_pool_tab[ad>>MEMORY_PAGE_POOL_MASK_BIT];
-	if ( mpn && (mpn->ad <= ad) && (ad < mpn->ad + mpn->size)){
-		*addr_base = mpn->ad;
-		return 1;
-	}
-	*/
 	for (i=0; i < vm_mngr->memory_pages_number; i++) {
 		mpn = &vm_mngr->memory_pages_array[i];
 		if ((mpn->ad <= ad)  && (ad <mpn->ad + mpn->size)) {
@@ -158,16 +137,6 @@ struct memory_page_node * get_memory_page_from_address(vm_mngr_t* vm_mngr, uint6
 {
 	struct memory_page_node * mpn;
 	int i;
-#if 0
-	mpn = memory_page_pool_tab[ad>>MEMORY_PAGE_POOL_MASK_BIT];
-	if ( mpn && (mpn->ad <= ad) && (ad < mpn->ad + mpn->size))
-		return mpn;
-
-	fprintf(stderr, "WARNING: address 0x%"PRIX64" is not mapped in virtual memory:\n", ad);
-	vm_mngr->exception_flags |= EXCEPT_ACCESS_VIOL;
-
-	return NULL;
-#else
 
 	i = find_page_node(vm_mngr->memory_pages_array,
 			   ad,
@@ -181,7 +150,6 @@ struct memory_page_node * get_memory_page_from_address(vm_mngr_t* vm_mngr, uint6
 	fprintf(stderr, "WARNING: address 0x%"PRIX64" is not mapped in virtual memory:\n", ad);
 	vm_mngr->exception_flags |= EXCEPT_ACCESS_VIOL;
 	return NULL;
-#endif
 }
 
 
@@ -603,28 +571,7 @@ int shift_right_arith(unsigned int size, int a, unsigned int b)
 		    exit(0);
     }
 }
-/*
-int shift_right_arith_08(int a, unsigned int b)
-{
-	char i8_a;
-	i8_a = a;
-	return (i8_a >> b)&0xff;
-}
-
-int shift_right_arith_16(int a, unsigned int b)
-{
-	short i16_a;
-	i16_a = a;
-	return (i16_a >> b)&0xffff;
-}
 
-int shift_right_arith_32(int a, unsigned int b)
-{
-	int i32_a;
-	i32_a = a;
-	return (i32_a >> b)&0xffffffff;
-}
-*/
 uint64_t shift_right_logic(uint64_t size,
 			   uint64_t a, uint64_t b)
 {
@@ -646,28 +593,6 @@ uint64_t shift_right_logic(uint64_t size,
 		    exit(0);
     }
 }
-/*
-int shift_right_logic_08(unsigned int a, unsigned int b)
-{
-	unsigned char u8_a;
-	u8_a = a;
-	return (u8_a >> b)&0xff;
-}
-
-int shift_right_logic_16(unsigned int a, unsigned int b)
-{
-	unsigned short u16_a;
-	u16_a = a;
-	return (u16_a >> b)&0xffff;
-}
-
-int shift_right_logic_32(unsigned int a, unsigned int b)
-{
-	unsigned int u32_a;
-	u32_a = a;
-	return (u32_a >> b)&0xffffffff;
-}
-*/
 
 uint64_t shift_left_logic(uint64_t size, uint64_t a, uint64_t b)
 {
@@ -685,22 +610,6 @@ uint64_t shift_left_logic(uint64_t size, uint64_t a, uint64_t b)
 		    exit(0);
     }
 }
-/*
-int shift_left_logic_O8(unsigned int a, unsigned int b)
-{
-	return (a<<b)&0xff;
-}
-
-int shift_left_logic_16(unsigned int a, unsigned int b)
-{
-	return (a<<b)&0xffff;
-}
-
-int shift_left_logic_32(unsigned int a, unsigned int b)
-{
-	return (a<<b)&0xffffffff;
-}
-*/
 
 unsigned int mul_lo_op(unsigned int size, unsigned int a, unsigned int b)
 {
@@ -1563,49 +1472,21 @@ int is_mpn_in_tab(vm_mngr_t* vm_mngr, struct memory_page_node* mpn_a)
 	return 0;
 }
 
-void insert_mpn_in_tab(struct memory_page_node* mpn_a)
-{
-	/*
-	for (i=mpn_a->ad >> MEMORY_PAGE_POOL_MASK_BIT;
-	     i<(mpn_a->ad + mpn_a->size + PAGE_SIZE - 1)>>MEMORY_PAGE_POOL_MASK_BIT;
-	     i++){
-		if (memory_page_pool_tab[i] !=NULL){
-			fprintf(stderr, "known page in tab\n");
-			exit(1);
-		}
-		memory_page_pool_tab[i] = mpn_a;
-	}
-	*/
-
-}
-
 void add_memory_page(vm_mngr_t* vm_mngr, struct memory_page_node* mpn_a)
 {
 	struct memory_page_node * mpn;
 	int i;
 
-	//printf("ad 0x%"PRIX64" size 0x%"PRIX64"\n", mpn_a->ad, mpn_a->size);
-	//printf("mem \n%s\n", dump(vm_mngr));
-
 	for (i=0; i < vm_mngr->memory_pages_number; i++) {
 		mpn = &vm_mngr->memory_pages_array[i];
 		if (mpn->ad < mpn_a->ad)
 			continue;
 		break;
 	}
-
-	/*
-	printf("realloc %p %d\n", vm_mngr->memory_pages_array,
-					      sizeof(struct memory_page_node) *
-					      (vm_mngr->memory_pages_number+1));
-	*/
 	vm_mngr->memory_pages_array = realloc(vm_mngr->memory_pages_array,
 					      sizeof(struct memory_page_node) *
 					      (vm_mngr->memory_pages_number+1));
 
-	/*
-	printf("move %d\n", sizeof(struct memory_page_node) * (vm_mngr->memory_pages_number - i));
-	*/
 	memmove(&vm_mngr->memory_pages_array[i+1],
 		&vm_mngr->memory_pages_array[i],
 		sizeof(struct memory_page_node) * (vm_mngr->memory_pages_number - i)
@@ -1616,9 +1497,7 @@ void add_memory_page(vm_mngr_t* vm_mngr, struct memory_page_node* mpn_a)
 
 }
 
-/*
-   Return a char* representing the repr of vm_mngr_t object
-*/
+/* Return a char* representing the repr of vm_mngr_t object */
 char* dump(vm_mngr_t* vm_mngr)
 {
 	char buf[100];
@@ -1722,38 +1601,6 @@ unsigned int get_memory_page_next(vm_mngr_t* vm_mngr, unsigned int n_ad)
 }
 
 
-#if 0
-unsigned int get_memory_page_from_min_ad(unsigned int size)
-{
-	struct memory_page_node * mpn;
-	unsigned int c_ad ;
-	unsigned int min_ad = min_page_ad;
-	int end = 0;
-	/* first, find free min ad */
-	while (!end){
-		end = 1;
-		LIST_FOREACH(mpn, &memory_page_pool, next){
-			c_ad = (mpn->ad + mpn->size+0x1000)&0xfffff000;
-			if (c_ad <= min_ad)
-				continue;
-			if (mpn->ad <= min_ad){
-				min_ad = c_ad;
-				end = 0;
-				break;
-			}
-			if (mpn->ad - min_ad < size){
-				min_ad = c_ad;
-				end = 0;
-				break;
-			}
-		}
-	}
-	return min_ad;
- }
-#endif
-
-
-
 /********************************************/
 
 void hexdump(char* m, unsigned int l)
@@ -1796,40 +1643,6 @@ void hexdump(char* m, unsigned int l)
 }
 
 
-
-
-unsigned int access_segment(unsigned int d)
-{
-	// XXX TODO
-	printf("access segment %X\n", d);
-	return 0;
-}
-unsigned int access_segment_ok(unsigned int d)
-{
-	// XXX TODO
-	printf("access segment ok %X\n", d);
-	return 0;
-}
-
-unsigned int load_segment_limit(unsigned int d)
-{
-	// XXX TODO
-	printf("load segment limit %X\n", d);
-	return 0;
-}
-unsigned int load_segment_limit_ok(unsigned int d)
-{
-	// XXX TODO
-	printf("load segment limit ok %X\n", d);
-	return 0;
-}
-
-unsigned int load_tr_segment_selector(unsigned int d)
-{
-	// XXX TODO
-	return 0;
-}
-
 // Return vm_mngr's exception flag value
 uint64_t get_exception_flag(vm_mngr_t* vm_mngr)
 {
diff --git a/miasm2/jitter/vm_mngr.h b/miasm2/jitter/vm_mngr.h
index ad470ce8..93566987 100644
--- a/miasm2/jitter/vm_mngr.h
+++ b/miasm2/jitter/vm_mngr.h
@@ -49,7 +49,6 @@
 
 
 
-LIST_HEAD(memory_page_list_head, memory_page_node);
 LIST_HEAD(code_bloc_list_head, code_bloc_node);
 LIST_HEAD(memory_breakpoint_info_head, memory_breakpoint_info);
 
@@ -71,18 +70,15 @@ struct memory_page_node {
 	uint64_t size;
 	uint64_t access;
 	void* ad_hp;
-	LIST_ENTRY(memory_page_node)   next;
 };
 
 
 
 typedef struct {
 	int sex;
-	//struct memory_page_list_head memory_page_pool;
 	struct code_bloc_list_head code_bloc_pool;
 	struct memory_breakpoint_info_head memory_breakpoint_pool;
 
-	//struct memory_page_node *memory_page_pool_tab[MAX_MEMORY_PAGE_POOL_TAB];
 	int memory_pages_number;
 	struct memory_page_node* memory_pages_array;
 
@@ -186,11 +182,6 @@ int shift_right_arith(unsigned int size, int a, unsigned int b);
 
 uint64_t shift_right_logic(uint64_t size, uint64_t a, uint64_t b);
 uint64_t shift_left_logic(uint64_t size, uint64_t a, uint64_t b);
-/*
-int shift_left_logic_08(unsigned int a, unsigned int b);
-int shift_left_logic_16(unsigned int a, unsigned int b);
-int shift_left_logic_32(unsigned int a, unsigned int b);
-*/
 unsigned int mul_lo_op(unsigned int size, unsigned int a, unsigned int b);
 unsigned int mul_hi_op(unsigned int size, unsigned int a, unsigned int b);
 unsigned int imul_lo_op_08(char a, char b);
@@ -264,21 +255,6 @@ unsigned int rcl_rez_op(unsigned int size, unsigned int a, unsigned int b, unsig
 	    }
 
 
-//PyObject* _vm_push_uint32_t(PyObject *item);
-//PyObject* _vm_pop_uint32_t(void);
-////PyObject* _vm_put_str(PyObject *item);
-//PyObject* _vm_set_mem(PyObject *item, PyObject *item_str);
-//PyObject* _vm_set_mem_access(PyObject *addr, PyObject *access);
-//PyObject* _vm_get_str(PyObject *item, PyObject *item_len);
-//PyObject* _vm_add_memory_page(PyObject *item, PyObject *access, PyObject *item_str);
-//PyObject* _vm_add_code_bloc(PyObject *item1, PyObject *item2);//, PyObject *item3);
-//PyObject* _call_pyfunc_from_globals(char* funcname);
-//PyObject* _call_pyfunc_from_eip(void);
-//
-//PyObject* call_pyfunc_from_globals(char* funcname);
-//
-//PyObject* _vm_get_gpreg(void);
-
 void hexdump(char* m, unsigned int l);
 
 struct code_bloc_node * create_code_bloc_node(uint64_t ad_start, uint64_t ad_stop);
@@ -305,20 +281,12 @@ void check_write_code_bloc(vm_mngr_t* vm_mngr, uint64_t my_size, uint64_t addr);
 
 char* dump(vm_mngr_t* vm_mngr);
 void dump_memory_breakpoint_pool(vm_mngr_t* vm_mngr);
-//PyObject* _vm_get_all_memory(void);
 PyObject* addr2BlocObj(vm_mngr_t* vm_mngr, uint64_t addr);
 
 
 
 
 /********************************************/
-
-//PyObject* _vm_get_cpu_state(void);
-//PyObject*  _vm_set_cpu_state(PyObject * s_cpustate);
-
-
-//void memory_page_write(unsigned int my_size, uint64_t ad, unsigned int src);
-//unsigned int memory_page_read(unsigned int my_size, uint64_t ad);
 unsigned int get_memory_page_max_address(void);
 unsigned int get_memory_page_max_user_address(void);
 
@@ -354,11 +322,8 @@ void func_loadlib_fake(void);
 void func_getproc_fake(void);
 
 
-//PyObject* _vm_exec_bloc(PyObject* my_eip, PyObject* known_blocs);
-
 unsigned int cpuid(unsigned int a, unsigned int reg_num);
 double int2double(unsigned int m);
-//PyObject* _vm_exec_blocs(PyObject* my_eip);
 
 double fadd(double a, double b);
 double fsub(double a, double b);
diff --git a/miasm2/jitter/vm_mngr_py.c b/miasm2/jitter/vm_mngr_py.c
index db2f1e4f..8f7c4b6b 100644
--- a/miasm2/jitter/vm_mngr_py.c
+++ b/miasm2/jitter/vm_mngr_py.c
@@ -145,10 +145,6 @@ PyObject* vm_add_memory_page(VmMngr* self, PyObject* args)
 	buf_size = PyString_Size(item_str);
 	PyString_AsStringAndSize(item_str, &buf_data, &length);
 
-	/*
-	fprintf(stderr, "add page %"PRIX64" %"PRIX64" %"PRIX64"\n",
-		page_addr, buf_size, page_access);
-	*/
 	mpn = create_memory_page_node(page_addr, buf_size, page_access);
 	if (mpn == NULL)
 		RAISE(PyExc_TypeError,"cannot create page");
@@ -383,7 +379,6 @@ PyObject* vm_get_all_memory(VmMngr* self, PyObject* args)
 
 	dict =  PyDict_New();
 
-	//LIST_FOREACH(mpn, &self->vm_mngr.memory_page_pool, next){
 	for (i=0;i<self->vm_mngr.memory_pages_number; i++) {
 		mpn = &self->vm_mngr.memory_pages_array[i];
 
@@ -494,24 +489,6 @@ vm_set_little_endian(VmMngr *self, PyObject *value, void *closure)
 }
 
 
-
-/*
-PyObject* add_jitbloc(VmMngr* self, PyObject* args)
-{
-	PyObject* jitobj;
-
-	if (!PyArg_ParseTuple(args, "O", &addr2obj))
-		return NULL;
-
-	Py_INCREF(Py_None);
-	return Py_None;
-
-}
-*/
-
-
-
-
 static void
 VmMngr_dealloc(VmMngr* self)
 {