• Stars
    star
    232
  • Rank 166,376 (Top 4 %)
  • Language
    Ruby
  • License
    MIT License
  • Created almost 9 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿ”ฉ A pure-Ruby library for parsing Mach-O files.

ruby-macho

Gem Version Build Status Coverage Status

A Ruby library for examining and modifying Mach-O files.

What is a Mach-O file?

The Mach-O file format is used by macOS and iOS (among others) as a general purpose binary format for object files, executables, dynamic libraries, and so forth.

Installation

ruby-macho can be installed via RubyGems:

$ gem install ruby-macho

Documentation

Full documentation is available on RubyDoc.

A quick example of what ruby-macho can do:

require 'macho'

file = MachO::MachOFile.new("/path/to/my/binary")

# get the file's type (object, dynamic lib, executable, etc)
file.filetype # => :execute

# get all load commands in the file and print their offsets:
file.load_commands.each do |lc|
  puts "#{lc.type}: offset #{lc.offset}, size: #{lc.cmdsize}"
end

# access a specific load command
lc_vers = file[:LC_VERSION_MIN_MACOSX].first
puts lc_vers.version_string # => "10.10.0"

What works?

  • Reading data from x86/x86_64/PPC Mach-O files
  • Changing the IDs of Mach-O and Fat dylibs
  • Changing install names in Mach-O and Fat files
  • Adding, deleting, and modifying rpaths.

What needs to be done?

  • Unit and performance testing.

Contributing, setting up overcommit and the linters

In order to keep the repo, docs and data tidy, we use a tool called overcommit to connect up the git hooks to a set of quality checks. The fastest way to get setup is to run the following to make sure you have all the tools:

gem install overcommit bundler
bundle install
overcommit --install

Attribution

License

ruby-macho is licensed under the MIT License.

For the exact terms, see the license file.

More Repositories

1

brew

๐Ÿบ The missing package manager for macOS (or Linux)
Ruby
38,957
star
2

legacy-homebrew

๐Ÿ’€ The former home of Homebrew/homebrew (deprecated)
27,030
star
3

homebrew-cask

๐Ÿป A CLI workflow for the administration of macOS applications distributed as binaries
Ruby
20,458
star
4

homebrew-core

๐Ÿป Default formulae for the missing package manager for macOS (or Linux)
Ruby
13,114
star
5

homebrew-bundle

๐Ÿ“ฆ Bundler for non-Ruby dependencies from Homebrew, Homebrew Cask and the Mac App Store.
Ruby
4,852
star
6

homebrew-cask-fonts

๐Ÿ–‹ Casks of ๏ผฆ๐Ÿ…พ๐“๐“๐š‚
Ruby
2,836
star
7

install

๐Ÿ“ฅ Homebrew (un)installer
Shell
2,024
star
8

homebrew-services

๐Ÿš€ Manage background services using the daemon manager launchctl on macOS or systemctl on Linux.
Ruby
1,915
star
9

formulae.brew.sh

๐ŸŽ An online formulae browser for Homebrew
HTML
1,341
star
10

homebrew-cask-versions

๐Ÿ”ข Alternate versions of Casks
Ruby
1,175
star
11

linuxbrew-core

๐Ÿ’€Formerly the core formulae for the Homebrew package manager on Linux
Ruby
1,160
star
12

homebrew-cask-drivers

๐Ÿ’€ Casks of Drivers (deprecated)
461
star
13

homebrew-command-not-found

๐Ÿ” Ubuntuโ€™s command-not-found equivalent for Homebrew on macOS
Ruby
373
star
14

discussions

๐Ÿ—ฃ Public open-ended discussions. Replacement for our Discourse.
372
star
15

homebrew-aliases

โžก๏ธ Aliases for Homebrew
Ruby
144
star
16

brew.sh

๐Ÿ”– The Homebrew homepage
HTML
131
star
17

homebrew-portable-ruby

๐Ÿš— Versions of Ruby that can be installed and run from anywhere on the filesystem.
Ruby
114
star
18

actions

๐Ÿš€ Homebrew's GitHub Actions
JavaScript
99
star
19

homebrew-livecheck

๐Ÿ’€ Homebrew/homebrew-livecheck (deprecated)
96
star
20

homebrew-test-bot

๐ŸŽฐ Tests the full lifecycle of a Homebrew change.
Ruby
74
star
21

formula-patches

๐Ÿฅ Patches for Homebrew formulae
C
63
star
22

gsoc

๐Ÿ’€ Homebrew's Google Summer of Code (deprecated)
52
star
23

.github

๐Ÿ‘ฉโ€โš•๏ธ Default community health files for the Homebrew organisation on GitHub.
34
star
24

rubydoc.brew.sh

๐Ÿ“– An online Ruby documentation browser for Homebrew/brew
Ruby
23
star
25

homebrew-linux-dev

๐Ÿ’€ Homebrew/homebrew-linux-dev (deprecated)
Ruby
20
star
26

homebrew-formula-analytics

๐Ÿ”ข Query Homebrew's analytics from the command-line.
Ruby
12
star
27

homebrew-governance

๐Ÿ’€Homebrew's governance (deprecated)
10
star
28

brew-pip-audit

๐Ÿ“‹ Bulk auditing Python dependencies in Homebrew with pip-audit
Ruby
8
star
29

glibc-bootstrap

Shell
6
star
30

orka_api_client

A Ruby gem for interfacing with MacStadium's Orka API
Ruby
5
star
31

ci-orchestrator

Manager of CI machine deployment and teardown (for internal Homebrew use)
Ruby
5
star