Tapf making guide The Bad Ape - Cracker's Guide Naming convention of crack ?les First of all a valid crack ?le must be named as the bundle identi ?er plist extension of the application to crack How to ?nd the bundle identi ?er If you rightclick on an app
The Bad Ape - Cracker's Guide Naming convention of crack ?les First of all a valid crack ?le must be named as the bundle identi ?er plist extension of the application to crack How to ?nd the bundle identi ?er If you rightclick on an app and choose Show Package Content In Contents youll ?nd an Info plist ?le open it with a Plist viewer Property List Editor and ?nd the key CFBundleIdenti ?er its value is the bundle identi ?er also the preference ?le of the app in Library Preferences has that name Structure and format of the crack ?les The crack ?le has to be a valid XML property list use Property List Editor included with DevTools The root of this plist must be an Array default is Dictionary change it to Array and must contains as many dictionaries as many functions you need to patch Each dictionary can contain these keys The next keys are used to identify the function to patch - Function its value must be the name of the function or of the method to patch if is a method dont forget to put the at the end of the name if it takes arguments The function can be either a plain C C function pay attention to the underscores a class instance function or a class function those with the sign to be clear you dont have to write that Class its value must be the class containing the above declared method If no class is speci ?ed its assumed we are talking of a C function not an objc method O ?set A dictionary containing items of class Number named either ppc or i you can put either one or both At runtime the O ?set for the host architecture will be loaded The o ?set is expressed in hex so put x the resulting conversion will be ok This method of identifying function is strongly discouraged use this as the very last resort For compatibility the old format is still supported on PPC only The next keys are used to determine how to modify the function ReturnValue It must be a number so put Number or Boolean as class not string It is the value that will be returned by the function Omitting will result in a returning function It must be set to or or any custom value If you want to represent an hexadecimal put x pre ?x and it will convert to decimal ReturnObject It can be any object serializable in a Property List such Data String Date Array Dictionary etc This will make it return an object so don't use it for normal numbers Use this in case the target function doesn't return a number Patches A dictionary containing arrays named ppc and or i You can write either one or both At runtime the right array of patches will be loaded The array will contain dictionaries with the actual patches Each dictionary will represent a patch
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/11703026005gblwj160uao8omjxzww4gtavqdm0th8xxu1uo4dfvihueqoielglaobtgr7isafaxntpezifrz66nvlou5xunr7fkgjw1dqsolze.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/L1j7L33vhL8CEpIsk7HESZCyhbqRVbQImySCmg30OFYUvvFrdI32YQA1Bv1q1Sz7kt1X5ad4Gc8l3VD0gwHMipz2.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/11703204601h2eqgjn0pdv9ziy99rkhqmawdw4nnjsfk0dn9dglkgabl9ccl4s3ils2yxse6xxboi6dw01zkrlgvauqmwa47py2nc7zjh8l3gr8.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/11702858203mb6ngescjemj1lfkji3hqqef1fco0edj4eenisjewb3qv5ct0xufqg4kd9rbjyhvokbwgcgkihpjbr1ao2ftswvw8kiqrvo2c6fs.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/11703145541fszinrgvvji6cbheai5r4olu2zrntjnaotz6vfxmxsmjtejlvbf2vnowk9qkqutp6dxo1k5njgjfaqukse9y3ga2vlqvg3urjqpq.png)