質問

C ++のソースコードを失ったプログラムがあります。優れたC ++デコンパイラはありますか?

すでに Boomerang に出会った。

役に立ちましたか?

解決

IDA Pro を使用できます。 hex-rays.com/ "rel =" noreferrer "> Hex-Rays 。通常、デバッグ情報をコンパイルしない限り、バイナリから適切なC ++を取得することはできません。コードを逆にする手作業の多くを費やす準備をします。

バイナリを削除しなかった場合、IDA ProがCに似たコードを生成できるため、ある程度の希望があります。少なくとも数年前に使用したときは、通常は非常に荒いです。

他のヒント

情報はコンパイルプロセスで破棄されます。デコンパイラがクラスとすべての論理的に同等のコードを生成できたとしても(おそらくできない)、自己文書化の部分は最適化されたリリースコードではなくなりました。変数名、ルーチン名、クラス名はありません。アドレスのみです。

はい。ただし、どれも努力するだけの価値のある読みやすいコードを生成することはできません。古いアプリをゼロから書き直すよりも、内部にアセンブラーブロックがある逆コンパイルされたソースを読み取るのに時間がかかります。

C ++コードを生成する逆コンパイラは見たことがありません。 Cコードの生成を合理的に試みるいくつかの実験的なものを見てきましたが、それらは特定のコンパイラのコード生成パターンの一致に依存する傾向がありました(変更された可能性があります。 )。もちろん、象徴的な情報はすべてなくなります。 「デコンパイラ」用のGoogle。

元のコードの大きさと書き方によっては、お気に入りの言語(まだC ++である可能性があります)でやり直し、前回のバージョンでの間違いから学ぶ価値があります。誰かがこれを書いて捨てようと言ったことはありませんでしたか?

n.b。明らかにこれが巨大な製品である場合、それは時間の価値がないかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top