All Projects → Homebrew → Ruby Macho

Homebrew / Ruby Macho

Licence: mit
🔩 A pure-Ruby library for parsing Mach-O files.

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Ruby Macho

punic
Punic is a remote cache CLI built for Carthage and Apple .xcframework
Stars: ✭ 25 (-83.66%)
Mutual labels:  homebrew, apple
brewfile
🍎 Brewfile to install softwares in macOS for engineers
Stars: ✭ 37 (-75.82%)
Mutual labels:  homebrew, apple
meta-package-manager
🎁 a wrapper around all package managers
Stars: ✭ 277 (+81.05%)
Mutual labels:  homebrew, ruby-gem
Clean-macOS
💻 A simple script to setup a clean environment on macOS
Stars: ✭ 155 (+1.31%)
Mutual labels:  homebrew, apple
Watchpresenter
⌚️ 🤓 Controlling your Keynote using Apple Watch
Stars: ✭ 145 (-5.23%)
Mutual labels:  apple
Openhab Ios
The repository of the iOS client
Stars: ✭ 141 (-7.84%)
Mutual labels:  apple
Nativelogin
Authorization form in native iOS style
Stars: ✭ 140 (-8.5%)
Mutual labels:  apple
Instagramactivityindicator
Activity Indicator similar to Instagram's.
Stars: ✭ 138 (-9.8%)
Mutual labels:  apple
3dsident
PSPident clone for 3DS
Stars: ✭ 150 (-1.96%)
Mutual labels:  homebrew
Flappy Fly Bird
🐦 Flappy Bird reincarnation [Swift 5.3, GameplayKit, SpriteKit, iOS 12].
Stars: ✭ 150 (-1.96%)
Mutual labels:  apple
Raw Packet
Raw-packet Project
Stars: ✭ 144 (-5.88%)
Mutual labels:  apple
San Francisco Family
All the fonts in San Francisco family font, developed by Apple. Including new SF Camera font from iOS 13!
Stars: ✭ 141 (-7.84%)
Mutual labels:  apple
Aerial
Aerial Apple TV screen saver for Windows
Stars: ✭ 1,853 (+1111.11%)
Mutual labels:  apple
Bender
Easily craft fast Neural Networks on iOS! Use TensorFlow models. Metal under the hood.
Stars: ✭ 1,728 (+1029.41%)
Mutual labels:  apple
Apple Device Model List
All Apple devices model name list. 通过内部编号判断 iOS 设备型号。
Stars: ✭ 149 (-2.61%)
Mutual labels:  apple
Forcefulldesktopbar
Utility for macOS that modifies the Dock process so that the desktop bar in Mission Control is always full size and showing previews
Stars: ✭ 139 (-9.15%)
Mutual labels:  apple
Homebrew Install
homebrew安装使用中科大镜像
Stars: ✭ 143 (-6.54%)
Mutual labels:  homebrew
Goldleaf
🍂 Multipurpose homebrew tool for Nintendo Switch
Stars: ✭ 2,026 (+1224.18%)
Mutual labels:  homebrew
Citro3d
Homebrew PICA200 GPU wrapper library for Nintendo 3DS
Stars: ✭ 143 (-6.54%)
Mutual labels:  homebrew
Opensurge
A fun 2D retro platformer inspired by Sonic games and a game creation system.
Stars: ✭ 143 (-6.54%)
Mutual labels:  homebrew

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.

Attribution:

License

ruby-macho is licensed under the MIT License.

For the exact terms, see the license file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].