私がダウンロードしたアプリケーションでjava dllファイルを受け取りました。 このDLLファイルはJavaで書かれており、今は逆コンパイルしたいと思っています。ここでJADC DLLの逆コンパイル
は、私はjarファイルが含まれているこのDLLを呼び出す方法です:
new JarInputStream(getClass().getResourceAsStream("jarjava.dll"));
はそれを逆コンパイルする方法はありますか?
私がダウンロードしたアプリケーションでjava dllファイルを受け取りました。 このDLLファイルはJavaで書かれており、今は逆コンパイルしたいと思っています。ここでJADC DLLの逆コンパイル
は、私はjarファイルが含まれているこのDLLを呼び出す方法です:
new JarInputStream(getClass().getResourceAsStream("jarjava.dll"));
はそれを逆コンパイルする方法はありますか?
問題を解決しました。
ここで私はそれをやった方法:
ファイル読む:
JarInputStream input = new JarInputStream(getClass().getResourceAsStream("/myjar.dll"));
は、各エントリのための新しいファイル書く:
JarEntry entry;
while ((entry = input.getNextJarEntry()) != null)
{
// Write file
}
マシンコードを読んでCに翻訳し直すことができます。コードをネイティブにコンパイルすることの全体的なポイント(たぶんポイントのみ)は、逆コンパイルを難しくすることです。
Javaソースファイルは.classファイルにコンパイルされます。私が知る限り、javaコードをDLLにコンパイルする標準的な方法はありません。
ここで起きている可能性がどのような:
このDLLの起源について何も知らずに、あまりできることはありません。 Cのデコンパイラを試してみてください。
可能です:http://stackoverflow.com/questions/262603/is-there-any-way-to-compile-java-code-into-a-dll – Manitoba
その後、私は訂正します! –
Exclesior JETは、Javaからネイティブコンパイラに適したJavaです。 –
あなたはdllファイルは、Javaから作成されてください。 ? JNI(Java Native Interface)について聞いたことがありますか?実際には、DLLファイルはC/C++から作成されます。 – Crazenezz
はい:http://stackoverflow.com/questions/262603/is-there-any-way-to-compile-java-code-into-a-dll – Manitoba