Skip to content

Instantly share code, notes, and snippets.

View 0xced's full-sized avatar

Cédric Luthi 0xced

View GitHub Profile
@0xced
0xced / NSRunningApplication+DockIcon.h
Created March 15, 2012 16:00
NSRunningApplication category to dynamically show and hide any running application icon in the Dock
//
// Created by Cédric Luthi on 2011-05-03
// Copyright 2011-2012 Cédric Luthi. All rights reserved.
//
#import <AppKit/AppKit.h>
@interface NSRunningApplication (DockIcon)
- (BOOL) setDockIconHidden_xcd:(BOOL)dockIconHidden;
@0xced
0xced / Makefile
Created March 23, 2012 15:02
Experiment ->isa vs object_getClass()
OPTIONS = metaclass.m -o metaclass -std=c99 -framework Foundation -arch x86_64 -Os
isa:
clang -DUSE_ISA=1 $(OPTIONS)
./metaclass
object_getClass:
clang -DUSE_ISA=0 $(OPTIONS)
./metaclass
@0xced
0xced / NSString.m
Created April 1, 2012 12:24
Reverse-engineered implementation of -[NSString isEqual:] and -[NSString isEqualToString:]
/*
* Most NSString instances will actually be __NSCFString instances, so here are both NSString and __NSCFString implementations.
* If you know how to create an NSString instance whose class is actually NSString please let me know.
* Other possible concrete subclasses of NSString are: NSConstantString, __NSCFConstantString, NSPathStore2, NSSimpleCString and __NSLocalizedString.
*/
// CoreFoundation.framework 635.19.0 (Mac OS X 10.7.3)
@implementation NSObject
- (BOOL) isNSString__
@0xced
0xced / UIDevice+HostUUID.h
Created April 15, 2012 22:26
Alternative iOS device unique identifier
#import <UIKit/UIKit.h>
@interface UIDevice (HostUUID)
- (NSString *) xcd_uniqueIdentifier;
@end
#import <Foundation/Foundation.h>
#import <objc/runtime.h>
@interface NSNotificationCenter (AllObservers)
- (NSSet *) my_observersForNotificationName:(NSString *)notificationName;
@end
@0xced
0xced / NSObject+ARCZombie.m
Created May 19, 2012 17:52
Solves the problem of .cxx_destruct methods not being called when zombies are enabled
#import <objc/runtime.h>
@implementation NSObject (ARCZombie)
+ (void) load
{
const char *NSZombieEnabled = getenv("NSZombieEnabled");
if (NSZombieEnabled && tolower(NSZombieEnabled[0]) == 'y')
{
Method dealloc = class_getInstanceMethod(self, @selector(dealloc));
@0xced
0xced / XCDFakeCarrier.m
Last active March 5, 2023 22:07
Hack to choose the displayed carrier name in the iOS simulator
//
// Copyright (c) 2012-2015 Cédric Luthi / @0xced. All rights reserved.
//
#import <Foundation/Foundation.h>
#if TARGET_OS_SIMULATOR
static const char *fakeCarrier;
static const char *fakeTime;
@0xced
0xced / unprefixed_classes.py
Created July 10, 2012 14:16
List all unprefixed Objective-C classes for a given SDK
#!/usr/bin/env python
import argparse, os, re, subprocess
parser = argparse.ArgumentParser()
parser.add_argument('--sdk', default='', help='OS X or iOS SDK directory')
parser.add_argument('--no-frameworks', action='store_true', default=False, help='do not print frameworks, only unprefixed classes')
args = parser.parse_args()
print_frameworks = not args.no_frameworks
@0xced
0xced / Where's My Water crash (15:18).txt
Created July 15, 2012 18:47
Where's My Water startup hang
Incident Identifier: C29CFB68-5189-4DDA-8D21-5ABCE015BBBB
CrashReporter Key: 77fdba2667e7e7767d8582bd608493c8875861e4
Hardware Model: iPhone3,1
Process: SwampyGame [5447]
Path: /var/mobile/Applications/1F369B39-9B91-40EE-8F7D-2B7EA0A690D0/SwampyGame.app/SwampyGame
Identifier: SwampyGame
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
@0xced
0xced / crash.txt
Created July 18, 2012 16:16
Auto Layout crash stack trace. Happens in any app that tries to present a NSAlert.
Process: TextMate [40162]
Path: /Applications/TextMate.app/Contents/MacOS/TextMate
Identifier: com.macromates.textmate
Version: 1.5.11 (1635)
Code Type: X86 (Native)
Parent Process: launchd [178]
Date/Time: 2012-07-18 18:14:58.553 +0200
OS Version: Mac OS X 10.7.4 (11E53)
Report Version: 9