2012-04-16 9 views
0

私がダウンロードしたアプリケーションでjava dllファイルを受け取りました。 このDLLファイルはJavaで書かれており、今は逆コンパイルしたいと思っています。ここでJADC DLLの逆コンパイル

は、私はjarファイルが含まれているこのDLLを呼び出す方法です:

new JarInputStream(getClass().getResourceAsStream("jarjava.dll")); 

はそれを逆コンパイルする方法はありますか?

+1

あなたはdllファイルは、Javaから作成されてください。 ? JNI(Java Native Interface)について聞いたことがありますか?実際には、DLLファイルはC/C++から作成されます。 – Crazenezz

+0

はい:http://stackoverflow.com/questions/262603/is-there-any-way-to-compile-java-code-into-a-dll – Manitoba

答えて

0

問題を解決しました。

ここで私はそれをやった方法:

ファイル読む:

JarInputStream input = new JarInputStream(getClass().getResourceAsStream("/myjar.dll")); 

は、各エントリのための新しいファイル書く:

JarEntry entry; 
while ((entry = input.getNextJarEntry()) != null) 
{ 
    // Write file 
} 
0

マシンコードを読んでCに翻訳し直す​​ことができます。コードをネイティブにコンパイルすることの全体的なポイント(たぶんポイントのみ)は、逆コンパイルを難しくすることです。

1

Javaソースファイルは.classファイルにコンパイルされます。私が知る限り、javaコードをDLLにコンパイルする標準的な方法はありません。

ここで起きている可能性がどのような:

  • これは、JNIのAPIに対して書かれたCコードは、Javaコードに(またはから)対話するために使用されるべきです。
  • これは、あるツールで(自動的に)Cコードに変換された後、DLLにコンパイルされたJavaコードです。
  • これは、誰かがDLLに名前を変更したJARファイルです。その場合は、名前を変更してJARを解凍し、JARをJava逆コンパイラで逆コンパイルします。

このDLLの起源について何も知らずに、あまりできることはありません。 Cのデコンパイラを試してみてください。

+0

可能です:http://stackoverflow.com/questions/262603/is-there-any-way-to-compile-java-code-into-a-dll – Manitoba

+0

その後、私は訂正します! –

+0

Exclesior JETは、Javaからネイティブコンパイラに適したJavaです。 –

関連する問題