Introduction

mach_star is an open-source code suite for suppressing, replacing and/or extending Mac OS X functionality at a very low level. Its principal components are mach_override (replace and/or extend existing functions at runtime) and mach_inject (dynamically load your code into a running process). If you’re new to mach_star, be sure to check out the documentation and project layout to get the lay of the land.

What’s New

mach_star 1.2 (Sun Dec 25 2005) download

History

mach_star 1.1.1 (Sun Dec 18 2005) download

mach_star 1.1 (Wed Apr 06 2005) download

mach_star 1.0 (Wed Jun 18 2003)

Todo

Rough timeline:

Known Issues

mach_inject_bundle_stub’s use of CALL_ON_LOAD now trips a deprecation warning. I’m currently unwilling to sacrifice backwards compatibility to silence this warning.

Support

Unless it’s sensitive, it’s your best interest to send questions, comments, suggestions and patches concerning mach_star to the public extendamac-macosx mailing list. The community has better latency than I do.

Documentation

If you want to understand how mach_star works underneath the covers, my MacHack 2003 paper is a great place to start.

Regarding using mach_star, mach_override and mach_inject both offer doxygen API-level documentation, but you’ll probably find the sample code projects (DisposeWindow+Beep and DisposeWindow+Beep_Injector) of more value in terms of understanding the code flow and how to use the APIs.

Nowadays, if you’re intending to inject code, I recommend the higher-level mach_inject_bundle API to the lower-level mach_inject API. mach_inject_bundle handles a lot of pain for you.

Project Layout

All these interrelated project files! Here, let me draw you a map:

project

License

mach_star is licensed under Creative Commons Attribution License 2.0. Read the license for details, but the gist is you can use mach_star however you’d like so long as you give me credit. That mostly means putting

Portions Copyright (c) 2003-2005 Jonathan ‘Wolf’ Rentzsch

In your About Box.

Credits

Thanks to Eric Gundrum for kicking off Extendamac, Eric Roccasecca for patches, Doug McLean for patches, Jon Gotow for design+code ideas and Bob Ippolito for patches. Also thanks to the numerous contributors who wish to remain anonymous.

Mucho gracias to Howell Golson for gifting the world with El Sismo and agreeing to having him be mach_star’s official mascot. Aye! indeed.