.TH SEGEDIT 1 "June 25, 2018" "Apple, Inc." .SH NAME segedit \- extract and replace sections from object files .SH SYNOPSIS \fBsegedit\fR \fIinput_file\fR [\fB-extract\fR \fIseg_name\fR \fIsect_name\fR \fIdata_file\fR] ... .br \fBsegedit\fR \fIinput_file\fR [\fB-replace\fR \fIseg_name\fR \fIsect_name\fR \fIdata_file\fR] ... \fB-output\fR \fIoutput_file\fR .br .SH DESCRIPTION .B segedit extracts or replaces named sections from the \fIinput_file\fR. When extracting sections, .B segedit will write the contents of each requested section into \fIdata_file\fR. When replacing sections, .B segedit will write a new \fIoutput_file\fR formed from the \fIinput_file\fR and the requested replacement section content from \fIdata_file\fR. The segment and section names are the same as those given to .BR ld (1) with the .I \-sectcreate option. The segment and section names of an object file can be examined with the .I \-l option to .BR otool (1). Only sections in segments that have no relocation to or from them (i.e., segments marked with the .SM SG_NORELOC flag) can be replaced but all sections can be extracted. .PP The options to .BR segedit (1): .TP .BI \-extract " seg_name sect_name data_file" Extracts each section specified by the segment and section names and places the contents in the specified \fIdata_file\fR. .TP .BI \-replace " seg_name sect_name data_file" Replaces each section specified by the segment and section names and takes the new section content from the specified \fIdata_file\fR. The .BI \-output " output_file" option must also be specified. The resulting size of the section will be rounded to a multiple of 4 bytes and padded with zero bytes if necessary. .TP .BI \-output " output_file" Specifies the new file to create when replacing sections. .SH "SEE ALSO" ld(1), otool(1), lipo(1) .SH "LIMITATIONS" Only Mach-O format files that are laid out in a contiguous address space and with their segments in increasing address order can have their segments replaced by this program. This layout is what .BR ld (1) produces by default. .PP Only sections in segments that have no relocation to or from them (i.e., segments marked with the .SM SG_NORELOC flag) can be replaced. .PP .B segedit will not extract or replace sections from universal files. If necessary, use .BR lipo (1) to extract the desired Mach-O files from a universal file before running .B segedit.