2017-10-15 4 views
1

ホッパーの逆アセンブラはどのように関数の名前が分かりますか?即座にマングルされた関数名のマッピング

たとえば、私はfunction()という簡単なSwift関数を持っています。その関数で実行可能ファイルを逆アセンブルした後、ホッパーはその名前が__T04file8functionyyであることを示しています。私はこれらのシンボルの位置を実行可能ファイルに見つけることができますが、その名前で関数のアドレスをどのようにマップするのかはわかりません。

+0

[this](https://github.com/apple/swift/blob/master/docs/ABI/Mangling.rst)が役立つ場合があります。 – Jester

+0

ホッパーv4を試しましたか?スウィフトコードを自動的に解凍します。だからホッパーで混乱した名前と一緒に使われていない名前を一緒に見ることができます。 – rustyMagnet

答えて

1

名前マングリングの仕様straight from Appleを読むことができます。

あなただけの名前をデマングルする簡単な方法をしたい場合は、ターミナルで次のように入力が:

swift demangle __T04file8functionyy 

出力:

_T04file8functionyy ---> filefunction empty-list empty-list 

(私はマングルされた名前を提供するかどうかわからないんだけど私は、このマッハ-Oファイル形式の参照を発見した有効)

+0

ありがとうございます。しかし、私はどのように名前のmangling仕事は、それはかなり簡単です質問です。特定のアドレスの関数が同じファイルに格納されている特定の名前を持っていることが分かります。 – hedunky

関連する問題