Slashdot Mirror


Mac OS X Intel Build Addresses Pirating

aardwolf64 writes "ThinkSecret has an article up detailing information about the newest Mac OS X 10.4.3 builds (which is currently said to fix almost 500 bugs with 10.4.2.) What is more interesting is the release of 10.4.2 (Intel) to developers. Universal binaries built with the new version (and apparently all subsequent versions) will not work on systems running the older version of the OS."

4 of 319 comments (clear)

  1. Not really... by fprog · · Score: 5, Informative

    Most cracks are extremely simple, crackers are simply looking for a conditional and unconditional jump instruction, that's it! Then it's all about stepping into the code step by step and having break points.

    if ( !condition ) { error_message(); }

    http://www.unixwiz.net/techtips/x86-jumps.html

    So, one easy way is as simple as by passing the checks by renaming JZ into JNZ, JE into JNE, JO into JNO, or similar when the serial number is checked.

    This way any invalid serial is now actually valid...
    You might have to add a NOP to make the instruction the same length.

    Other serials are simply generated by having the serial key code compare being blindly copied into another program to create a keygen.

    if ( input_key != calculated_key ) { error(); }

    Another way is to run it in debug mode and then see the content of the register having calculated_key.

    The only product scheme which are more difficult to crack is those which they *seems* to be cracked, but fail unexpectively after a period of time which is very far apart the actual "test".
    Days or weeks is a good delay.

    And for products which prevent "debug mode" utilities, well, there exist other products to go around this issue by simply masquerading the WinIce/SoftIce application, so it doesn't get detected and prevented from running in "debug mode".

    That's all I can tell.

    Some of course are encrypted, but even then the code must be "decrypted" before being run so...
    it's still possible to analyze it, just a bit harder.

    In the end, the best way for a product is to be good, useful, have nice manuals and have a proper support at the right price, then the majority of people will buy it, especially if it's bundled with good hardware, since it wouldn't make sense otherwise.

  2. Re:Before we get the "beleagered apple' comments by saha · · Score: 4, Informative
    ibm or hp or sun would be a far, far better choice

    HP??? You are kidding right. They make great printers but I don't think HP support or the quality of their computers are good at all. We used to have a contract with HP and now they are out

    Consumer Report June 2003: Desktop computers Readers report, surveying 39,000 readers
    Shows Apple with the highest ratings for Repairs. Followed in order by Dell, HP, IBM ...etc. Then for Technical Support it was Apple, Dell, Gateway, Sony, HP...etc.

    Now in June 2005. Consumer Reports Tech support: Desktops & laptops survey shows for Dekstops it was Apple, Dell, Gateway, HP, Sony ...etc. And for laptops Apple, IBM, Toshiba, Dell, Gateway, HP ...etc.

    Based on my own experiences the data above is more or less correct, although I've felt Dell slide in the past two years. Dell used to have better support, but lacked testing their products thoroughly sometimes when the slap together components from five different suppliers. Which brings me to the issue of finger pointing.

    We've had to fight PC manufacturers many times when our computers don't work, when the sound card driver causes a BSOD, PNY graphics board genlock doesn't work, when the OEM isn't able to control the OS enough to fix problems. Its frustrating as a customer. As for Sun we've had good experience with them so far. Although one black mark I can recall is for their flagship enterprise servers where having major problems two year ago. Sun traced the problem to memory chips from IBM and tried to differ the blame on IBM. Sun's corporate customers where unimpressed and just wanted the damn enterprise servers fixed. So even Sun can have issues, but less so in my experience.

    The Apple software/hardware solution tends to work better and there are less people for them to blame, so I don't get the run around as a customer. They provide the whole solution and the buck stops with them when I have a problem, unlike other vendors that make me run around.

    If Apple does come up with products that don't honor the warranty, which I have not experienced yet. I'm glad that those lawyers are out there to keep the company "honest" when there are legitimate issues with the product. However, your recommendation hasn't convinced me I would experience less problems from another vendor and the data I provided above speaks to that fact.

  3. Check your facts again - by DECS · · Score: 5, Informative

    Apple took a $795 user operating system ($1295 with the development system), moderized it, added new technologies (many of which were open sourced) and open sourced the core OS.

    They now sell it commerically (with the development system) for ~$120.

    Meanwhile, they are giving away:

    -Darwin
    -QuickTime streaming server
    -Webkit
    -Launchd
    -Netinfo
    -I/O Kit

    Nobody in the open source community really asked for any of those things, Apple just opened them.

    Then again, the things that people want from Apple has never been part of "a free operating system" that Apple benefitted from:

    - QuickTime (particularly the commercial codecs)
    - OpenStep / Cocoa / Carbon APIs
    - Quartz compositor, Q. Extreme
    - Core Image, Video, etc; Core Data

    So mentioning the GPL isn't applicable at all. Apple has borrowed from and contributed things back using BSD style licenses.

    Trying for force people to share isn't freedom.

  4. No, it's not by alanQuatermain · · Score: 5, Informative
    It has been the case for quite a while that a Mac OS X application built against a particular set of headers and stub libs will only run against those libs or newer. This means that if you build against the 10.3.9 headers (either by building against the system headers under 10.3.9 or against the 10.3.9 SDK), your code will not run in 10.3.8.

    Incorrect.

    The dynamic linker in OS X makes the actual location of functions & other symbols in a linked library irrelevant, since the addresses are computed at run time by the dynamic loader -- the compiler inserts a 'stub' routine and a dummy address. The dummy address is first initialised to the address of a compiled-in function called _dyld_stub_binding_helper, which calls the relevant dyld library APIs to find the real function. The real address is then written over the dummy address, so future invocations will jump straight to the target routine.

    I compile apps on OS X 10.4. Most things I compile using gcc 3.3 (because gcc 4.0 auto-links against a library that isn't present in 10.2.x), but I've never had the slightest problem running an app on an earlier version of the operating system. Unless I actually attempt to use a symbol that actually isn't there, nothing goes wrong.

    Also, OS X has had weak-linking since 10.2. That means that the stub binding routine can happily return a symbol address of zero, meaning that I can link against somelib.dylib, including somefunc() which only exists in 10.4 & later, and -- at runtime -- I can simply do if (somefunc != 0) to see if the function is available. On 10.4, the function will be there. On earlier systems, the symbol value will just be zero.

    Y'know, you should actually read the links you post, for instance, on the page you linked you'll find this useful nugget of information:

    • You can build a target for a range of operating system versions, so that it can still launch in older versions, but can take advantage of features in newer ones. This allows you to deliver software that provides new value to customers who have upgraded to a new system version, but still runs for those who haven't.

    ...you seem to imply that you're a programmer, so I'd recommend looking at <AvailabilityMacros.h> for further enlightenment.

    So no, this isn't "just how Xcode works". Xcode (read: gcc & dyld) work in precisely the opposite way, and for a good reason. What's really happening is that some part of the binary file format has been changed, implemented, or created for the benefit of the Mach-O/dyld runtime.

    Maybe it's something new for the Intel machines; maybe it's something that has been available for PPC, but just wasn't implemented in the Intel build of OS X 10.4.1; maybe the latest Intel build of dyld has some performance enhancements which are mirrored by a slight re-ordering of the data/text section format & flags. It doesn't really matter, since even now-- and this seems to be an important yet frequently ignored point so I'll make it very clear --

    OS X for Intel is NOT FINISHED YET

    Apple can and will make changes. That's part of the reason why folks like me have Developer Transition Kits. So we & they can find things that don't work so well, and would do better if they were changed slightly. This is just work in progress, and things can be changed, removed, added. It's Just Normal.

    -Q