分析破解數字五筆3.0 (2千字)

看雪資料發表於2002-04-17

分析破解數字五筆3.0 

軟體簡介:這是一個五筆輸入法,提供漢字的五筆輸入。
軟體下載:http://www.szwb.com
破解工具:TRW 2000
破解過程:
    首先要注意的是,因為某些程式的特殊性,TRW並不能夠直接載入這些程式然後再進行跟蹤。但TRW並不是一定要載入程式才能夠跟蹤該程式。這個事例就是這樣的。
(1)先執行TRW,然後執行數字五筆,提示註冊是,填入註冊碼“12345678”(先隨便填)。
(2)按下CTR+N回到TRW中。在命令列,
    輸入:bpx hmemcpy    回車      (用記憶體複製函式給它下斷點。)
    按下:CTR+N                    (返回數字五筆3.0註冊提示框,進行跟蹤函式的呼叫)
(4)按下注冊面版“OK”鍵。
    在命令列,
    輸入:bd            回車      (禁止斷點)
然後按F10單步從第一條執行起。(這裡不能用pmodule命令直接跳到數字五筆3.0程式的領空,是因為開始時我們並不是直接載入數字五筆3.0,然後再進行跟蹤的。)
(5)來到SZWB程式領空後,大家會看到一段如下的匯篇程式碼:
017F:014E6E0B 8D542428        LEA      EDX,[ESP+28]  (把你填入的註冊碼放到暫存器DX中)
017F:014E6E0F 52              PUSH    EDX            (放入棧中)
017F:014E6E10 E8238A0000      CALL    014EF838   
017F:014E6E15 8B0D08A74F01    MOV      ECX,[014FA708] (把你的機器碼放到放到暫存器CX中)
017F:014E6E1B A30CA74F01      MOV      [014FA70C],EAX
017F:014E6E20 351A968DE5      XOR      EAX,E58D961A  (把填入的註冊碼與常數A進行異或運算)
017F:014E6E25 81F1F4EDDCAE    XOR      ECX,AEDCEDF4  (把你的機器碼與常數B進行異或運算)
017F:014E6E2B 83C404          ADD      ESP,BYTE +04
017F:014E6E2E 3BC1            CMP      EAX,ECX        (比較兩個表示式的值,來做判斷條件)
017F:014E6E30 0F85C4000000    JNZ      NEAR 014E6EFA  (相同則不跳)
017F:014E6E36 6A00            PUSH    BYTE +00
017F:014E6E38 68748E4F01      PUSH    DWORD 014F8E74
017F:014E6E3D 68608E4F01      PUSH    DWORD 014F8E60
017F:014E6E42 6A00            PUSH    BYTE +00
    到這裡,大家因該知道註冊碼了吧!
我的機器碼是:-1547960322;透過運算得到的註冊碼是:3907683344。
    本人用VC寫的序號產生器原始碼如下:
#include <iostream.h>
void main()
{
unsigned long int a,b,c;
b=1263631342;
cout<<"請輸入你的機器碼! "<<endl;
cin>>a;
c=b^a;
cout<<"你的註冊碼是:"<<c<<endl;
cout<<"謝謝使用 !"<<'\n'<<endl;
}
                        菜鳥之作,讓高手見笑了!
  (這是作者第二次寫破解文章,作者學破解時間也不長,不足處還望各位朋友給予指導和幫助,
      在此,作者先先謝謝大家了!我的Emial:tianrongfeng@yahoo.com  我的QQ號碼:32069691)


                                                                              風塵(長沙)
                                                                            2002年4月16日

相關文章