超級聊天2000 2001C 破解分析

看雪資料發表於2003-06-18

超級聊天2000 2001C 破解分析                
 
軟體名稱:
 超級聊天2000 2001C
 
軟體簡介:
 國內的網路速度時快時慢,不穩定是個公認的事實,當你和朋友在網上聊天時,
常常會遇到聊天內容傳不過去或速度很慢的情況,這就是網路不穩定的表現之一。
這些不僅影響了聊天的心情,也阻礙了和朋友的交流,甚至多花去了很多上網費,真是令人煩惱。
而超級聊天2000 恰好能較好的解決這些問題。它採用了獨特的校驗技術,使得無論
在多麼不通暢不穩定的網路中,都可將你的聊天內容完整的傳給朋友,決無紕漏;速度也快,
沒有時差的感覺。功能實用,使用簡單,人人都能上手。註冊後的版本將能更準確,
更迅速地傳遞聊天內容;使用也將更方便,更保密。


 
下載地址:
 http://www.onlinedown.net/soft/9195.htm
------------------------------------------------------------
 
破解作者:
 冷楓[OCN][CTR]
 
破解工具:
 w32Dasm ,ollydbg.
 
破解目的:
 學習~~~~~
 
------------------------------------------------------------
 
[破解過程]
 
詳細過程:
使用者:冷楓[OCN][CTR]
假註冊碼:52225229
過程:
00477E84  /. 55             PUSH EBP
00477E85  |. 8BEC           MOV EBP,ESP
00477E87  |. B9 0D000000    MOV ECX,0D
00477E8C  |> 6A 00          /PUSH 0
00477E8E  |. 6A 00          |PUSH 0
00477E90  |. 49             |DEC ECX
00477E91  |.^75 F9          \JNZ SHORT UNPACKED.00477E8C
00477E93  |. 51             PUSH ECX
00477E94  |. 53             PUSH EBX
00477E95  |. 8BD8           MOV EBX,EAX
00477E97  |. 33C0           XOR EAX,EAX
00477E99  |. 55             PUSH EBP
00477E9A  |. 68 E6824700    PUSH UNPACKED.004782E6
00477E9F  |. 64:FF30        PUSH DWORD PTR FS:[EAX]
00477EA2  |. 64:8920        MOV DWORD PTR FS:[EAX],ESP
00477EA5  |. 8D45 FC        LEA EAX,DWORD PTR SS:[EBP-4]
00477EA8  |. BA 00834700    MOV EDX,UNPACKED.00478300
00477EAD  |. E8 02BCF8FF    CALL UNPACKED.00403AB4
00477EB2  |. 8D4D F8        LEA ECX,DWORD PTR SS:[EBP-8]
00477EB5  |. A1 B4654900    MOV EAX,DWORD PTR DS:[4965B4]
00477EBA  |. 8B00           MOV EAX,DWORD PTR DS:[EAX]
00477EBC  |. 8B55 FC        MOV EDX,DWORD PTR SS:[EBP-4]
00477EBF  |. E8 1CB00100    CALL UNPACKED.00492EE0
00477EC4  |. 8B55 F8        MOV EDX,DWORD PTR SS:[EBP-8]
00477EC7  |. 8D45 FC        LEA EAX,DWORD PTR SS:[EBP-4]
00477ECA  |. E8 E5BBF8FF    CALL UNPACKED.00403AB4
00477ECF  |. 8D55 F4        LEA EDX,DWORD PTR SS:[EBP-C]
00477ED2  |. 8B83 84030000  MOV EAX,DWORD PTR DS:[EBX+384]
00477ED8  |. E8 A35CFBFF    CALL UNPACKED.0042DB80            
↑_______取使用者位數 OE
00477EDD  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]      
↑_______將使用者位數到EAX
00477EE0  |. E8 B7BDF8FF    CALL UNPACKED.00403C9C              
↑_______取使用者位數 OE
00477EE5  |. 83F8 04        CMP EAX,4                          
↑_______比較是否大於或等於4   小則OVER
00477EE8  |. 7D 0D          JGE SHORT UNPACKED.00477EF7
00477EEA  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
00477EED  |. E8 E28CFDFF    CALL UNPACKED.00450BD4
00477EF2  |. E9 1B030000    JMP UNPACKED.00478212
00477EF7  |> 8D55 F0        LEA EDX,DWORD PTR SS:[EBP-10]
00477EFA  |. 8B83 84030000  MOV EAX,DWORD PTR DS:[EBX+384]
00477F00  |. E8 7B5CFBFF    CALL UNPACKED.0042DB80
00477F05  |. 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]    
↑_______取使用者位數 OE
00477F08  |. E8 8FBDF8FF    CALL UNPACKED.00403C9C
00477F0D  |. 83F8 06        CMP EAX,6                      
↑_______比較是不是大於和等於6
先跟蹤大於3而小於6位的註冊碼我無法跟出,最後選定大於6位的跟蹤,問題解決。
[可能由於我技術問題,那位跟出4位使用者名稱的請指點告訴我]

