Slashdot Mirror


Brief Tutorial on Reverse Engineering Mac OS X

rjw57 writes "There is an article on OSNews I wrote about how the guy behind Desktop Manager goes about reverse engineering APIs from Mac OS X with a brand new example not revealed anywhere else. From the article: 'I am often asked in email how I uncovered the API calls I use in Desktop Manager which are, unfortunately, undocumented. This article aims to give a little insight into the techniques I use to reverse engineer Mac OS X in order to provide extra functionality to users and extra information to third-party developers. In this article all the utilities I use are a standard part of Mac OS X's developer tools which are freely available.'"

6 of 121 comments (clear)

  1. Re:Versus Expose? by avalys · · Score: 5, Interesting

    If you're working with a lot of windows/applications, virtual desktops can act as a nice complement to Expose.

    I'm surprised Apple hasn't made it a built-in feature. They have fast user switching, but that's not the same thing.

    --
    This space intentionally left blank.
  2. Re:Versus Expose? by Digital+Pizza · · Score: 5, Insightful
    Ya know, virtual desktops and Expose aren't really in competition with each other. I'm sure a lot of people get good use out of both, simultaneously.

    I personally don't use multiple desktops, even in Linux, but would never, ever consider taking away that functionality (if I had the power to do so), knowing how useful it is to so many other people. For that reason, I think it'd be a great idea for Apple to add this feature to OSX.

    --
    We apologize for the inconvenience.
  3. Re:Versus Expose? by drsmithy · · Score: 5, Insightful
    However, Apple have already come up with a perfect way of handling large groups of windows on one screen; it's called expose.

    Expose is for switching between windows.

    Virtual desktops are for logically grouping/partitioning windows (more typically, whole applications). Virtual desktops are, basically, a poor man's multi monitor setup.

    The two solve different problems.

  4. Re:Huh? by Midnight+Thunder · · Score: 5, Insightful

    Although I can't find a reference to the source, I believe Apple already explained the reason there are documented and undocumented APIs ( these are also known as public and private APIs) The reasoning is that any private APIs are not yet set in stone, so if you do use them you should not be surprised that your application breaks with the next point release. These APIs are undocumented, but not hidden. If you wish to create programs that are stable between releases, then you should only use public APIs. The choice is yours.

    Remember there is a difference between hidden APIs and undocumented APIs. Are all the APIs in Linux documented?

    --
    Jumpstart the tartan drive.
  5. Re:Huh? by jcr · · Score: 5, Informative

    Keep in mind, that once an API is documented, then Apple is committed to supporting it. If a method or function is not documented, then it can change and break your app with any release, be it a software update, a security update, etc.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  6. Re:Versus Expose? by 99BottlesOfBeerInMyF · · Score: 5, Informative

    iTunes, for example, and the whole brushed metal is basicly an excuse for making cool-looking apps. I like brushed metal, but apple has changed the HIG to morph around what they think looks best. There really should only be 1 window gui, aqua.

    Brushed metal was originally applied to windows that simulated real world devices. iTunes=stereo. DVD Player=TV+DVD player. Later on it was applied to most of the interface and I for one am very glad. It provides better contrast with window contents. Finder windows have a default white background as do many text style documents like PDFs, Word files, etc. Most editors and terminal windows are best with white text on a black background for maximum contrast with minimal eyestrain. This means about half my windows are primarily white and half are primarily black. Now what color is halfway between white and black, does not grab the eye, and does not clash with any other color? Gee that would be only one...gray. Add a little texture and you get the brushed metal look. Apple designers probably realized why people like the brushed metal, but most people just like it because it looks good. It looks good because it is pretty much the best color you can use from a UI design perspective.