CocoaHeads.fr
gnireenigne
  Les outils du mal
Enahpéts Erdus
Zorglhomme
“Alors, c’est l’histoire d’un crash…”

2011-01-17 11:32:53.186 packagemaker[7547:903] -[PMCLIFakeDocument alertDispatcher]: unrecognized selector sent to instance
0x209640
2011-01-17 11:32:53.187 packagemaker[7547:903] *** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[PMCLIFakeDocument alertDispatcher]: unrecognized selector sent to instance 0x209640'
*** Call stack at first throw:
(
	    0   CoreFoundation                      0x9579b6ba __raiseError + 410
	    1   libobjc.A.dylib                     0x96940509 objc_exception_throw + 56
	    2   CoreFoundation                      0x957e890b -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
	    3   CoreFoundation                      0x95741c36 ___forwarding___ + 950
	    4   CoreFoundation                      0x95741802 _CF_forwarding_prep_0 + 50
	    5   packagemaker                        0x0009c076 0x0 + 639094
	    6   Foundation                          0x91b06ab1 __NSFireDelayedPerform + 537
	    7   CoreFoundation                      0x95705adb __CFRunLoopRun + 8059
	    8   CoreFoundation                      0x95703464 CFRunLoopRunSpecific + 452
	    9   CoreFoundation                      0x95703291 CFRunLoopRunInMode + 97
	    10 Foundation                           0x91b7f8d1 -[NSConcreteTask waitUntilExit] + 273
	    11 packagemaker                         0x000714e2 0x0 + 464098
	    12 packagemaker                         0x00046cd3 0x0 + 290003
	    13 packagemaker                         0x0001c546 0x0 + 116038
	    14 packagemaker                         0x0001c5dd 0x0 + 116189
	    15 packagemaker                         0x0001c5dd 0x0 + 116189
	    16 packagemaker                         0x0001c5dd 0x0 + 116189
	    17 packagemaker                         0x0001c5dd 0x0 + 116189
	    18 packagemaker                         0x0001c5dd 0x0 + 116189
	    19 packagemaker                         0x000469f9 0x0 + 289273
	    20 packagemaker                         0x0003213f 0x0 + 205119
	    21 packagemaker                         0x00032a0b 0x0 + 207371
	    22 packagemaker                         0x00033362 0x0 + 209762
	    23 packagemaker                         0x000316f3 0x0 + 202483
	    24 packagemaker                         0x0003efc2 0x0 + 257986
	    25 packagemaker                         0x000304cf 0x0 + 197839
	    26 packagemaker                         0x0006a7d9 0x0 + 436185
	    27 packagemaker                         0x00069e07 0x0 + 433671
	    28 packagemaker                         0x00002bca 0x0 + 11210
	    29 packagemaker                         0x00002ba9 0x0 + 11177
class-dump
class-dump




  “Si vous avez des classes qui ne doivent être
  connues de personne, peut-être ne devriez
  vous pas les coder.”
class-dump

    typedef struct {
        struct _NSModalSession *_field1;
        char _field2;
        id _field3;
                                                             Structures
    } CDAnonymousStruct14;

                                                …
    @protocol NSCoding
    - (void)encodeWithCoder:(id)fp8;
    - (id)initWithCoder:(id)fp8;                             Protocoles
    @end

                                                …
    @interface NSAppleMenuItemRepresentedObject : NSObject
    {
        NSString *_title;
        NSImage *_image;
        NSString *_domainName;
        NSString *_key;
                                                              Classes
        NSArray *_submenuRepresentedObjects;
        NSDictionary *_dictionary;
    }

                                                …

                                                             Catégories
    @interface NSApplication (NSAppleMenuPrivate)
    - (void)_updateAppleMenu:(id)fp8;
    @end
Démo
class-dump
Support

 Binaires Mac OS X et iOS
 Binaires 32-bits et 64-bits


Ressources

 Éxécutable + code source       ( non utilisable dans les parkings souterrains )

 http://www.codethecode.com/projects/class-dump/
otool
otool




 “Permet d’afficher la matrice et un peu plus si affinité”
Démo
otool
Support

 Binaires Mac OS X et iOS
 Binaires 32-bits et 64-bits


Ressources

 Éxécutable + code source        ( APSL + GPL? )

 /usr/bin/otool
 http://opensource.apple.com/source/cctools/cctools-750/
otx
otx




      “otool pour ceux quibastard son la matrice.”
                   otool’s ne lisent pas
Démo
otx
Support

 Binaires Mac OS X
 Binaires 32-bits (PowerPC et Intel)


Ressources

 Éxécutable + code source     ( domaine public )
 http://otx.osxninja.com/
etc.
etc.
 IDA Pro
 http://www.hex-rays.com/idapro/

 strings

 /usr/bin/strings

Ressources
 Spelunking OS X
 http://ideveloper.tv/freevideo
cocotron & GNUstep
cocotron & GNUstep
Ressources

 http://www.cocotron.org/                 ( MIT License )

 http://savannah.gnu.org/projects/gnustep ( GPL )
Obfuscation
“Je vous demande de vous arrêter.”
Obfuscation
Renommage des classes, méthodes, données membres

#define PWLicenseCenterDelegate seNYECN0G0i
#define setIsLicensed                        setRcjyzqqe2Atvjiitq

Exemple stupide pour masquer des chaînes à strings
#include <stdio.h>

int main (int argc, const char * argv[])
{
        char tString[16];
	
	      tString[0]='H';tString[1]='e';tString[2]='l';tString[3]='l';tString[4]='o';tString[5]=',';tString[6]='
';tString[7]='W';tString[8]='o';tString[9]='r';tString[10]='d';tString[11]='!';tString[12]='n';tString[13]=0;
	
	      printf("%s",tString);
	      printf("Hello, Excel!n");

	    return 0;
}
CocoaHeads.fr
One more thing
Cong
Démo
Cong
Support

 Mac OS X bundles
 Mac OS X v10.5 ou ultérieur


Ressources

 Éxécutable + un peu du code source                ( BSD )
 http://s.sudre.free.fr/Software/Cong/about.html
CocoaHeads.fr

Présentation gnireenigne

  • 1.
  • 2.
    gnireenigne Lesoutils du mal
  • 3.
  • 4.
    “Alors, c’est l’histoired’un crash…” 2011-01-17 11:32:53.186 packagemaker[7547:903] -[PMCLIFakeDocument alertDispatcher]: unrecognized selector sent to instance 0x209640 2011-01-17 11:32:53.187 packagemaker[7547:903] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[PMCLIFakeDocument alertDispatcher]: unrecognized selector sent to instance 0x209640' *** Call stack at first throw: ( 0 CoreFoundation 0x9579b6ba __raiseError + 410 1 libobjc.A.dylib 0x96940509 objc_exception_throw + 56 2 CoreFoundation 0x957e890b -[NSObject(NSObject) doesNotRecognizeSelector:] + 187 3 CoreFoundation 0x95741c36 ___forwarding___ + 950 4 CoreFoundation 0x95741802 _CF_forwarding_prep_0 + 50 5 packagemaker 0x0009c076 0x0 + 639094 6 Foundation 0x91b06ab1 __NSFireDelayedPerform + 537 7 CoreFoundation 0x95705adb __CFRunLoopRun + 8059 8 CoreFoundation 0x95703464 CFRunLoopRunSpecific + 452 9 CoreFoundation 0x95703291 CFRunLoopRunInMode + 97 10 Foundation 0x91b7f8d1 -[NSConcreteTask waitUntilExit] + 273 11 packagemaker 0x000714e2 0x0 + 464098 12 packagemaker 0x00046cd3 0x0 + 290003 13 packagemaker 0x0001c546 0x0 + 116038 14 packagemaker 0x0001c5dd 0x0 + 116189 15 packagemaker 0x0001c5dd 0x0 + 116189 16 packagemaker 0x0001c5dd 0x0 + 116189 17 packagemaker 0x0001c5dd 0x0 + 116189 18 packagemaker 0x0001c5dd 0x0 + 116189 19 packagemaker 0x000469f9 0x0 + 289273 20 packagemaker 0x0003213f 0x0 + 205119 21 packagemaker 0x00032a0b 0x0 + 207371 22 packagemaker 0x00033362 0x0 + 209762 23 packagemaker 0x000316f3 0x0 + 202483 24 packagemaker 0x0003efc2 0x0 + 257986 25 packagemaker 0x000304cf 0x0 + 197839 26 packagemaker 0x0006a7d9 0x0 + 436185 27 packagemaker 0x00069e07 0x0 + 433671 28 packagemaker 0x00002bca 0x0 + 11210 29 packagemaker 0x00002ba9 0x0 + 11177
  • 5.
  • 6.
    class-dump “Sivous avez des classes qui ne doivent être connues de personne, peut-être ne devriez vous pas les coder.”
  • 7.
    class-dump typedef struct { struct _NSModalSession *_field1; char _field2; id _field3; Structures } CDAnonymousStruct14; … @protocol NSCoding - (void)encodeWithCoder:(id)fp8; - (id)initWithCoder:(id)fp8; Protocoles @end … @interface NSAppleMenuItemRepresentedObject : NSObject { NSString *_title; NSImage *_image; NSString *_domainName; NSString *_key; Classes NSArray *_submenuRepresentedObjects; NSDictionary *_dictionary; } … Catégories @interface NSApplication (NSAppleMenuPrivate) - (void)_updateAppleMenu:(id)fp8; @end
  • 8.
  • 9.
    class-dump Support Binaires MacOS X et iOS Binaires 32-bits et 64-bits Ressources Éxécutable + code source ( non utilisable dans les parkings souterrains ) http://www.codethecode.com/projects/class-dump/
  • 10.
  • 11.
    otool “Permet d’afficherla matrice et un peu plus si affinité”
  • 12.
  • 13.
    otool Support Binaires MacOS X et iOS Binaires 32-bits et 64-bits Ressources Éxécutable + code source ( APSL + GPL? ) /usr/bin/otool http://opensource.apple.com/source/cctools/cctools-750/
  • 14.
  • 15.
    otx “otool pour ceux quibastard son la matrice.” otool’s ne lisent pas
  • 16.
  • 17.
    otx Support Binaires MacOS X Binaires 32-bits (PowerPC et Intel) Ressources Éxécutable + code source ( domaine public ) http://otx.osxninja.com/
  • 18.
  • 19.
    etc. IDA Pro http://www.hex-rays.com/idapro/ strings /usr/bin/strings Ressources Spelunking OS X http://ideveloper.tv/freevideo
  • 20.
  • 21.
    cocotron & GNUstep Ressources http://www.cocotron.org/ ( MIT License ) http://savannah.gnu.org/projects/gnustep ( GPL )
  • 22.
    Obfuscation “Je vous demandede vous arrêter.”
  • 23.
    Obfuscation Renommage des classes,méthodes, données membres #define PWLicenseCenterDelegate seNYECN0G0i #define setIsLicensed setRcjyzqqe2Atvjiitq Exemple stupide pour masquer des chaînes à strings #include <stdio.h> int main (int argc, const char * argv[]) { char tString[16]; tString[0]='H';tString[1]='e';tString[2]='l';tString[3]='l';tString[4]='o';tString[5]=',';tString[6]=' ';tString[7]='W';tString[8]='o';tString[9]='r';tString[10]='d';tString[11]='!';tString[12]='n';tString[13]=0; printf("%s",tString); printf("Hello, Excel!n"); return 0; }
  • 24.
  • 25.
  • 26.
  • 29.
  • 30.
    Cong Support Mac OSX bundles Mac OS X v10.5 ou ultérieur Ressources Éxécutable + un peu du code source ( BSD ) http://s.sudre.free.fr/Software/Cong/about.html
  • 31.