某格仔鋪軟件註冊碼算法的分析

昨天,有個朋友給了個軟件讓我看看,說他有個朋友在深圳開格仔鋪,想用這個軟件。我一直沒搞懂格仔鋪這種東西怎麼會有人去租呢,據說在日韓很流行,現在國內也有不少年輕人在玩。我想,可能這種模式正好填補了C2C實體店的空缺,看看現在如火如荼的淘寶也許就不難理解了。我家不遠就有一間,裝修得挺潮流的,改天有空去體驗一下。。。

該軟件是用於格仔鋪管理的,版本是最新的v7.4,分析如下:

首先用PEiD分析主程序GZPManager1.exe,顯示“ACProtect V2.0 -> risco *”殼,根據堆棧平衡原理很快找到OEP,然後用LordPE dump下來,再用ImportREC修復IAT,很容易就把該殼脫掉。然後,再用PEiD分析,顯示“Borland Delphi 6.0 - 7.0”,表示程序是用Delphi開發的。打開DeDe分析已經脫殼的GZPManager1.exe,我們可以輕鬆得到“軟件註冊”窗口“確定”按鈕的事件響應函數地址。接下來就可以用OllyDbg調試該函數了。該函數的結構很簡單,大概註冊碼檢驗過程如下:計算C1=F(F(機器碼)),F()是個算法,然後計算C2=F(輸入的註冊碼),最後通過比較C1和C2來判斷輸入註冊碼是否有效。從上面原理可以清楚知道當輸入註冊碼等於F(機器碼)時,則C1==C2,校驗就通過,所以註冊機只要實現F()算法就可生成註冊碼。F()的代碼和分析如下:

 

註冊機部分代碼如下:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章