00477F10  JGE UNPACKED.00478050  跳走
 ↓_______來到這
00478050  LEA EDX,DWORD PTR SS:[EBP-44]
00478053  MOV EAX,DWORD PTR DS:[EBX+388]
00478059  CALL UNPACKED.0042DB80
0047805E  MOV EAX,DWORD PTR SS:[EBP-44]      
↑_______取輸入的註冊碼
00478061  PUSH EAX
00478062  LEA EDX,DWORD PTR SS:[EBP-4C]
00478065  MOV EAX,DWORD PTR DS:[EBX+384]
0047806B  CALL UNPACKED.0042DB80              
↑_______使用者位數 14
00478070  MOV EDX,DWORD PTR SS:[EBP-4C]      
↑_______取使用者位數---》EDX
00478073  LEA ECX,DWORD PTR SS:[EBP-48]
00478076  MOV EAX,DWORD PTR DS:[4965B4]
0047807B  MOV EAX,DWORD PTR DS:[EAX]
0047807D  CALL UNPACKED.00492900   關鍵演算法CALL
-----------------------演算法CALL 00492900------------------
00492900  PUSH EBP
00492901  MOV EBP,ESP
00492903  ADD ESP,-1C
00492906  PUSH EBX
00492907  PUSH ESI
00492908  PUSH EDI
00492909  XOR EBX,EBX                        
↑____//EBX清0X
0049290B  MOV DWORD PTR SS:[EBP-10],EBX
0049290E  MOV DWORD PTR SS:[EBP-8],ECX
00492911  MOV DWORD PTR SS:[EBP-4],EDX
00492914  MOV EAX,DWORD PTR SS:[EBP-4]
00492917  CALL UNPACKED.00403E50            
0049291C  XOR EAX,EAX                        
0049291E  PUSH EBP
0049291F  PUSH UNPACKED.004929EC
00492924  PUSH DWORD PTR FS:[EAX]
00492927  MOV DWORD PTR FS:[EAX],ESP
0049292A  MOV EAX,DWORD PTR SS:[EBP-4]      
0049292D  CALL UNPACKED.00403C9C            
↑____//算使用者位數 OE
00492932  CMP EAX,3   比較
00492935  JLE UNPACKED.004929CE
0049293B  XOR EDI,EDI
0049293D  MOV EAX,DWORD PTR SS:[EBP-4]      
00492940  CALL UNPACKED.00403C9C            
↑____// 再次算使用者位數 OE
00492945  INC EAX                            
↑____//使用者EAX +1 =0f
00492946  TEST EAX,EAX
00492948  JLE SHORT UNPACKED.0049299B
0049294A  MOV DWORD PTR SS:[EBP-14],EAX
0049294D  MOV DWORD PTR SS:[EBP-C],1
00492954  /MOV EAX,DWORD PTR SS:[EBP-4]      
00492957  |CALL UNPACKED.00403C9C
↑____// 再次算使用者位數 OE
0049295C  |MOV ESI,EAX
↑____//eax===>esi
0049295E  |INC ESI                          
↑____// 使用者位數加1 OE+1=0F
0049295F  |TEST ESI,ESI
00492961  |JLE SHORT UNPACKED.00492993
00492963  |MOV EBX,1                        
↑____//  1---》EBX  
00492968  |/MOV EAX,DWORD PTR SS:[EBP-4]    
0049296B  ||CALL UNPACKED.00403C9C          
00492970  ||SUB EAX,EBX                      
↑____//使用者位數OE -1 =OB   EBX為進行計算的位數
00492972  ||MOV EDX,DWORD PTR SS:[EBP-4]    
↑____//取使用者存放的記憶體地址
00492975  ||MOV AL,BYTE PTR DS:[EDX+EAX]    
↑____//使用者存放的記憶體地址+使用者位數-1=就是從使用者最後一位取數
 1-----------取 ] (5D)
 2-----------取 R (52)
