iOS 6.1 Dynamic Library erstellen und verknüpfen

Ich versuche, eine dynamische Bibliothek für iOS zu erstellen und zur Laufzeit zu laden. Nach einem Blick aufdiese Frage unddiese AntwortIch habe es mit iOSOpenDev gemacht und alles auf meinem iPhone bereitgestellt. Das xCode-Projekt für die Dylib heißt KDylibTwo und die Dateien, die ich modifiziert habe, sind:

KDylibTwo.h

#import <Foundation/Foundation.h>

@interface KDylibTwo : NSObject
-(void)run;
@end

KDylibTwo.m

#import "KDylibTwo.h"

@implementation KDylibTwo

-(id)init
{
    if ((self = [super init]))
    {
    }

    return self;
}

-(void)run{
    NSLog(@"KDylibTwo loadded.");
}

@end

Um zu testen, ob meine Bibliothek funktioniert, kann ich sie nach dem Erstellen für die Profilerstellung (wie iOSOpenDev sie auf dem iPhone bereitstellt) auf meinem Gerät unter finden/usr/lib/libKDylibTwo.dylib und baute eine Optimierung (wieder mit iOSOpenDev), die das SpringBoard wie folgt einbindet:

#include <dlfcn.h>

%hook SBApplicationIcon

-(void)launch{
    NSLog(@"\n\n\n\n\n\n\nSBHook For libKDylibTwo.dylib");

    void* dylibLink = dlopen("/usr/lib/libKDylibTwo.dylib", RTLD_NOW);

    if(dylibLink == NULL) {
        NSLog(@"Loading failed.");
    } else {
        NSLog(@"Dylib loaded.");

        void (*function)(void);
        *(void **)(&function) = dlsym(dylibLink, "run");
        if (function) {
            NSLog(@"Function found.");
            (*function)();
        } else {
            NSLog(@"Function NOT found");
        }
    }

    NSLog(@"End of code");
    %log;
    %orig;
}

%end

Nach der Installation des Tweaks auf dem Gerät und dem Tippen auf ein Symbol (das den Hook-Code auslösen würde) sieht die Konsolenausgabe folgendermaßen aus:

Aug 28 13:03:35 Pudge SpringBoard[18254] <Warning>: SBHook For libKDylibTwo.dylib
Aug 28 13:03:35 Pudge SpringBoard[18254] <Warning>: Dylib loaded.
Aug 28 13:03:35 Pudge SpringBoard[18254] <Warning>: Function NOT found
Aug 28 13:03:35 Pudge SpringBoard[18254] <Warning>: End of code
Aug 28 13:03:35 Pudge SpringBoard[18254] <Warning>: -[<SBApplicationIcon: 0x1d5008c0> launch]

Meine Frage ist, was mache ich falsch und die Funktion der Bibliothek wird nicht aufgerufen oder ausgeführt! Ich denke, ich sollte klarstellen, dass ich nur über Geräte mit Jailbreak und nicht über App Store-Entwicklung spreche. Bitte posten Sie nicht, dass dies nicht möglich ist!

Danke im Voraus,
Panagiotis.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage