星期五, 8月 11, 2006

.NET的程式原來是那麼的不安全

在剛接觸.NET就常聽人說,.NET的應用程式是非常容易被還原,得到原始程式碼,當時並沒有非常的在意,而最近因為被一套報表工具快搞瘋了,所以也比以常更常使用Lutz Roeder's .Net Reflector,現在幾乎天天都使用來查看xtrareport的結構。而上回在貼出"開發.NET應用程式,必裝的工具"後,自己也花了好幾個晚上把玩那些工具,最先把玩的當然是程式模糊器,試用後發覺Xencode這一套還蠻不錯用的。但他非常的小氣,只有提供14天的試用時間,此時拿出了reflertor查看fox.exe,本想查看他如何判別試用的時間,但發覺他也本身己經被模糊了,一堆數字難以理解。

此時只能隨手試試,依照之前的經驗,想說大半的試用日期是寫在登錄檔中,隨即啟動了regmon設好過濾的條件監視機碼的讀寫狀況,重新啟動fox.exe,隨即過濾了QueryValue的項目,發現有一個最怪異的字串"HKLM\Software\Oak Vale Networks\XFTRL1.0\(Default)",呵刪掉就好了嗎? 再拿到工具中驗證看看。

使用"Oak Vale Networks"search程式,果然看到一個static function,public static bool xb30f5e1eb4806151(string x2d32ac7a8f1f8f5b, TimeSpan x5906905c888d3d98),查看程式碼有調用日期比較,進而查看使用到此function的代碼,

public static bool _xc7c43f12e732db09()
{
 略
 MessageBox.Show(MessageTable.TrialExpired, x77fa6322561797a0.x6886d5a1867d55cb);
 略
}

此時更肯定是此機碼在控管,動手作了它再重進程式YES.還是正常的耶,且此值又被重寫了回來!所以只要試用時間到了,動手去刪除此值,那你可以無限時間試用Xencode! 這樣子算是破解了Xencode嗎? 呵~

0 個意見: