私の以前の回答は十分に調査されておらず、他の誰も回答していないため、より良い回答に値すると思いました. CrunchCode をテストしたところ、次の手法で難読化されているようです。
一番の難読化手法は、すべてのセマンティクスを取り除き、コンテキストが推測される可能性を減らすことです。これは、慣れていないとコードが何をするのかを判断するのが非常に困難だったアセンブリ コードの時代によくある問題でした。
大文字と小文字の間隔が狭いと、非常に読みにくくなります。
上記のように、これにより、コードの理解が推測される可能性がなくなります。
演算子のオーバーロード (ユーザー定義関数の使用による) は便利なテクニックです。これは VBA で行うことができます。私はインタビュー中に次のような質問を受けたことを常に覚えています。
サブ 1: x = z + y
サブ 2: x = y + z
サブ 2 はサブ 1 よりも時間がかかることが証明されています。これはなぜですか?
10 人のインタビュー対象者のうち、オペレーターの過負荷を推測したのは私だけでした。コードが想定されている方法とはまったく異なる動作をすることができます。加算記号は、減算、除算、またはその他の任意の数の組み合わせにすることができます。この基本的な部分がコードで変更されると、ソース コードを理解するのが非常に難しくなります。
追加の手順として、多くの冗長なメソッドをソース コードに追加したくなるでしょう。基本的に、条件が true であることに基づいて無意味なコードを実行するコードの断片。この条件は決して真ではありませんが、コードが読みにくいため、これを理解するのは困難です。
基本的に、これは私がここ数年読んだすべてのコーディング標準とは正反対のように機能します。コードをより読みやすくするために開発者として行うべきすべてのこと (結局のところ、マシンのためだけでなく、他の開発者のためにコードを書く必要があります。誰も理解できない場合は、そのメソッドを1行に減らすことができますそれ?)。
警告: 誰かがあなたのソース コードを盗むのを確実に阻止する方法はありません。私は、オープン ソース プロジェクトのコンパイル済みバージョンを自分のものとして販売していたために、オープン ソース プロジェクトをやめた人を知っています。これは、開発者向けの機能の 1 つにすぎません。難読化はある程度は効果がありますが、決心した開発者がそれを盗むのを 100% 阻止できる保証はありません。コードのリバース エンジニアリングにかかる時間)。
これがお役に立てば幸いです - 詳細については、こちらの YouTube ビデオをご覧ください(非常に不吉な音楽が流れています)。