-1
我正在做一個需要用戶反編譯二進制文件的crackme挑戰。強制編譯器接受一個未使用的字符串?
我嘗試包括以下絆倒了誰試圖扭轉使用字符串二進制用戶:
const string pointless = "Strings would be too easy";
不幸的是沒有在我的代碼引用這個地方的冗餘代碼在編譯時刪除。有什麼辦法可以告訴編譯器包含它嗎?
我正在做一個需要用戶反編譯二進制文件的crackme挑戰。強制編譯器接受一個未使用的字符串?
我嘗試包括以下絆倒了誰試圖扭轉使用字符串二進制用戶:
const string pointless = "Strings would be too easy";
不幸的是沒有在我的代碼引用這個地方的冗餘代碼在編譯時刪除。有什麼辦法可以告訴編譯器包含它嗎?
使用變量是保持編譯代碼中變量的唯一方法。現在接下來不要在編譯代碼中使用這個使用語句。
所以最後我們有兩個任務。
Use variable
not to get this using code in compiled code
,,你知道,如果你使用你會得到它在編譯的代碼是肯定的。我們將使用該變量Debug
類,所以你將只能得到,如果你編譯成debug
模式,如果您編譯相同的代碼,release
模式下,你不會得到這個using your variable
代碼。如下所示 -
const string pointless = "Strings would be too easy";
Debug.WriteLine(pointless);
現在因爲您已經使用了該變量,它將不會從編譯格式中刪除。現在,如果您編譯代碼debug
你會得到這個Debug.WriteLine(pointless);
但現在編譯代碼爲release
模式,你會得到你的變量,但不是這個Debug.WriteLine(pointless);
希望它能幫助。!
你可以用無意義的方式引用它。 –
@RaymondChen我同意,但我想知道是否有更好的方法! – Codingo