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