Cocoaheads Stockholm 2014-02: Writing your own jailbreak tweak

43 %
57 %
Information about Cocoaheads Stockholm 2014-02: Writing your own jailbreak tweak
Technology

Published on February 3, 2014

Author: nevyn

Source: slideshare.net

Description

A basic introduction to what a jailbreak really *is*, and how to remix software by writing your own jailbreak tweaks. See http://overooped.com/post/75523688909/writing-your-own-jailbreak-tweak for presenter notes

Jailbreak Development ! nevyn@lookback.io ! CocoaHeads Stockholm 2014-02-03

Jailbreak development

Jailbreak development

App sandbox

mobile user App sandbox

root access mobile user App sandbox

write access to operating system files root access mobile user App sandbox

! Your Software

Remixing! Your Software

Jailbreak development

$ the0s $ make $ make install

iod-setup sdk -d /Applications/Xcode.app/ Contents/Developer -sdk iphoneos

swizzling is art

Logos tweak MyTweak.x %hook SBApplicationController! -(void)uninstallApplication:(SBApplication *)application {! NSLog(@"Hey, we're hooking uninstallApplication:!");! %orig; // Call the original implementation of this method! return;! }! %end!

CaptainHook tweak MyTweak.mm #import <CaptainHook/CaptainHook.h> ! CHDeclareClass(NSString); CHMethod(2, void, NSString, writeToFile, NSString *, path, atomically, BOOL, flag) { NSLog(@"Writing string to %@: %@", path, self); CHSuper(2, NSString, writeToFile, path, atomically, flag); } ! CHConstructor { CHLoadClass(NSString); CHHook(2, NSString, writeToFile, atomically); }

Live coding ListClasses

class-dump

! @interface Area : Thing! {! NSString *title;! int type;! NSDate *reviewedDate;! NSMutableSet *tags;! NSMutableDictionary *sharedLists;! }! @interface RepeatingTask : Task! {! TH1RecurrenceRule *_recurrenceRule;! BOOL _instanceCreationPaused;! NSDate *_instanceCreationStartDate;! int _instanceCreationCount;! NSDate *_afterCompletionReferenceDate;! }! + - + + + + + + + - ! (int)mergeRuleForProperty:(id)fp8;! (id)reviewedDate;! (int)type;! (id)title;! (void)removeTask:(id)fp8;! (void)pigeonholeTask:(id)fp8;! (id)sharedListContainingTask:(id)fp8;! (id)sharedListWithIdentifier:(id)fp8;! (BOOL)matchesTag:(id)fp8;! (id)inheritedTags;! (id)allTags;! (BOOL)hasTags;! (BOOL)hasElements;! (unsigned int)countOfElements;! (void)save;! (id)initFromDatabaseWithUUID:(id)fp8;! (void)dealloc;! (id)init;! (void)setTags:(id)fp8;! (id)tags;! (void)setReviewedDate:(id)fp8;! (void)setTitle:(id)fp8;! (void)setType:(int)fp8;! (void)mergeValue:(id)fp8 touched:(id)fp12 forKey:(id)fp16;! ! @end! ! @interface Contact : _AudioServicesAddSystemSoundCompletion! {! }! ! - (id)uuid;! ! @end! ! ! (id)_createRepeatingInstanceFromTask:(id)fp8 forDate:(id)fp12;! (id)_createInstanceFromTask:(id)fp8 forDate:(id)fp12 withIdentifierDate (id)allKeysForSync;! (id)keysForInitialization;! (id)keysForCreation;! (id)newKeys;! (void)load;! (int)createInstancesIfNecessary:(int)fp8 all:(int)fp12;! (id)recurrenceStartDatesFromDate:(id)fp8 count:(int)fp12;! (void)updateAfterCompletionStatus;! (void)instanceWasUnstopped:(id)fp8;! (void)instanceWasStopped:(id)fp8;! (void)instanceWasDeleted:(id)fp8;! (void)instanceWillBeDeleted:(id)fp8;! (BOOL)createsDueDates;! (int)state;! (BOOL)instanceCreationEnded;! (id)lastInstance;! (id)instances;! (void)setAfterCompletionReferenceDate:(id)fp8;! (id)afterCompletionReferenceDate;! (void)setInstanceCreationCount:(int)fp8;! (int)instanceCreationCount;! (void)setInstanceCreationStartDate:(id)fp8;! (id)instanceCreationStartDate;! (void)setInstanceCreationPaused:(BOOL)fp8;! (BOOL)instanceCreationPaused;! (void)setRecurrenceRule:(id)fp8;! (id)recurrenceRule;! (BOOL)isRepeating;! (BOOL)save;! (void)setPrimitiveValues:(id)fp8 forKeys:(id)fp12;! (void)dealloc;! (id)initWithUUID:(id)fp8;! (id)init;! (void)_commonInit;! @end!

• install “Clutch” package from iphonecake.com • Clutch Appname • Unzip • class-dump Appname

Please don’t pirate apps :(

Live coding class-dump

Install

default password: alpine

⌘⇧-I Install tweak to device from Xcode/iOSOpenDev

github.com/rpetrich/ deviceconsole

http://repo.nevyn.nu

Thanks for listening! @nevyn @lookback

#import presentations

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

CocoaHeads Stockholm 08/2014 - Software - documents.mx

Share CocoaHeads Stockholm 08/2014. ... Cocoaheads Stockholm 2014-02: Writing your own jailbreak tweak. Cocoaheads. Stockholm. Stockholm. Stockholm. Stockholm.
Read more

Tweak | LinkedIn

Writing and Editing. ... tweak your newspaper adverts and shoot up your ROI from adverts. ... Cocoaheads Stockholm 2014-02: Writing your own jailbreak tweak.
Read more

nevyn's blog

Writing your own jailbreak tweak. This article is my raw presentation script from CocoaHeads Stockholm 2014-02. ... I’m nevyn from Lookback.
Read more

Cocoaheads - Engineering - documents.mx

... (own target) • choose only one ... Cocoaheads Stockholm 2014-02: Writing your own jailbreak tweak CocoaHeads Rennes #3 : ... CocoaHeads Stockholm 08 ...
Read more

Jailbreak | LinkedIn

... the Easy-Spray jailbreak is your solution to go for. ... you’ll probably want to back up your ... Cocoaheads Stockholm 2014-02: Writing your own ...
Read more

2014-02 - Debate Writing @MindLab - Prompt#2 Are we 'using ...

2014-02 - Debate Writing @MindLab - Prompt#2 Are we 'using' users? ... on May 07, 2015. Report Category: Documents
Read more