2017-04-10 6 views
-1

私は、バイナリを逆コンパイルする必要があるcrackmeのチャレンジを作っています。私はコンパイラに未使用の文字列を受け入れるように強制しますか?

はバイナリ使用して文字列を逆にしようとするユーザーをつまずかするには、以下の含めるようにしてみてください:

const string pointless = "Strings would be too easy"; 

残念ながら私のコードでは、このどこかを参照することなく、冗長なコードがコンパイル時に削除されます。とにかくそれを含めるようにコンパイラに指示する方法はありますか?

+0

意味のない方法で参照できます。 –

+0

@RaymondChen私は同意しますが、より良い方法があるかどうか疑問に思っていました。 – Codingo

答えて

3

変数を使用することは、変数をコンパイル済みコードに保持する唯一の方法です。次に、コンパイルされたコードでこれを使用しないようにしましょう。

最後に2つのタスクがあります。

  • Use variable
  • 、その後not to get this using code in compiled code

、あなたが確かにコンパイルされたコードでそれを取得します使用している場合、あなたは知っています。 Debugクラスの変数を使用するので、debugモードとしてコンパイルした場合にのみ得られます。releaseモードと同じコードをコンパイルすると、using your variableコードは取得されません。

変数を使用したため、コンパイルされた形式からは削除されません。今、あなたはあなたのコードをコンパイルする場合は、このDebug.WriteLine(pointless);

を取得しますが、今releaseモードとして、あなたのコードをコンパイルしますdebugとして、あなたの変数を取得しますが、このDebug.WriteLine(pointless);

はそれが役に立てば幸いではない。!!

関連する問題