查看單個文章
舊 2004-04-01, 08:51 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 Wise Installer cracking tips

目前似乎沒看到Wise安裝腳本的反編譯器,破解Wise install serial比InstallShield的難度感覺要大些。

wise install serial一般也可以分為三類:

1、Wise install password

Wise password比較簡單,只是將password的ASCII碼求反了一下,用bpx GetWindowTextA然後再BPM一般可以找到求反後比較的地方。

2、通過Wise install script判斷serial

這種難度最大,因為動態跟蹤的話都是在腳本解釋器裡面打轉,運氣不好可能搞不定,但也有跡可循。既然wise script檢查sn要用到字元串操作和整數操作,就可以從這裡入手。
對於字元串操作,可選擇的斷點有bpx lstrcpyA do "d *(esp+8)"然後BPM、CompareStringA(lstrcmp系列函數最終都是使用CompareStringA的);對於整數操作來說,切入點可以選擇bpx _atol do "d *(esp+4)"作為斷點,atoi/atol哪裡去找呢?Wise installer會在暫存目錄下解壓出一些GLxxx.tmp檔案,這些檔案中有一個150K左右的是Wise自己的runtime DLL,用IDA的sig功能在裡面可以識別出_atoi/_atol函數。

3、通過使用外部DLL來檢查sn

這種和InstallShield一樣,用bpx LoadlibraryA do "d *(esp+4)")、bpx GetProcAddress do "d *(esp+8)"。不過要注意的是,名字象"f6"、"f19"這樣的函數可能是Wise自己的支撐函數,但檢查sn的函數名可能也類似。

Wise installer可能會每次在你按下Next或OK按鈕後都載入執行暫存目錄下解壓出的GLxxx.tmp檔案(實際上是DLL檔案),這樣softice的斷點可能無法保持,每次需要重設。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次