Skip to content

Commit

Permalink
Merge pull request #18 from Goosoul/master
Browse files Browse the repository at this point in the history
解决LC_CODE_SIGNATURE不存在时写入异常数据的问题
  • Loading branch information
tobefuturer authored Mar 23, 2018
2 parents b242c47 + ea11c62 commit 07ef7fa
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 07ef7fa

Please sign in to comment.