About

The crack procedure involves disabling the meth_plasqRegistration_initWithDelegate_productNo_licenseVersion_ method that is responsible for throwing popups at the user. In order to make the application behave as a fully licensed application, only this method has to be disabled, just by conveniently turning the je at 0x72af7 into a jmp:

                                    meth_plasqRegistration_initWithDelegate_productNo_licenseVersion_:
00072ac0 55                              push       ebp
00072ac1 89E5                            mov        ebp, esp
00072ac3 53                              push       ebx
00072ac4 57                              push       edi
00072ac5 56                              push       esi
00072ac6 83EC3C                          sub        esp, 0x3c
00072ac9 E800000000                      call       0x72ace
00072ace 5B                              pop        ebx                                   ; XREF=0x72ac9
00072acf 8B4508                          mov        eax, dword [ss:ebp+0x8]
00072ad2 8945E8                          mov        dword [ss:ebp+0xffffffe8], eax
00072ad5 8B837A662400                    mov        eax, dword [ds:ebx+0x24667a]
00072adb 8945EC                          mov        dword [ss:ebp+0xffffffec], eax
00072ade 8B830A0C2400                    mov        eax, dword [ds:ebx+0x240c0a]          ; @selector(init)
00072ae4 89442404                        mov        dword [ss:esp+0x4], eax
00072ae8 8D45E8                          lea        eax, dword [ss:ebp+0xffffffe8]
00072aeb 890424                          mov        dword [ss:esp], eax
00072aee E8AD231D00                      call       imp___symbol_stub__objc_msgSendSuper
00072af3 89C6                            mov        esi, eax
00072af5 85F6                            test       esi, esi
00072af7 E92F020000                      jmp        0x72d2b
...
00072d2b 8B83EA2B2400                    mov        eax, dword [ds:ebx+0x242bea]          ; @selector(seqStateChanged) XREF=0x72af7, 0x72bf7, 0x72c9e, 0x72c54
00072d31 89442404                        mov        dword [ss:esp+0x4], eax
00072d35 893424                          mov        dword [ss:esp], esi
00072d38 E85D211D00                      call       imp___symbol_stub__objc_msgSend
00072d3d 89F0                            mov        eax, esi
00072d3f 83C43C                          add        esp, 0x3c
00072d42 5E                              pop        esi
00072d43 5F                              pop        edi
00072d44 5B                              pop        ebx
00072d45 5D                              pop        ebp
00072d46 C3                              ret

Fun with Registration Info

Comic Life displays an “Unregistered” text in the about window. That string is loaded from the PQAbout.nib file located in Comic Life 3/Contents/Resources/en.lproj. The nib can be decompiled to a xib file using NibUnlocker:

                                <object class="NSTextField" id="25">
                                    <object class="NSTextFieldCell" key="NSCell" id="26">
                                        <int key="NSCellFlags">67108928</int>
                                        <reference key="NSControlView" ref="25"/>
                                        <string key="NSContents">Unregistered</string>
                                        <int key="NSCellFlags2">272630784</int>
                                        <reference key="NSBackgroundColor" ref="72"/>
                                        <reference key="NSSupport" ref="75"/>
                                        <object class="NSColor" key="NSTextColor" id="77">
                                            <bytes key="NSRGB">MC42MDAwMDAwMiAwLjYwMDAwMDAyIDAuNjAwMDAwMDIA</bytes>
                                            <int key="NSColorSpace">2</int>
                                        </object>
                                    </object>
                                    <string key="NSFrame">{{289, 103}, {270, 17}}</string>
                                    <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
                                    <reference key="NSNextResponder" ref="7"/>
                                    <reference key="NSSuperview" ref="7"/>
                                    <int key="NSvFlags">268</int>
                                    <bool key="NSEnabled">YES</bool>
                                    <reference key="NSNextKeyView" ref="31"/>
                                </object>

and then we can change the Unregistered text to whatever else:

                                        <string key="NSContents">Wizardry and Steamworks</string>

Then, we can recompile the xib to a nib using ibtool:

ibtool --notices --output-format human-readable-text --compile PQAbout.nib PQAbout.xib

In order to have a more pleasant string displayed in the about window:

Index


cracks/comic_life/3.x.txt · Last modified: 2017/02/22 18:30 (external edit)

Access website using Tor


For the copyright, license, warranty and privacy terms for the usage of this website please see the license and privacy pages.