SuperCapture 3.04 破解歷程---半小時 (5千字)

看雪資料發表於2002-02-14

SuperCapture 3.04 破解歷程---半小時

2002年1月10日破解
軟體名稱:SuperCapture 3.04
軟體型別:抓圖工具
限制型別:45天試用


現場聽眾:

1.首先裝入Trw2000

2.執行SuperCapture 3.0x(??剛才不是說3.04嗎?怎麼現在又變成了3.0x?哦這個問題・・・・・,3.02和3.04註冊碼能共用所以
  我才這樣說的。)

3.程式一開始就出現了“註冊”和“試用”的選項,選擇“註冊”再點選輸入註冊碼;註冊的形式為 XXXX-XXXX-XXXX-XXXX(算一算是

  19個字母16進位制等於13h),這是因為跟蹤過才知道的,等會再交待如何得知。

4.來到輸入註冊碼的視窗,Ctrl-N啟用Trw2000,然後輸入Bpx GetDlgItemTextA 設定斷點。

  按F5返回SuperCapture3.0x的註冊視窗

  第一行是SuperCapture3.0x給出的使用者碼            使用者碼為: ATKZ-KJMH-MHCH-QPCB

  第二行是使用者輸入的註冊碼                        隨意輸入: AAAA-BBBB-CCCC-DDDD

  然後用你的Mouse點選“確認”

5.Bingo!斷點有效!開工啦(雖然是在新年開工,但是沒有利錢的,休想・・・・・・・・)

指標中斷在 User32!GetDlgItemTextA
0167:BFF51743  B1A1          MOV CL,A1                                ;此時EIP指標在這裡
XXXX:XXXX1745  55            PUSH EBP
    ・
    ・<F10>單步執行,按N次
    ・
XXXX:XXXX1764  E8E76B0000    CALL KERNEL32!SUnMapLs_IP_EBP
XXXX:XXXX1769  C9            LEAVE
XXXX:XXXX176A  C21000        RET 10                                  ;返回撥用子程式的上一級程式中
    ・
    ・<F10>單步執行,按N次
    ・
016F:00492AB3  FF154C264B00  CALL USER32!GetItemTextA                ;返回來就指標在這裡,也就是說:是這段程式碼呼叫
                                                                        用子程式向使用者要求輸入註冊碼的
XXXX:XXXX2AB9  ????????????  JMP SHOTR 00492ACB                      ;返回後程式無條件跳至 cs:00492ACB
    ・                                                                ;?????????是我忘記抄下的機器碼,在下實在是粗心
    ・<F10>單步執行,按N次
    ・
    ・
XXXX:XXXX2ACB  5D            POP EBP
XXXX:XXXX2ACC  20 0C 00      RET                                      ;再一次返回上一級的程式 0167:0041FA45 那裡。
    ・
    ・<F10>單步執行,按N次
    ・
0167:0041FA45  E853300700    CALL 00492A90                            ;從上面子程式返回在這裡。
XXXX:XXXXFA4A  85C0          TEST EAX,EAX                            ;這時大家看看暫存器EAX=? 13吧?這就是我說為什麼
XXXX:XXXXFA4C  0F8486000000  JZ  NEAR  0041FAD8                      ;要輸入13(十六進位制)=19(十進位制)個字母的原因。
    ・                                                                ;這時我已輸入了AAAA-BBBB-CCCC-DDDD加上減號共是
    ・                                                                ;19個位元組即是13(十六進位制),所以程式沒有跳轉。
    ・<F10>單步執行,按N次
    ・
XXXX:XXXXFA52  68CCEB4D00    PUSH DWORD 0041FAD8
XXXX:XXXXFA57  8D4C240C      LEA ECX,[ESP+0C]                        ;大家記得D命令嗎?不妨看看ESP+0C存放著什麼東東啊
    ・                                                                ;不看不知道,一看嚇一跳!看見了!
    ・                                                                ;剛才我輸入假註冊碼:AAAA-BBBB-CCCC-DDDD
    ・
    ・<F10>單步執行,按N次
    ・
    ・                                                               
XXXX:XXXXFA5E  8D9348020000  LEA EDX,[EBX+0248]                      ;那這個有必要要看嗎?當然要啦,這個還有人問?
    ・                                                                ;看見什麼了?看見使用者碼:ATKZ-KJMH-MHCH-QPCB
    ・
    ・
    ・<F10>單步執行,按N次
    ・
    ・
0167:0041FA67  E8F4ECFFFF    CALL 0041E760                            ;這是多番跟蹤得出的――這是核心!即算出正確註冊
    ・                                                                ;的主程式,有性趣的朋友不妨追蹤到裡面研究研究啊
    ・                                                                ;在這我就不得出來了,讓有性趣的朋友算算(其實是
    ・                                                                ;我不會算,反正知道是算註冊碼的主程式)。
    ・                                                                ;現場聽眾起鬨了・・・・開始有人扔臭雞蛋了・・・
    ・

別再打我了,說就說吧。

在0167:0041FA67  E8F4ECFFFF    CALL 0041E760                          ;這裡同上面的一樣按<F10>帶過。
    ・                                                                ;然後把你的機器程式碼段視窗拉寬幾行,上下看看。
    ・                                                                ;大家看見什麼了?(聽眾,怒視望我)
    ・                                                                ;好了,上面存著如下位元組串
    ・                                                                ;位元組串一:ATKZKJMHMHCHQPCB
    ・                                                                ;位元組串二:AAAABBBBCCCCDDDD
    ・                                                                ;位元組串三:NLEKSCUEOHTPRXHL
    ・                                                                ;位元組串四:AAAA-BBBB-CCCC-DDDD
    ・                                                                ;
    ・                                                                ;以上的位元組串是用<F8>跟蹤,
    ・                                                                ;進入 “CALL 0041E760 ”再用D命令檢視ESP暫存器所得

聽眾們,猜註冊碼是什麼?

聽眾甲曰:是ATKZKJMHMHCHQPCB
聽眾乙曰:是AAAABBBBCCCCDDDD
聽眾丙曰:是NLEKSCUEOHTPRXHL
聽眾丁曰:是AAAA-BBBB-CCCC-DDDD

全錯!來人給我打!



整理:

破解歷時30分鐘
設過兩個斷點:
其一 Bpx GetWindowTextA
其二 Bpx GetDlgItemTextA


隨便輸入:AAAA-BBBB-CCCC-DDDD = AAAABBBBCCCCDDDD
取使用者碼:ATKZKJMHMHCHQPCB    = ATKZ-KJMH-MHCH-QPCB

正確密碼:NLEKSCUEOHTPRXHL    = NLEK-SCUE-OHTP-RXHL

相關文章