中秋無事,小破一個時間限制的軟體
偶然從網上的一個某家語音合成的工具,效果還可以,只是軟體試用期只到2013年:
已經說明白了,2013年就不能用了
對於一般人,改改系統時間,用用就得了,但是對於作為程式設計師的我來說是不可以接受的,一定要作一下,把它破解掉
先用偵殼工具看看,軟體沒有加殼,大膽搞起來
馬上用 Ollydbg52pojie 反彙編:
通過搜尋找到關鍵詞:
改寫關鍵程式碼的地方
把JE 改為JNE,常用的彙編指令如下:
JO 溢位跳轉 0x70 JNO 不溢位跳轉 0x71 JB 低於跳轉 0x72 JNB 不低於跳轉 0x73 JE 相等跳轉 0x74 JNE 不等跳轉 0x75 JBE 不高於跳轉 0x76 JA 高於跳轉 0x77 JS 負號跳轉 0x78 JNS 非負跳轉 0x79 JP 奇偶跳轉 0x7A JNP 非奇偶跳轉 0x7B JL 小於跳轉 0x7C JNL 不小於跳轉 0x7D JNG 不大於跳轉 0x7E JG 大於跳轉 0x7F
但發現JNZ居然無效,馬上改成手寫
改成jnz
但發現最後無效?程式最後還是彈出過期的資訊;
好吧,再往前走
連帶 軟體損壞(合成dat檔案缺失造成損壞)和過期的判斷都給他幹掉
je->JNz
這次老實了,終於看到久違的介面:
但是很不爽,介面出來了,功能無效!
好吧,兩個筆記本同時call起來,再次發現
通過這個call之後就產生了不同的分支(主要是eax的值不同了)馬上設定斷點
最後我們兩臺筆記本設定不同的時間來帶這裡:
一個case switch語句,兩者走的分支不一樣
應該走的是defaultcase,結果時間一過期走的是case1(估計是處理軟體過期,case2估計是處理軟體損壞)
馬上把 74 10 改成75 10 ,好,介面生成且聲音可合成可儲存!
結果測試介面OK,功能OK,打完收工!