iOS逆----class-dump appヘッダファイルの取得

2433 ワード

先にclass-dumpのダウンロードアドレスを添付します
class-dumpは、dumpターゲットファイルのクラス情報に使用されるツールです.Objective-C言語のruntimeの特性を利用して、mach-Oファイルに格納@interfaceと@protocol情報を抽出し、対応するものを生成する.hファイル.
この紹介から、class-dumpは純粋なOCプロジェクトのみをサポートしており、SwiftとOCのミキシングプロジェクトであれば、このツールは何の役にも立たないことがわかります.だからIDAで直接見るしかありません(IDAはMach-Oファイルを開き、左の関数の表示欄は検索機能と組み合わせて、クラスの中の方法を大体見ることもできます)
以下では、ダウンロードしたdmgファイルを開き、class-dumpの実行可能ファイルを/usr/local/bin/ディレクトリにコピーし、端末にclass-dumpを入力すると表示されます.
class-dump

class-dump 3.5 (64 bit)
Usage: class-dump [options] 

  where options are:
        -a             show instance variable offsets
        -A             show implementation addresses
        --arch   choose a specific architecture from a universal binary (ppc, ppc64, i386, x86_64, armv6, armv7, armv7s, arm64)
        -C      only display classes matching regular expression
        -f        find string in method name
        -H             generate header files in current directory, or directory specified with -o
        -I             sort classes, categories, and protocols by inheritance (overrides -s)
        -o        output directory used for -H
        -r             recursively expand frameworks and fixed VM shared libraries
        -s             sort classes and categories by name
        -S             sort methods by name
        -t             suppress header in output, for testing
        --list-arches  list the arches in the file, then exit
        --sdk-ios      specify iOS SDK version (will look in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
        --sdk-mac      specify Mac OS X version (will look in /Developer/SDKs/MacOSX.sdk
        --sdk-root     specify the full SDK root path (or use --sdk-ios/--sdk-mac for a shortcut)

次に、デスクトップ上のビデオを例に挙げます.appファイルのヘッダファイルを取り出してデスクトップのheadersフォルダに入れます.パラメータの使用説明は上の説明をよく見てください.
class-dump --arch armv7 -S -s -H /Users/youssef/Desktop/Video.app -o /Users/youssef/Desktop/headers

まず、class-dumpの役割オブジェクトは暗号化されていない実行可能ファイルでなければならないが、App StoreでダウンロードされたAppは署名されて暗号化されているため、まずシェルを壊したり、ppアシスタントから脱獄バージョンのappをダウンロードしたりする必要がある.
表示される場合:
class-dump[4053:282734] Error: Cannot find offset for address 0x8000000001029ea9 in stringAtAddress:

このようなエラーは、プロジェクトがSwift-OCミキシングであることを示しています.