2013-03-15 32 views
0

我有一個PE可執行文件* .exe(32位),它是一個小應用程序(2.6Mb)來更新電視設備的固件軟件。但是,更新機制僅在2013年3月12日之前可用。我想爲了娛樂而破解這個可執行文件。我試圖使用PE資源管理器在文件hexdump中找到此過期日期,並將其替換爲將來的某個日期以使此程序起作用。便攜式可執行DLL文件和二進制日期格式

我發現這篇文章關於二進制數據格式:

binary date format

我想找到這樣的值:

2013-03-XX:0x713xxxxx

這是一個解決我的任務的好方法?有什麼建議麼?你知道任何其他hexdump工具可能有用嗎?

最佳方面, WP

+0

你假設日期存儲在二進制頭文件中,或者以某種格式,你會認識到,這是一個無效的假設。 (不同的語言使用不同的術語,時代等來定義日期)不保證你所看到的任何內容實際上都是日期值。 (例如,Windows COM使用值0代表'1900-0-0',這與1970年IIRC開始的C時間值不同。) – 2013-03-15 22:46:15

回答

2

有可能很多形式爲0x713xxxxx - 2.6 MB的值可能大於您開始隨意查看時的大小(您實際上不知道應用程序在內部使用此日期格式)。

處理這類問題的傳統方法是使用工具來遍歷程序,檢查正在執行的代碼,直到找到檢查點。然後簡單地禁用檢查,以便它總是失敗 - 通過更改日期,或者簡單地通過更改代碼。

一個非常受歡迎的工具,用於逐步瀏覽您不能控制的代碼是交互式反彙編程序IDA。你可以在這裏下載它的一個免費版本:https://www.hex-rays.com/products/ida/support/download_freeware.shtml

它可能比你想象的更難做你想做的事,但你幾乎肯定會通過嘗試學到很多東西。

請注意您可能會通過修改別人的二進制文件而使自己陷入的法律問題,特別是如果您之後分發它們。

1

dumpbin是一個很好的PE解析器(但如果我是你,我不會做這類時間戳黑客的:))