web-dev-qa-db-ja.com

Objective-Cライブラリの逆コンパイル

配布用の静的ライブラリとしてコンパイルしたObjective-Cのライブラリを完成しました。

これを逆コンパイルする可能性がどのようなものかを知りたいと思いました。

  • これを実行できるソフトウェアを知っていますか?
  • もしそうなら、どうすれば私をよりよく保護できますか?

編集:私の静的ライブラリはiPhone/ARM用に作成されています

アプリのいくつかのパラメーターに応じて、デモまたは完全なコードとして実行できるアルゴリズムを作成しました。 X変数でオブジェクトを初期化し、フルバージョンのロックを解除します。鍵ジェネレータを作成できるように、このアルゴリズムを見ることができるかどうか疑問に思っていました。

44
Cy.

何を自分自身を保護しようとしているのかは明確ではありませんfrom。はい、リバースエンジニアリングできます。最も単純なツールは、標準開発者ディストリビューションの一部であるotoolです。

otool -tV <library>

それから、彼らは IDA Pro のようなものに走ります。これはiPhoneをサポートしていて、この種の仕事にはとてもいいです。その間に、iPhone/ARMで otx の修正がまだ行われていないことに本当に驚きました。そのうちの1つが登場しても驚かないでしょう。そしてもちろん、物事がどのように流れるのか、さまざまなポイントでデータが何であるのかを解明しようとしている場合は、gdbがあります。

自分を保護しようとしているものの詳細については、ターゲットを絞った答えがいくつかあります。さらに、チャックのコメントをお読みください。

60
Rob Napier

実行すると、逆コンパイルできます。 Objective-Cは、その動的な機能のおかげで、読み取りやすいコードに特に簡単に逆コンパイルできます。物事を少し難しくしたい場合は、ほとんどのコードをプレーンなCで記述し、実行可能ファイルを削除できます。もちろん、アプリケーション設計を管理しにくくするというトレードオフがあります。しかし、自分に正直であること:誰かがあなたのコードをクラックしたいなら、あなたはそれらを止めることができないでしょう。クラッカーは、事実上無制限の時間と熱意を持っており、実際にあなたがそれらを止めようとする新しい努力に興奮します。誰もまだ解読不可能なソフトウェアを作成しておらず、世界の大企業は試しています。特にStack Overflowで質問する必要がある場合は、彼らよりもうまくやるつもりはありません。

時間をかけて逆コンパイルを阻止し、それを使用して製品を改善します。これにより、ROIが大幅に向上します。

83
Chuck

ChanceGetsDecompiled = ExpectedGainFromBeingDecompiled/PopularOfLibrary

あなたが本当に知りたいなら、私はそれをあなた自身で逆コンパイルしようとします。これがPPC、Intel、またはARMに違いがあるかどうかはわかりません。ここにIntel用の逆コンパイラがあります i386 Decompiler

これを制限するためにあなたが何ができるかわかりません(私は多くはないと思います)。コードはいつでもリバースエンジニアリングできます。 Javaまたは.netを使用していないことに満足してください。それらの逆コンパイルはとても素晴らしいです。

5
jamone