• 标 题:豪杰超极解霸视频转换 (6千字)
  • 作 者:bluearc
  • 时 间:2002-9-25 22:06:18
  • 链 接:http://bbs.pediy.com

在下初学破解,不妥之处,请大家指点!
                    豪杰超极解霸视频转换工具是一个很实用的小工具,可以转换很多的视频格式,如dvd转vcd、dvd转gif、ave转mpeg等....当然,不注册也不会影响使用,只是每次使用其工能时,都会弹出请注册的对话框。今天闲着没事,就拿它来练练手吧,很实合象我一样的初学者练习!
                      保护方式:用户名加注册码                 
                      工具:softice 4.05
                      用时:四分零55秒
                  一,运行豪杰超极解霸视频转换工具,打开注册对话框。在用户名处输入bluearc (随意),输入注册码的地方分为四个框,分别输入1111(随意),即1111-1111-1111-1111。
                  二,按crrl+d呼出softice,下万能断点bpx hmemcpy,按F5断续运行程序,然后点击“注册”按钮,马上被softice拦住,bc *...
                  三,按F12八次来到下面的地方:
0167:00401818  FFD6                CALL      ESI                             
0167:0040181A  A188974000          MOV      EAX,[00409788]                  < ----------------我们来到这里!               
0167:0040181F  8D542409            LEA      EDX,[ESP+09]                     
0167:00401823  6A08                PUSH      08                               
0167:00401825  52                  PUSH      EDX                               
0167:00401826  50                  PUSH      EAX                                                                         
0167:00401827  FFD6                CALL      ESI                               
0167:00401829  8B1594974000        MOV      EDX,[00409794]                   
0167:0040182F  8D4C240E            LEA      ECX,[ESP+0E]                     
0167:00401833  6A08                PUSH      08                               
0167:00401835  51                  PUSH      ECX                               
0167:00401836  52                  PUSH      EDX                               
0167:00401837  FFD6                CALL      ESI                                                          <--------- -----d esp指向我们输入的注册码的前两框“1111-1111”                     
0167:00401839  8B0D90974000        MOV      ECX,[00409790]                   
0167:0040183F  8D442413            LEA      EAX,[ESP+13]                     
0167:00401843  6A08                PUSH      08                               
0167:00401845  50                  PUSH      EAX                               
0167:00401846  51                  PUSH      ECX                               
0167:00401847  FFD6    CALL    ESI                                                                          <--------- -----d esp指向我们输入的注册码的前三框“1111-1111-1111”                     
0167:00401849  8B1584974000        MOV      EDX,[00409784]                   
0167:0040184F  6800010000          PUSH      00000100                         
0167:00401854  B02D                MOV      AL,2D                             
0167:00401856  68A0974000          PUSH      004097A0                         
0167:0040185B  52                  PUSH      EDX                               
0167:0040185C  8844241E            MOV      [ESP+1E],AL                       
0167:00401860  88442419            MOV      [ESP+19],AL                       
0167:00401864  88442414            MOV      [ESP+14],AL                       
0167:00401868  C644242300          MOV      BYTE PTR [ESP+23],00             
0167:0040186D  FFD6                CALL      ESI                                                        <--------- -----d esp指向我们输入的注册码的全部“1111-1111-1111-1111”                     
0167:0040186F  8D442404            LEA      EAX,[ESP+04]       

大家看到了吧,程序依次取得了 我们输入的注册码后,下一步想干什么呢,是否也会依次对比呢?呵呵,待会儿就知道了。。。
四,不知按了多少次F10来到了这个地方,为什么要来到这个地方呢,我也不知道,只是凭着一种菜鸟与生俱来的直觉。。。呵呵。。。
。。。。。。。。。。。。
0167:0040187E  F7D8                NEG      EAX                               
0167:00401880  1BC0                SBB      EAX,EAX                           
0167:00401882  8D4C2404            LEA      ECX,[ESP+04]                     
0167:00401886  F7D8                NEG      EAX                               
0167:00401888  51                  PUSH      ECX                               
0167:00401889  68A0974000          PUSH      004097A0                         
0167:0040188E  A3A4984000          MOV      [004098A4],EAX                   
0167:00401893  E838000000          CALL      004018D0                  <---------------d esp    指向我们输入的注册码:“1111-1111-1111-1111”    ,按住alt 用向上箭头查看,马上看到可疑字符:“5579”。。。     
0167:00401898  8B442450            MOV      EAX,[ESP+50]                     
0167:0040189C  8B0D98974000        MOV      ECX,[00409798]                   
0167:004018A2  83C408              ADD      ESP,08                           
0167:004018A5  8D542404            LEA      EDX,[ESP+04]                     
0167:004018A9  52                  PUSH      EDX                               
。。。。。。。。。。。。。                     
五,现在,我们有充分的理由怀疑“5579”会是正确注册码的第一部分,可能程序会先判断第一部分注册码是否正确,如果正确才开始判断第二。。。第三。。。。第四。。。。(请高手别笑,这是只有菜鸟才俱有的简单推断)。是否真是如此呢,我们来做个实验:
                  步骤1,记下在0167:00401893  E838000000 处得到的数据“5579”并用鼠标双击此行(0167:00401893  E838000000)在此设断。
                    步骤2,直接按F5回到程序的控制之中。
                    步骤3,在注册框第一部分填入我们刚得到的5579这个数据,别的部分保持不变。
                  步骤4,点击注册按钮,程序又被softice拦在了上面的地方,即0167:00401893  E838000000,我们刚才设断的地方。
                  步骤5,照样下d esp 。。。按住alt 用向上箭头查看。。。啊。。。我们刚才看到的“5579”怎么变成了“5579973w”了?
                    步骤 6,按F5回到程序,再将“973w”输入注册框的第二部分并点击注册按钮。
                    步骤7,重复步骤4和步骤5,再重复步骤4、5、6。。。。
                经过以上的实验,我们得到了这样一串数据:“5579973wjt1h1p9p”,不用说,这就是我们要找的东东。。。
                  六,我也来整理一下:
用户名:bluearc
注册码:5579-973w-jt1h-1p9p
在这里为发哥也申请一个:
用户名:周润发
注册码:czy1-vq5q-x6lq-kh3n
                八,注册码,我是得到了,可是它的算法呢?我百思不得其解。。。不知哪位高手能指点指点。。。

                                          飞龙狗狗            arc@yuxi.net.cn          2002.9.19