2017-11-14 3 views
0

人。 ProGuardのように静的なlibからインポートする関数名をjavaメソッドやクラスで変更したいのですが私はそれがはるかに難しい逆を作ることができると思う。たとえば、sha1でファイルをチェックすると、リバーサがこの関数が正確に何であるかを知ることは望ましくありません。彼は代わりにいくつかのfunc0024を見ることができます。android ndk libraryの関数名を変更する方法

アンドロメケの標準ツールでこれを行うことは可能ですか?それとも、この作業のためにどんなツールをアドバイスできますか?

+0

をこの行を追加する必要がありますあなたは共有ライブラリにリンクする静的ライブラリを構築している、とあなたはあなたの中に、共有ライブラリをロードアプリ..?あなたの静的ライブラリの関数の名前は、何らかの理由であなたのアプリでストリップされていないライブラリを出荷していない限り、すでに共有ライブラリに残っているはずです。 – Michael

+0

私はapkからreadelfでバイナリをチェックして、変更されていないopenssl関数名を表示します。 –

+0

あなたの 'LOCAL_CFLAGS'に' -fvisibility = hidden'を、あなたの 'LOCAL_LDFLAGS'に' -Wl、 - exclude-libs、ALL'を追加してみてください。また、.soファイル( 'obj/local'のものではない)上で' readelf'を実行していることを確認してください。 – Michael

答えて

0

はマイケルの答えによると、あなたのCMakeLists.txtファイルに

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -Wl,--exclude-libs,ALL")

+0

詳細については、https://stackoverflow.com/questions/2222162/how-to-apply-gcc-fvisibility-option-to-symbols-in-static-librariesをご覧ください。 – Michael

関連する問題