ダウンロードしたアプリで Java dll ファイルを受け取りました。この DLL ファイルは Java で書かれており、逆コンパイルしたいと考えています。
jar を含むこの dll を呼び出す方法は次のとおりです。
new JarInputStream(getClass().getResourceAsStream("jarjava.dll"));
それを逆コンパイルする方法はありますか?
ダウンロードしたアプリで Java dll ファイルを受け取りました。この DLL ファイルは Java で書かれており、逆コンパイルしたいと考えています。
jar を含むこの dll を呼び出す方法は次のとおりです。
new JarInputStream(getClass().getResourceAsStream("jarjava.dll"));
それを逆コンパイルする方法はありますか?
Java ソース ファイルは .class ファイルにコンパイルされます。私の知る限り、Java コードを DLL にコンパイルする標準的な方法はありません。
ここで何が起こった可能性がありますか:
この DLL の起源について何も知らなければ、できることはあまりありません。C の逆コンパイラを試してみてください。
問題が解決しました。
これが私がそれをした方法です:
ファイルを読む:
JarInputStream input = new JarInputStream(getClass().getResourceAsStream("/myjar.dll"));
エントリごとに新しいファイルを書き込みます。
JarEntry entry;
while ((entry = input.getNextJarEntry()) != null)
{
// Write file
}
マシン コードを読み取って、自分で C に変換し直すことができます。コードをネイティブにコンパイルする全体的なポイント (おそらく唯一のポイント) は、逆コンパイルを困難にすることであるため、簡単ではありません。