マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

逆コンパイル・難読化などの質問が稀にあるため。

詳細

難読化ソリューションは、

  • 実行時コンパイラや
  • スクリプト言語が

出てきて、必要になってきたんじゃないでしょうか?

逆コンパイラ

C言語

C言語のプリプロセッサに通した後のコードは≒リバースできないもよう。

  • 奇跡的に C/C++ の逆コンパイラを手に入れられたとしても
    それが吐き出すソースを理解できる可能性は全くない。
  • C++ の逆コンパイラは C よりもはるかに困難 (事実上不可能)

※ 機械語自体を読む人がいるかも知れないので、保護したいレベルによるかもしれませんが。

中間コードのある言語

以下の理由で、逆コンパイルが容易であるケースが多いらしい。

  • 中間コードはネイティブコードに比べて命令の種類や複雑さが少ない。
  • ガーベージ・コレクションやリフレクション機能のある言語は逆コンパイルされやすい。
  • その他、
    • 共用体が無い
    • ポインタ演算・キャストの制限
    • classに定義情報が含まれる。
    • goto 文を禁止している
    • , etc.

スクリプト言語

スクリプト・ファイルがそのまま動く。

難読化

  • 難読化は単なる時間稼ぎに過ぎず、プログラムの逆コンパイルを不可能とするものではない。
  • 商用の難読化ソリューションはソースコードの難読化やJavaや.NETなどのプラットフォーム中立な
    バイトコードの変換が大部分を占めるが、中にはコンパイルされたバイナリに直接作用するものも存在する。

参考


Tags: :プログラミング, :その他、開発の色々, :.NET開発


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-03-25 (月) 11:19:30 (180d)