0

SpringBoard をフックする MS プラグインを作成したいだけです。「 http://www.ipodtouchfans.com/forums/showthread.php?t=103558 」の「gojohnnyboi」チュートリアルに従っています。

XCode で dylib を作成するには、「SkylarECチュートリアルに従っています。私はこれら 2 つの優れたチュートリアルを組み合わせて、最終的に dylib を取得することで成功しました。しかし、dylib を配置して/Library/MobileSubstrate/DynamicLibraries/も何も起こりません (アラートは表示されませんでした)。

評価することで、この dylib には、メモリにロードされた時点で開始点がないことがわかりました。そのため、次のように .mm ファイルでコンストラクターを宣言することで、開始点について言及しました。

__ attribute__((constructor)) static void init()
{
    Class _$SBAppIcon = objc_getClass("SBApplicationIcon");
    MSHookMessage(_$SBAppIcon, @selector(launch), (IMP) &__$ExampleHook_AppIcon_Launch, "__OriginalMethodPrefix_");  
}

しかし、これをコンパイルしようとすると、次のようなエラーが発生します。

**Undefined symbols:
  "_MSHookMessage", referenced from:
      init()      in ExampleHook.o
ld: symbol(s) not found
collect2: ld returned 1 exit status.**

これを解決する方法を知っている人はいますか?XCodeでdylibを作成するための詳細なチュートリアル/手順を誰かが共有してくれれば、より役に立ちます。

PS私はすべてのlibsubstrate.dylibとsubstrate.hファイルを対応する場所に置きました。そして場所は、

  • libsubstrate.dylib : /Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/
  • 基板.h : /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/include

私のベースSDKは3.0です。

4

4 に答える 4

3

おそらくiOSOpenDevをチェックする必要があります

于 2013-01-18T07:31:38.890 に答える
0

(これらは非常に古いチュートリアルです。いくつかの最新のMSコードはhttp://iphonedevwiki.net/index.php/MobileSubstrateにあります。最終的に誰かが更新されたチュートリアルを書く必要があります...)


Xcodeプロジェクトに追加したことを確認してlibsubstrate.dylibください([追加]→[既存のファイル...])。コンパイラは、指示がない限り、リンクするdylibを自動的に検出しません。

于 2010-05-22T12:54:45.923 に答える
0

http://unlimapps.com/?p=15を試してください。その投稿のメソッドを使用してプラグインをコンパイルする方がはるかに簡単です

于 2010-12-03T17:48:29.543 に答える
0

CydiaSubstrate.frameworkをMac の/Library/Frameworksにコピーし、CydiaSubstrate にリンクする必要があります。

#include <CydiaSubstrate/CydiaSubstrate.h>
于 2016-06-02T05:49:46.207 に答える