more device pointers
This commit is contained in:
@@ -21,7 +21,7 @@ typedef enum
|
|||||||
DRAM
|
DRAM
|
||||||
} LOCATION_T;
|
} LOCATION_T;
|
||||||
|
|
||||||
#define DEV_PTR_NULL -1ull;
|
#define DEV_PTR_NULL -1ull
|
||||||
typedef unsigned long long DEV_PTR_T;
|
typedef unsigned long long DEV_PTR_T;
|
||||||
|
|
||||||
int install_payload(struct pwned_device *dev, PAYLOAD_T p, LOCATION_T loc);
|
int install_payload(struct pwned_device *dev, PAYLOAD_T p, LOCATION_T loc);
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ int floppysleep(struct pwned_device *dev)
|
|||||||
|
|
||||||
float init_a = -7.504355E-39f;
|
float init_a = -7.504355E-39f;
|
||||||
unsigned long long init_a_ptr = install_data(dev, SRAM, (unsigned char *) &init_a, sizeof(float));
|
unsigned long long init_a_ptr = install_data(dev, SRAM, (unsigned char *) &init_a, sizeof(float));
|
||||||
if(init_a_ptr == -1)
|
if(init_a_ptr == DEV_PTR_NULL)
|
||||||
{
|
{
|
||||||
printf("failed to write initial data\n");
|
printf("failed to write initial data\n");
|
||||||
return -1;
|
return -1;
|
||||||
@@ -182,42 +182,42 @@ void aes_sw(struct pwned_device *dev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
addr_sbox = install_data(dev, SRAM, sbox, 256);
|
addr_sbox = install_data(dev, SRAM, sbox, 256);
|
||||||
if(addr_sbox == -1)
|
if(addr_sbox == DEV_PTR_NULL)
|
||||||
{
|
{
|
||||||
printf("failed to write sbox\n");
|
printf("failed to write sbox\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
addr_rc = install_data(dev, SRAM, rc_lookup, 11);
|
addr_rc = install_data(dev, SRAM, rc_lookup, 11);
|
||||||
if(addr_rc == -1)
|
if(addr_rc == DEV_PTR_NULL)
|
||||||
{
|
{
|
||||||
printf("failed to write rc lookup\n");
|
printf("failed to write rc lookup\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
addr_mul2 = install_data(dev, SRAM, mul2_lookup, 256);
|
addr_mul2 = install_data(dev, SRAM, mul2_lookup, 256);
|
||||||
if(addr_mul2 == -1)
|
if(addr_mul2 == DEV_PTR_NULL)
|
||||||
{
|
{
|
||||||
printf("failed to write mul2 lookup\n");
|
printf("failed to write mul2 lookup\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
addr_mul3 = install_data(dev, SRAM, mul3_lookup, 256);
|
addr_mul3 = install_data(dev, SRAM, mul3_lookup, 256);
|
||||||
if(addr_mul3 == -1)
|
if(addr_mul3 == DEV_PTR_NULL)
|
||||||
{
|
{
|
||||||
printf("failed to write mul3 lookup\n");
|
printf("failed to write mul3 lookup\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
addr_key = install_data(dev, SRAM, key, 16);
|
addr_key = install_data(dev, SRAM, key, 16);
|
||||||
if(addr_key == -1)
|
if(addr_key == DEV_PTR_NULL)
|
||||||
{
|
{
|
||||||
printf("failed to write key\n");
|
printf("failed to write key\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
addr_data = install_data(dev, SRAM, data, 16);
|
addr_data = install_data(dev, SRAM, data, 16);
|
||||||
if(addr_data == -1)
|
if(addr_data == DEV_PTR_NULL)
|
||||||
{
|
{
|
||||||
printf("failed to write data\n");
|
printf("failed to write data\n");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ void free_payload(struct payload *p)
|
|||||||
free(p);
|
free(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned long long get_address(struct pwned_device *dev, LOCATION_T l, int len)
|
DEV_PTR_T get_address(struct pwned_device *dev, LOCATION_T l, int len)
|
||||||
{
|
{
|
||||||
checkm8_debug_indent("get_address(dev = %p, loc = %i, len = %i)\n", dev, l, len);
|
checkm8_debug_indent("get_address(dev = %p, loc = %i, len = %i)\n", dev, l, len);
|
||||||
DEV_PTR_T addr_malloc = 0x10000efe0, retval;
|
DEV_PTR_T addr_malloc = 0x10000efe0, retval;
|
||||||
@@ -102,7 +102,7 @@ unsigned long long get_address(struct pwned_device *dev, LOCATION_T l, int len)
|
|||||||
{
|
{
|
||||||
free_dev_cmd_resp(resp);
|
free_dev_cmd_resp(resp);
|
||||||
checkm8_debug_indent("\tfailed to malloc an address\n");
|
checkm8_debug_indent("\tfailed to malloc an address\n");
|
||||||
return -1;
|
return DEV_PTR_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
retval = resp->retval;
|
retval = resp->retval;
|
||||||
@@ -219,7 +219,7 @@ int uninstall_payload(struct pwned_device *dev, PAYLOAD_T p)
|
|||||||
return CHECKM8_SUCCESS;
|
return CHECKM8_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned long long get_payload_address(struct pwned_device *dev, PAYLOAD_T p)
|
DEV_PTR_T get_payload_address(struct pwned_device *dev, PAYLOAD_T p)
|
||||||
{
|
{
|
||||||
struct payload *pl = dev_retrieve_payload(dev, p);
|
struct payload *pl = dev_retrieve_payload(dev, p);
|
||||||
if(pl == NULL)
|
if(pl == NULL)
|
||||||
@@ -233,7 +233,7 @@ unsigned long long get_payload_address(struct pwned_device *dev, PAYLOAD_T p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned long long install_data(struct pwned_device *dev, LOCATION_T loc, unsigned char *data, int len)
|
DEV_PTR_T install_data(struct pwned_device *dev, LOCATION_T loc, unsigned char *data, int len)
|
||||||
{
|
{
|
||||||
checkm8_debug_indent("install_data(dev = %p, loc = %i, data = %p, len = %i)\n", dev, loc, data, len);
|
checkm8_debug_indent("install_data(dev = %p, loc = %i, data = %p, len = %i)\n", dev, loc, data, len);
|
||||||
struct dev_cmd_resp *resp;
|
struct dev_cmd_resp *resp;
|
||||||
@@ -242,7 +242,7 @@ unsigned long long install_data(struct pwned_device *dev, LOCATION_T loc, unsign
|
|||||||
if(addr == -1)
|
if(addr == -1)
|
||||||
{
|
{
|
||||||
checkm8_debug_indent("\tfailed to get an address\n");
|
checkm8_debug_indent("\tfailed to get an address\n");
|
||||||
return -1;
|
return DEV_PTR_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
checkm8_debug_indent("\twriting data to address %X\n", addr);
|
checkm8_debug_indent("\twriting data to address %X\n", addr);
|
||||||
|
|||||||
Reference in New Issue
Block a user