-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclient.c
More file actions
60 lines (41 loc) · 1.82 KB
/
client.c
File metadata and controls
60 lines (41 loc) · 1.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "client.h"
#include "utils.h"
#include "common.h"
static SakeClient_Init_t SakeClient_Init = NULL;
static SakeNewClient_t SakeNewClient = NULL;
static SakeClientHandshake_t SakeClientHandshake = NULL;
static void *client_handle;
static int handshake_step = 0;
int client_handshake(SakeUserMsg* msg_in, SakeUserMsg* msg_out) {
printf("\n\nCLIENT STEP %d\n", handshake_step);
print_sake_msg("\tmsg in = ", msg_in);
int retval = SakeClientHandshake(0xAAAAAAAA, 0xBBBBBBBB, client_handle, 0xDDDDDDDD, msg_in, 0xFFFFFFFF, msg_out, 0x11111111);
char* retval_str = sake_handshake_status_str(retval);
printf("\tretval = %s\n", retval_str);
print_sake_msg("\tmsg out = ", msg_out);
client_check_status();
handshake_step++;
return retval;
}
void client_check_status()
{
int client_state = *((uint32_t *)client_handle);
int last_error = *((uint32_t *)(client_handle + 0x74));
char* last_err_str = sake_last_error_str(last_error);
printf("\tclient_state = %d\n", client_state);
printf("\tlast_err = %s\n" , last_err_str);
CHECK_EQ_8(client_state);
return;
}
void client_init(void *hLib, void* key_db)
{
SakeClient_Init = (SakeClient_Init_t)load_function(hLib, "Java_com_medtronic_minimed_sake_SakeJNI_Sake_1Client_1Init");
SakeNewClient = (SakeNewClient_t)load_function(hLib, "Java_com_medtronic_minimed_sake_SakeJNI_new_1SAKE_1CLIENT_1S");
SakeClientHandshake = (SakeClientHandshake_t)load_function(hLib, "Java_com_medtronic_minimed_sake_SakeJNI_Sake_1Client_1Handshake");
client_handle = SakeNewClient(0xAAAAAAAA, 0xBBBBBBBB);
printf("[i] sake client allocated at %p\n", client_handle);
SakeClient_Init(0xAAAAAAAA, 0xBBBBBBBB, client_handle, 0xDDDDDDDD, key_db, 0xFFFFFFFF);
printf("[+] client initialized successfully.\n");
client_check_status();
return;
}