Skip to content

Commit

Permalink
解决LC_CODE_SIGNATURE不存在时写入异常数据的问题
Browse files Browse the repository at this point in the history
  • Loading branch information
JorrisRaghan committed Mar 23, 2018
1 parent b242c47 commit ea11c62
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions source/restore-symbol.m
Original file line number Diff line number Diff line change
Expand Up @@ -177,13 +177,14 @@ void restore_symbol(NSString * inpath, NSString *outpath, NSString *jsonPath, bo
}
}

struct linkedit_data_command *command = (struct linkedit_data_command *)((char *)outData.mutableBytes + codesignature.commandOffset);
uint32_t tmp_offset = command -> dataoff + increase_size_all_without_padding;
uint32_t final_offset = vm_addr_round(tmp_offset, 16);

string_table_padding = final_offset - tmp_offset;
command -> dataoff = final_offset;

if (codesignature) {
struct linkedit_data_command *command = (struct linkedit_data_command *)((char *)outData.mutableBytes + codesignature.commandOffset);
uint32_t tmp_offset = command -> dataoff + increase_size_all_without_padding;
uint32_t final_offset = vm_addr_round(tmp_offset, 16);

string_table_padding = final_offset - tmp_offset;
command -> dataoff = final_offset;
}
}


Expand Down

0 comments on commit ea11c62

Please sign in to comment.