我正在嘗試讀取最初用Visual Basic 6編寫的程序生成的數據文件(後來用Java重寫),所以我可以使用我自己的工具來處理它們。我該如何擊敗類似RC4的混淆?
有問題的程序是由美國政府創建的公共領域軟件;沒有許可協議禁止這一點。我不能提到該程序的名稱或鏈接到它的網站,因爲程序員可能會在明年的版本中改變混淆,我將不得不重複我的逆向工程。
底層數據文件格式是基於文本的,而混淆是某種具有硬編碼密鑰的流密碼。我可以將數據文件異或以獲取一些數據(用重複的ASCII字符填充一個字符串字段),但是我想避免將整個密鑰流嵌入到我的程序中。
通過.exe文件搜索可以看到一個名爲RC4ini的子例程的調用和一個我認爲是關鍵字的字符串(它不會出現在用戶界面的任何地方)。我發現Planet Source Code上這個加密庫的源代碼是什麼,對RC4的工作實現做了正確的修改(在JavaScript中,因爲這是我主要工作的編程語言),並嘗試使用它。
我試圖搜索文件中每個偏移量處的加密數據,但我沒有成功解密。爲什麼發生這種情況?
如果它是公共領域,爲什麼不把它鏈接到它? – 2010-12-02 12:44:33
@Igor Skochinsky:該程序的新版本每年發佈一次。下一個版本將於2011年初發布,並提及該程序的名稱(因此在Web搜索中顯示)將需要重新翻轉該程序。 – PleaseStand 2010-12-02 23:12:40