00492978  ||MOV EDX,DWORD PTR SS:[EBP-C]
↑____//[EBP-C] 為大迴圈的次數 =----》EDX  
0049297B  ||ADD EDX,EDX                      
↑____//EDX+EDX=2
0049297D  ||LEA EDX,DWORD PTR DS:[EDX+EDX*4]
↑____//[EDX+EDX*4]=2+2*4=0A
00492980  ||IMUL EDX,EDI                    
↑____//EDX * EDI 第一次EDI為0,
 1------------0A   *  0 = 0
2------------0A   *  5D= 3A2
00492983  ||AND EAX,0FF                      
↑____//取 ] (5D) AND 0FF 不變
00492988  ||IMUL EAX,EBX                    
↑____//  EAX為取的使用者的ASCII,EBX為計算的位數
1-----------] (5D)  *   1  =5D----》EAX
 2------------取 R (52)* 2 =A4
0049298B  ||ADD EDX,EAX                      
↑____// 0 +5D=5D ----》EDX
  2-------- 3A2+A4=446
0049298D  ||MOV EDI,EDX
↑____//EDX(5D)---》EDI
 2---------446---》EDI
0049298F  ||INC EBX                          
↑____//EBX為以計算的位數, EBX+1,去進行下個計算
00492990  ||DEC ESI
↑____// ESI 為需要計算的位數,ESI-1,表示還剩下多少沒計算
00492991  |\JNZ SHORT UNPACKED.00492968
 ↑____// 比較是否計算完  小迴圈 OF(16) 次
   //第一次計算完後為  E0AAE680  (3769296512)---》EDI
    // 計算完為一次大迴圈
00492993  |INC DWORD PTR SS:[EBP-C]          
 ↑____//表示大迴圈的次數
00492996  |DEC DWORD PTR SS:[EBP-14]        
 ↑____//表示還要大迴圈的次數  使用者位數加1  0F(16)
00492999  \JNZ SHORT UNPACKED.00492954
 ↑____//       比較是否計算完  迴圈 OF(16)
   //計算完後為  109D02C0(278725312)---》EDI 10進製為真註冊碼
0049299B  LEA EAX,DWORD PTR SS:[EBP-10]

----------------------------演算法完---------------------

00478082  MOV EDX,DWORD PTR SS:[EBP-48]      
 ↑_______將真註冊碼    -----》EDX
00478085  POP EAX
00478086  CALL UNPACKED.00403DAC    比較~~~~~
0047808B  JNZ UNPACKED.


 

 最後得:
使用者:冷楓[OCN][CTR]
註冊碼:278725312
  寫的不好的地方,還希望各位看觀指出~~~~~~
------------------------------------------------------------
 
~~~~~~~~~~~~~相信自己,哦哦哦哦~~~~~~~~~~~~~

相關文章