about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--miasm2/jitter/vm_mngr.c40
1 files changed, 14 insertions, 26 deletions
diff --git a/miasm2/jitter/vm_mngr.c b/miasm2/jitter/vm_mngr.c
index 2576dc0f..1a04ba63 100644
--- a/miasm2/jitter/vm_mngr.c
+++ b/miasm2/jitter/vm_mngr.c
@@ -132,21 +132,16 @@ struct memory_page_node * get_memory_page_from_address(vm_mngr_t* vm_mngr, uint6
 		return mpn;
 
 	fprintf(stderr, "WARNING: address 0x%"PRIX64" is not mapped in virtual memory:\n", ad);
-	//dump_gpregs();
-	//exit(-1);
 	vm_mngr->exception_flags |= EXCEPT_ACCESS_VIOL;
 
 	return NULL;
 #else
 
-	//printf("search for page ad: %X\n", ad);
 	LIST_FOREACH(mpn, &vm_mngr->memory_page_pool, next){
 		if ((mpn->ad <= ad) && (ad < mpn->ad + mpn->size))
 			return mpn;
 	}
 	fprintf(stderr, "WARNING: address 0x%"PRIX64" is not mapped in virtual memory:\n", ad);
-	//dump_gpregs();
-	//exit(-1);
 	vm_mngr->exception_flags |= EXCEPT_ACCESS_VIOL;
 	return NULL;
 #endif
@@ -211,7 +206,6 @@ static uint64_t memory_page_read(vm_mngr_t* vm_mngr, unsigned int my_size, uint6
 	else{
 		unsigned int new_size = my_size;
 		int index = 0;
-		//fprintf(stderr, "read multiple page! %"PRIX64" %d\n", ad, new_size);
 		while (new_size){
 			mpn = get_memory_page_from_address(vm_mngr, ad);
 			if (!mpn)
@@ -295,7 +289,6 @@ static void memory_page_write(vm_mngr_t* vm_mngr, unsigned int my_size,
 	}
 	/* write is multiple page wide */
 	else{
-		//fprintf(stderr, "write multiple page! %"PRIX64" %d\n", ad, my_size);
 		switch(my_size){
 
 		case 8:
@@ -402,7 +395,6 @@ void check_write_code_bloc(vm_mngr_t* vm_mngr, uint64_t my_size, uint64_t addr)
 				fprintf(stderr, "self modifying code %"PRIX64" %.8X\n",
 				       addr, my_size);
 				fprintf(stderr, "**********************************\n");
-				//dump_code_bloc(vm_mngr);
 #endif
 				vm_mngr->exception_flags |= EXCEPT_CODE_AUTOMOD;
 
@@ -417,19 +409,13 @@ PyObject* addr2BlocObj(vm_mngr_t* vm_mngr, uint64_t addr)
 	PyObject* pyaddr;
 	PyObject* b;
 
-	//printf("addr2blocobj %"PRIx64"\n", addr);
 	pyaddr = PyLong_FromUnsignedLongLong(addr);
-	/*
-	Py_INCREF(pyaddr);
-	return pyaddr;
-	*/
 	b = PyDict_GetItem(vm_mngr->addr2obj, pyaddr);
 	if (b == NULL) {
 		Py_INCREF(Py_None);
 		return Py_None;
 	}
 
-	//printf("addr2blocobj OBJ %p\n", b);
 	Py_INCREF(b);
 	return b;
 }
@@ -492,7 +478,7 @@ int vm_read_mem(vm_mngr_t* vm_mngr, uint64_t addr, char** buffer_ptr, uint64_t s
        buffer = malloc(size);
        *buffer_ptr = buffer;
        if (!buffer){
-	      fprintf(stderr, "cannot alloc read\n");
+	      fprintf(stderr, "Error: cannot alloc read\n");
 	      exit(-1);
        }
 
@@ -501,7 +487,7 @@ int vm_read_mem(vm_mngr_t* vm_mngr, uint64_t addr, char** buffer_ptr, uint64_t s
 	      mpn = get_memory_page_from_address(vm_mngr, addr);
 	      if (!mpn){
 		      free(*buffer_ptr);
-		      PyErr_SetString(PyExc_RuntimeError, "cannot find address");
+		      PyErr_SetString(PyExc_RuntimeError, "Error: cannot find address");
 		      return -1;
 	      }
 
@@ -526,7 +512,7 @@ int vm_write_mem(vm_mngr_t* vm_mngr, uint64_t addr, char *buffer, uint64_t size)
        while (size){
 	      mpn = get_memory_page_from_address(vm_mngr, addr);
 	      if (!mpn){
-		      PyErr_SetString(PyExc_RuntimeError, "cannot find address");
+		      PyErr_SetString(PyExc_RuntimeError, "Error: cannot find address");
 		      return -1;
 	      }
 
@@ -747,7 +733,6 @@ int imul_hi_op_32(int a, int b)
 {
 	int64_t res = 0;
 	res = (int64_t)a*(int64_t)b;
-	//printf("%x %x dd %"PRIx64"\n", a, b, res);
 	return res>>32ULL;
 }
 
@@ -1407,13 +1392,13 @@ struct memory_page_node * create_memory_page_node(uint64_t ad, unsigned int size
 
 	mpn = malloc(sizeof(*mpn));
 	if (!mpn){
-		fprintf(stderr, "cannot alloc mpn\n");
+		fprintf(stderr, "Error: cannot alloc mpn\n");
 		return NULL;
 	}
 	p = malloc(size);
 	if (!p){
 		free(mpn);
-		fprintf(stderr, "cannot alloc %d\n", size);
+		fprintf(stderr, "Error: cannot alloc %d\n", size);
 		return NULL;
 	}
 	mpn->ad = ad;
@@ -1431,7 +1416,7 @@ struct code_bloc_node * create_code_bloc_node(uint64_t ad_start, uint64_t ad_sto
 
 	cbp = malloc(sizeof(*cbp));
 	if (!cbp){
-		fprintf(stderr, "cannot alloc cbp\n");
+		fprintf(stderr, "Error: cannot alloc cbp\n");
 		exit(-1);
 	}
 
@@ -1547,8 +1532,11 @@ int is_mpn_in_tab(vm_mngr_t* vm_mngr, struct memory_page_node* mpn_a)
 			continue;
 		if (mpn->ad + mpn->size  <= mpn_a->ad)
 			continue;
-		printf("is mpn in! %"PRIX64" %"PRIX64" \n", mpn_a->ad, mpn_a->size);
-		printf("known:! %"PRIX64" %"PRIX64" \n", mpn->ad, mpn->size);
+		fprintf(stderr,
+			"Error: attempt to add page (0x%"PRIX64" 0x%"PRIX64") "
+			"overlapping page (0x%"PRIX64" 0x%"PRIX64")\n",
+			mpn_a->ad, mpn_a->ad + mpn_a->size,
+			mpn->ad, mpn->ad + mpn->size);
 
 		return 1;
 	}
@@ -1608,7 +1596,7 @@ char* dump(vm_mngr_t* vm_mngr)
 
 	buf_final = malloc(1);
 	if (buf_final == NULL) {
-		printf("cannot alloc\n");
+		fprintf(stderr, "Error: cannot alloc\n");
 		exit(0);
 	}
 	buf_final[0] = '\x00';
@@ -1625,7 +1613,7 @@ char* dump(vm_mngr_t* vm_mngr)
 		total_len += length+1;
 		buf_final = realloc(buf_final, total_len);
 		if (buf_final == NULL) {
-			printf("cannot alloc\n");
+			fprintf(stderr, "Error: cannot alloc\n");
 			exit(0);
 		}
 		strcat(buf_final, buf);
@@ -1653,7 +1641,7 @@ void add_memory_breakpoint(vm_mngr_t* vm_mngr, uint64_t ad, uint64_t size, unsig
 	struct memory_breakpoint_info * mpn_a;
 	mpn_a = malloc(sizeof(*mpn_a));
 	if (!mpn_a) {
-		printf("cannot alloc\n");
+		fprintf(stderr, "Error: cannot alloc\n");
 		exit(0);
 	}
 	mpn_a->ad = ad;