2016-11-07 14 views
-1

私が知っている限り、Windowsはまだ誰にも逆コンパイルされていません。明らかにそれは複雑ですが、確かにこれまでにある程度完了すべきでしたか?Windows OSはどのように逆コンパイルされていませんか?

私の考えは、エンドユーザーがソフトウェアにアクセスし、コンピュータがそれを実行できる場合、難読化されたバージョンであっても入手可能でなければならないということです。

私は明らかに何かが不足している、私はちょうどよく分からない。

+1

なぜそれをしますか?どのようなメリットがありますか?私はこれが違法なスライドであるという事実をお伝えしますが、何がポイントですか? – Luaan

+2

50万行が、最適化されたマシンコードに準拠しています。あなたは簡単に分解することができますが、最適化されたアセンブリから5千万のソースコード行への[http://reverseengineering.stackexchange.com/q/311/4202]を取り戻すことは、[労働量](http ://answers.google.com/answers/threadview?id = 305678)、それは最初の場所に書いていました。 – GSerg

+1

@Luaanが正しく指摘した点を除いて、コンパイル済みのバイナリBLOBからソースコードに戻すことはできません。あなたは何とか再構成できない情報が欠けているだけです。 – arkascha

答えて

1

Windowsが逆コンパイルされるのを防ぐには何もありません(EULAや同様の法的拘束力を除いて)。あなたが指摘したように、コードはある時点でCPU上で動作しなければならず、CPUはメモリからコードを読み取らなければならず、メモリからも読み取ることができます。 OSを実行するためには、OSにいくつかの排他的な権限(現代の保護されたOSが動作する方法)を与える必要があるため、システムのいくつかの部分はややこしいかもしれませんが、それは回避できないものです。いずれにしても、Windowsの逆コンパイルを防止するための努力はあまりありません。デバッグやエラー報告などをより困難にする一方、ほとんど利益をもたらさないでしょう。マイクロソフトはこれまで、ソフトウェア開発にさらに特化した特別なデバッグバージョンのWindowsを提供することさえしています。

主なポイントは、Windowsを逆コンパイルする理由がほとんどないことです。そのような大規模な努力は、どのような実用的な用途にありますか?また、Windowsソースコードにアクセスする必要のある企業(例えば、組み込みソリューションを開発する場合)には、それらを入手することができます。 Windowsがオープンソースではないからといって、ソースが利用できないわけではありません。

あなた自身のバージョンのWindows(Windows CEの時代に共通)が必要ない人なら、Windowsを逆コンパイルする理由はそれほどありません。いずれにしても、定義された公開APIに固執する必要があります。これは、ソフトウェアがオープンソースであるかどうかにかかわらず、優れた方法です。 APIは契約です。デコンパイルによって得られる実装の詳細はありません。次のセキュリティ修正プログラムなどで変更される可能性があります。これは、Windowsが互換性についてどの程度深刻な影響を与えているかを考えると、特に重要です。古いソフトウェアとの互換性を失うことは、更新(または新しいメジャーリリースでさえ)が非常にまれです。

Windowsを逆コンパイルしたいのであれば、実際にそうすることを妨げる技術はありません。しかし、非常にスマートなコンパイラでコンパイルされた何千万行ものソースコードを見ていますが、手書きの最適化されたアセンブリのビットが捨てられていて、完全な難読化の可能性のある互換性のある回避策が数多くあります(覚えておいてください。 コメント - 実際にコンパイルされたコード)。アイドル好奇心を満たすために数十万時間を費やしていますか? :P

+0

答えをありがとう、私が以前に言ったように、私の質問のための実用的な根拠はなかった。私は個人的にそれを逆コンパイルしているわけではありませんが、私はWindowsが他のソフトウェアに使用している難読化手法を適用する可能性について考えていましたが、あなたの言ったように、その一部はOSの大きさによるものです。 – user7126040

+0

@ user7126040最適化ネイティブコンパイラは、それ自体で十分に難読化の方法です。管理コード(.net/java)の難読化は、別の話です。 – GSerg

+1

@ user7126040あなたが私に尋ねると、難読化はかなり役に立たなくなります。それはデコンパイラの中で最も無能なものを止めるかもしれませんが、実際には、ネイティブコンパイラは今ではあまりにも難読化されたアセンブリを生成しています。最適化されたアセンブリ出力を読み取ることができれば、難読化ツールでできることはそれほど多くありません。それらは管理されたコードにわずかな影響しか与えません。デフォルトでは、複雑なケースでも元のソースコードに非常に近いものになりますが、リバースエンジニアをまったくやめない人が減ります。 – Luaan

関連する問題