brew vendor-gems: commit updates.
This commit is contained in:
parent
f318e8c5e1
commit
73a5572a08
10
Library/Homebrew/vendor/bundle/bundler/setup.rb
vendored
10
Library/Homebrew/vendor/bundle/bundler/setup.rb
vendored
@ -20,7 +20,7 @@ $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/json-2.3.1/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/docile-1.3.2/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/simplecov-html-0.12.3/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/simplecov-0.19.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/codecov-0.2.11/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/codecov-0.2.12/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/coderay-1.1.3/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/colorize-0.8.1/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/highline-2.0.3/lib"
|
||||
@ -51,7 +51,7 @@ $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parallel-1.19.2/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parallel_tests-3.3.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parser-2.7.2.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rainbow-3.0.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/sorbet-runtime-0.5.5942/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/sorbet-runtime-0.5.5943/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parlour-4.0.1/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/patchelf-1.3.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/plist-3.5.0/lib"
|
||||
@ -76,9 +76,9 @@ $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-0.92.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-performance-1.8.1/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-rspec-1.43.2/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-sorbet-0.5.1/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ruby-macho-2.2.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/sorbet-static-0.5.5942-universal-darwin-19/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/sorbet-0.5.5942/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ruby-macho-2.3.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/sorbet-static-0.5.5943-universal-darwin-19/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/sorbet-0.5.5943/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/sorbet-runtime-stub-0.2.0/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/thor-1.0.1/lib"
|
||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/spoom-1.0.4/lib"
|
||||
|
||||
@ -1,3 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "English"
|
||||
require_relative "macho/structure"
|
||||
require_relative "macho/view"
|
||||
require_relative "macho/headers"
|
||||
@ -12,7 +15,7 @@ require_relative "macho/tools"
|
||||
# The primary namespace for ruby-macho.
|
||||
module MachO
|
||||
# release version
|
||||
VERSION = "2.2.0".freeze
|
||||
VERSION = "2.3.0"
|
||||
|
||||
# Opens the given filename as a MachOFile or FatFile, depending on its magic.
|
||||
# @param filename [String] the file being opened
|
||||
@ -25,7 +28,7 @@ module MachO
|
||||
raise ArgumentError, "#{filename}: no such file" unless File.file?(filename)
|
||||
raise TruncatedFileError unless File.stat(filename).size >= 4
|
||||
|
||||
magic = File.open(filename, "rb") { |f| f.read(4) }.unpack("N").first
|
||||
magic = File.open(filename, "rb") { |f| f.read(4) }.unpack1("N")
|
||||
|
||||
if Utils.fat_magic?(magic)
|
||||
file = FatFile.new(filename)
|
||||
@ -37,4 +40,22 @@ module MachO
|
||||
|
||||
file
|
||||
end
|
||||
|
||||
# Signs the dylib using an ad-hoc identity.
|
||||
# Necessary after making any changes to a dylib, since otherwise
|
||||
# changing a signed file invalidates its signature.
|
||||
# @param filename [String] the file being opened
|
||||
# @return [void]
|
||||
# @raise [ModificationError] if the operation fails
|
||||
def self.codesign!(filename)
|
||||
# codesign binary is not available on Linux
|
||||
return if RUBY_PLATFORM !~ /darwin/
|
||||
raise ArgumentError, "#{filename}: no such file" unless File.file?(filename)
|
||||
|
||||
system("codesign", "--sign", "-", "--force",
|
||||
"--preserve-metadata=entitlements,requirements,flags,runtime",
|
||||
filename)
|
||||
|
||||
raise ModificationError, "#{filename}: signing failed!" unless $CHILD_STATUS.success?
|
||||
end
|
||||
end
|
||||
@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module MachO
|
||||
# A generic Mach-O error in execution.
|
||||
class MachOError < RuntimeError
|
||||
@ -41,8 +43,8 @@ module MachO
|
||||
# Raised when a file's magic bytes are not valid Mach-O magic.
|
||||
class MagicError < NotAMachOError
|
||||
# @param num [Integer] the unknown number
|
||||
def initialize(num)
|
||||
super "Unrecognized Mach-O magic: 0x#{"%02x" % num}"
|
||||
def initialize(magic)
|
||||
super "Unrecognized Mach-O magic: 0x%02<magic>x" % { :magic => magic }
|
||||
end
|
||||
end
|
||||
|
||||
@ -71,7 +73,7 @@ module MachO
|
||||
class CPUTypeError < MachOError
|
||||
# @param cputype [Integer] the unknown CPU type
|
||||
def initialize(cputype)
|
||||
super "Unrecognized CPU type: 0x#{"%08x" % cputype}"
|
||||
super "Unrecognized CPU type: 0x%08<cputype>x" % { :cputype => cputype }
|
||||
end
|
||||
end
|
||||
|
||||
@ -80,8 +82,8 @@ module MachO
|
||||
# @param cputype [Integer] the CPU type of the unknown pair
|
||||
# @param cpusubtype [Integer] the CPU sub-type of the unknown pair
|
||||
def initialize(cputype, cpusubtype)
|
||||
super "Unrecognized CPU sub-type: 0x#{"%08x" % cpusubtype}" \
|
||||
" (for CPU type: 0x#{"%08x" % cputype})"
|
||||
super "Unrecognized CPU sub-type: 0x%08<cpusubtype>x" \
|
||||
" (for CPU type: 0x%08<cputype>x" % { :cputype => cputype, :cpusubtype => cpusubtype }
|
||||
end
|
||||
end
|
||||
|
||||
@ -89,7 +91,7 @@ module MachO
|
||||
class FiletypeError < MachOError
|
||||
# @param num [Integer] the unknown number
|
||||
def initialize(num)
|
||||
super "Unrecognized Mach-O filetype code: 0x#{"%02x" % num}"
|
||||
super "Unrecognized Mach-O filetype code: 0x%02<num>x" % { :num => num }
|
||||
end
|
||||
end
|
||||
|
||||
@ -97,7 +99,7 @@ module MachO
|
||||
class LoadCommandError < MachOError
|
||||
# @param num [Integer] the unknown number
|
||||
def initialize(num)
|
||||
super "Unrecognized Mach-O load command: 0x#{"%02x" % num}"
|
||||
super "Unrecognized Mach-O load command: 0x%02<num>x" % { :num => num }
|
||||
end
|
||||
end
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "forwardable"
|
||||
|
||||
module MachO
|
||||
@ -398,13 +400,13 @@ module MachO
|
||||
machos.each_with_index do |macho, index|
|
||||
begin
|
||||
yield macho
|
||||
rescue RecoverableModificationError => error
|
||||
error.macho_slice = index
|
||||
rescue RecoverableModificationError => e
|
||||
e.macho_slice = index
|
||||
|
||||
# Strict mode: Immediately re-raise. Otherwise: Retain, check later.
|
||||
raise error if strict
|
||||
raise e if strict
|
||||
|
||||
errors << error
|
||||
errors << e
|
||||
end
|
||||
end
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module MachO
|
||||
# Classes and constants for parsing the headers of Mach-O binaries.
|
||||
module Headers
|
||||
@ -490,7 +492,7 @@ module MachO
|
||||
# always big-endian
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "N2".freeze
|
||||
FORMAT = "N2"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -541,7 +543,7 @@ module MachO
|
||||
# @note Always big endian.
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L>5".freeze
|
||||
FORMAT = "L>5"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -587,7 +589,7 @@ module MachO
|
||||
# @note Always big endian.
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L>2Q>2L>2".freeze
|
||||
FORMAT = "L>2Q>2L>2"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -637,7 +639,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=7".freeze
|
||||
FORMAT = "L=7"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -760,7 +762,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=8".freeze
|
||||
FORMAT = "L=8"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module MachO
|
||||
# Classes and constants for parsing load commands in Mach-O binaries.
|
||||
module LoadCommands
|
||||
@ -60,6 +62,8 @@ module MachO
|
||||
0x30 => :LC_VERSION_MIN_WATCHOS,
|
||||
0x31 => :LC_NOTE,
|
||||
0x32 => :LC_BUILD_VERSION,
|
||||
(0x33 | LC_REQ_DYLD) => :LC_DYLD_EXPORTS_TRIE,
|
||||
(0x34 | LC_REQ_DYLD) => :LD_DYLD_CHAINED_FIXUPS,
|
||||
}.freeze
|
||||
|
||||
# association of symbol representations to load command constants
|
||||
@ -145,6 +149,8 @@ module MachO
|
||||
:LC_VERSION_MIN_WATCHOS => "VersionMinCommand",
|
||||
:LC_NOTE => "NoteCommand",
|
||||
:LC_BUILD_VERSION => "BuildVersionCommand",
|
||||
:LC_DYLD_EXPORTS_TRIE => "LinkeditDataCommand",
|
||||
:LD_DYLD_CHAINED_FIXUPS => "LinkeditDataCommand",
|
||||
}.freeze
|
||||
|
||||
# association of segment name symbols to names
|
||||
@ -186,7 +192,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=2".freeze
|
||||
FORMAT = "L=2"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -365,7 +371,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=2a16".freeze
|
||||
FORMAT = "L=2a16"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -379,7 +385,7 @@ module MachO
|
||||
|
||||
# @return [String] a string representation of the UUID
|
||||
def uuid_string
|
||||
hexes = uuid.map { |e| "%02x" % e }
|
||||
hexes = uuid.map { |elem| "%02<elem>x" % { :elem => elem } }
|
||||
segs = [
|
||||
hexes[0..3].join, hexes[4..5].join, hexes[6..7].join,
|
||||
hexes[8..9].join, hexes[10..15].join
|
||||
@ -429,7 +435,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=2Z16L=4l=2L=2".freeze
|
||||
FORMAT = "L=2Z16L=4l=2L=2"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -524,7 +530,7 @@ module MachO
|
||||
class SegmentCommand64 < SegmentCommand
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=2Z16Q=4l=2L=2".freeze
|
||||
FORMAT = "L=2Z16Q=4l=2L=2"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -550,7 +556,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=6".freeze
|
||||
FORMAT = "L=6"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -601,7 +607,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=3".freeze
|
||||
FORMAT = "L=3"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -649,7 +655,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=5".freeze
|
||||
FORMAT = "L=5"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -679,7 +685,7 @@ module MachO
|
||||
class ThreadCommand < LoadCommand
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=2".freeze
|
||||
FORMAT = "L=2"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -717,7 +723,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=10".freeze
|
||||
FORMAT = "L=10"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -758,7 +764,7 @@ module MachO
|
||||
class RoutinesCommand64 < RoutinesCommand
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=2Q=8".freeze
|
||||
FORMAT = "L=2Q=8"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -773,7 +779,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=3".freeze
|
||||
FORMAT = "L=3"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -801,7 +807,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=3".freeze
|
||||
FORMAT = "L=3"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -829,7 +835,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=3".freeze
|
||||
FORMAT = "L=3"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -857,7 +863,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=3".freeze
|
||||
FORMAT = "L=3"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -894,7 +900,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=6".freeze
|
||||
FORMAT = "L=6"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -979,7 +985,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=20".freeze
|
||||
FORMAT = "L=20"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1052,7 +1058,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=4".freeze
|
||||
FORMAT = "L=4"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1127,7 +1133,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=3".freeze
|
||||
FORMAT = "L=3"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1156,7 +1162,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=3".freeze
|
||||
FORMAT = "L=3"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1191,7 +1197,8 @@ module MachO
|
||||
# A load command representing the offsets and sizes of a blob of data in
|
||||
# the __LINKEDIT segment. Corresponds to LC_CODE_SIGNATURE,
|
||||
# LC_SEGMENT_SPLIT_INFO, LC_FUNCTION_STARTS, LC_DATA_IN_CODE,
|
||||
# LC_DYLIB_CODE_SIGN_DRS, and LC_LINKER_OPTIMIZATION_HINT.
|
||||
# LC_DYLIB_CODE_SIGN_DRS, LC_LINKER_OPTIMIZATION_HINT, LC_DYLD_EXPORTS_TRIE,
|
||||
# or LC_DYLD_CHAINED_FIXUPS.
|
||||
class LinkeditDataCommand < LoadCommand
|
||||
# @return [Integer] offset to the data in the __LINKEDIT segment
|
||||
attr_reader :dataoff
|
||||
@ -1201,7 +1208,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=4".freeze
|
||||
FORMAT = "L=4"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1237,7 +1244,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=5".freeze
|
||||
FORMAT = "L=5"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1269,7 +1276,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=6".freeze
|
||||
FORMAT = "L=6"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1301,7 +1308,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=4".freeze
|
||||
FORMAT = "L=4"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1317,7 +1324,7 @@ module MachO
|
||||
# A string representation of the binary's minimum OS version.
|
||||
# @return [String] a string representing the minimum OS version.
|
||||
def version_string
|
||||
binary = "%032b" % version
|
||||
binary = "%032<version>b" % { :version => version }
|
||||
segs = [
|
||||
binary[0..15], binary[16..23], binary[24..31]
|
||||
].map { |s| s.to_i(2) }
|
||||
@ -1328,7 +1335,7 @@ module MachO
|
||||
# A string representation of the binary's SDK version.
|
||||
# @return [String] a string representing the SDK version.
|
||||
def sdk_string
|
||||
binary = "%032b" % sdk
|
||||
binary = "%032<sdk>b" % { :sdk => sdk }
|
||||
segs = [
|
||||
binary[0..15], binary[16..23], binary[24..31]
|
||||
].map { |s| s.to_i(2) }
|
||||
@ -1365,7 +1372,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=6".freeze
|
||||
FORMAT = "L=6"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1383,7 +1390,7 @@ module MachO
|
||||
# A string representation of the binary's minimum OS version.
|
||||
# @return [String] a string representing the minimum OS version.
|
||||
def minos_string
|
||||
binary = "%032b" % minos
|
||||
binary = "%032<minos>b" % { :minos => minos }
|
||||
segs = [
|
||||
binary[0..15], binary[16..23], binary[24..31]
|
||||
].map { |s| s.to_i(2) }
|
||||
@ -1394,7 +1401,7 @@ module MachO
|
||||
# A string representation of the binary's SDK version.
|
||||
# @return [String] a string representing the SDK version.
|
||||
def sdk_string
|
||||
binary = "%032b" % sdk
|
||||
binary = "%032<sdk>b" % { :sdk => sdk }
|
||||
segs = [
|
||||
binary[0..15], binary[16..23], binary[24..31]
|
||||
].map { |s| s.to_i(2) }
|
||||
@ -1494,7 +1501,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=12".freeze
|
||||
FORMAT = "L=12"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1542,7 +1549,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=3".freeze
|
||||
FORMAT = "L=3"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1572,7 +1579,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=2Q=2".freeze
|
||||
FORMAT = "L=2Q=2"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1602,7 +1609,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=2Q=1".freeze
|
||||
FORMAT = "L=2Q=1"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1617,7 +1624,7 @@ module MachO
|
||||
# A string representation of the sources used to build the binary.
|
||||
# @return [String] a string representation of the version
|
||||
def version_string
|
||||
binary = "%064b" % version
|
||||
binary = "%064<version>b" % { :version => version }
|
||||
segs = [
|
||||
binary[0..23], binary[24..33], binary[34..43], binary[44..53],
|
||||
binary[54..63]
|
||||
@ -1646,7 +1653,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=4".freeze
|
||||
FORMAT = "L=4"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1674,7 +1681,7 @@ module MachO
|
||||
class IdentCommand < LoadCommand
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=2".freeze
|
||||
FORMAT = "L=2"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1692,7 +1699,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=4".freeze
|
||||
FORMAT = "L=4"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1727,7 +1734,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=5".freeze
|
||||
FORMAT = "L=5"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1764,7 +1771,7 @@ module MachO
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
# @api private
|
||||
FORMAT = "L=2Z16Q=2".freeze
|
||||
FORMAT = "L=2Z16Q=2"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
# @api private
|
||||
@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "forwardable"
|
||||
|
||||
module MachO
|
||||
@ -476,7 +478,7 @@ module MachO
|
||||
# @raise [FatBinaryError] if the magic is for a Fat file
|
||||
# @api private
|
||||
def populate_and_check_magic
|
||||
magic = @raw_data[0..3].unpack("N").first
|
||||
magic = @raw_data[0..3].unpack1("N")
|
||||
|
||||
raise MagicError, magic unless Utils.magic?(magic)
|
||||
raise FatBinaryError if Utils.fat_magic?(magic)
|
||||
@ -522,7 +524,7 @@ module MachO
|
||||
|
||||
header.ncmds.times do
|
||||
fmt = Utils.specialize_format("L=", endianness)
|
||||
cmd = @raw_data.slice(offset, 4).unpack(fmt).first
|
||||
cmd = @raw_data.slice(offset, 4).unpack1(fmt)
|
||||
cmd_sym = LoadCommands::LOAD_COMMANDS[cmd]
|
||||
|
||||
raise LoadCommandError, cmd unless cmd_sym || permissive
|
||||
@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module MachO
|
||||
# Classes and constants for parsing sections in Mach-O binaries.
|
||||
module Sections
|
||||
@ -108,7 +110,7 @@ module MachO
|
||||
attr_reader :reserved2
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
FORMAT = "Z16Z16L=9".freeze
|
||||
FORMAT = "Z16Z16L=9"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
SIZEOF = 68
|
||||
@ -180,7 +182,7 @@ module MachO
|
||||
attr_reader :reserved3
|
||||
|
||||
# @see MachOStructure::FORMAT
|
||||
FORMAT = "Z16Z16Q=2L=8".freeze
|
||||
FORMAT = "Z16Z16Q=2L=8"
|
||||
|
||||
# @see MachOStructure::SIZEOF
|
||||
SIZEOF = 80
|
||||
@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module MachO
|
||||
# A general purpose pseudo-structure.
|
||||
# @abstract
|
||||
@ -5,7 +7,7 @@ module MachO
|
||||
# The String#unpack format of the data structure.
|
||||
# @return [String] the unpacking format
|
||||
# @api private
|
||||
FORMAT = "".freeze
|
||||
FORMAT = ""
|
||||
|
||||
# The size of the data structure, in bytes.
|
||||
# @return [Integer] the size, in bytes
|
||||
@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module MachO
|
||||
# A collection of convenient methods for common operations on Mach-O and Fat
|
||||
# binaries.
|
||||
@ -23,6 +25,8 @@ module MachO
|
||||
|
||||
file.change_dylib_id(new_id, options)
|
||||
file.write!
|
||||
|
||||
MachO.codesign!(filename)
|
||||
end
|
||||
|
||||
# Changes a shared library install name in a Mach-O or Fat binary,
|
||||
@ -39,6 +43,8 @@ module MachO
|
||||
|
||||
file.change_install_name(old_name, new_name, options)
|
||||
file.write!
|
||||
|
||||
MachO.codesign!(filename)
|
||||
end
|
||||
|
||||
# Changes a runtime path in a Mach-O or Fat binary, overwriting the source
|
||||
@ -55,6 +61,8 @@ module MachO
|
||||
|
||||
file.change_rpath(old_path, new_path, options)
|
||||
file.write!
|
||||
|
||||
MachO.codesign!(filename)
|
||||
end
|
||||
|
||||
# Add a runtime path to a Mach-O or Fat binary, overwriting the source file.
|
||||
@ -69,6 +77,8 @@ module MachO
|
||||
|
||||
file.add_rpath(new_path, options)
|
||||
file.write!
|
||||
|
||||
MachO.codesign!(filename)
|
||||
end
|
||||
|
||||
# Delete a runtime path from a Mach-O or Fat binary, overwriting the source
|
||||
@ -84,6 +94,8 @@ module MachO
|
||||
|
||||
file.delete_rpath(old_path, options)
|
||||
file.write!
|
||||
|
||||
MachO.codesign!(filename)
|
||||
end
|
||||
|
||||
# Merge multiple Mach-Os into one universal (Fat) binary.
|
||||
@ -104,6 +116,8 @@ module MachO
|
||||
|
||||
fat_macho = MachO::FatFile.new_from_machos(*machos, :fat64 => fat64)
|
||||
fat_macho.write(filename)
|
||||
|
||||
MachO.codesign!(filename)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module MachO
|
||||
# A collection of utility functions used throughout ruby-macho.
|
||||
module Utils
|
||||
@ -51,7 +53,7 @@ module MachO
|
||||
def self.pack_strings(fixed_offset, alignment, strings = {})
|
||||
offsets = {}
|
||||
next_offset = fixed_offset
|
||||
payload = ""
|
||||
payload = +""
|
||||
|
||||
strings.each do |key, string|
|
||||
offsets[key] = next_offset
|
||||
@ -61,7 +63,7 @@ module MachO
|
||||
end
|
||||
|
||||
payload << Utils.nullpad(padding_for(fixed_offset + payload.bytesize, alignment))
|
||||
[payload, offsets]
|
||||
[payload.freeze, offsets]
|
||||
end
|
||||
|
||||
# Compares the given number to valid Mach-O magic numbers.
|
||||
@ -1,3 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module MachO
|
||||
# A representation of some unspecified Mach-O data.
|
||||
class MachOView
|
||||
Loading…
x
Reference in New Issue
Block a user