網路電視大師 2004VER2.0.0.1版演算法分析(簡單)DD本年度最後一篇
網路電視大師
2004VER2.0.0.1版演算法分析(簡單)DD本年度最後一篇破文
今天想看中韓對戰,去網上找網路電視軟體,找到這個。主要目的不是分析的軟體註冊演算法,想說我很佩服作者,因為他才用了比以前版本更為簡單的演算法,它把精力放到程式功能的提高上而不是註冊演算法。這種做法只得大家尊敬和支援!
《網路電視大師2004》是在原<<網路電視大師Ver5.0>>的基礎上進一步升級,對軟體的運算規則進行了全面最佳化,大大提高了網路連線的開啟效率!<網路電視大師2004>收集了全國大部分省市電視臺和國外的知名電視臺和電臺.近千個網路連線.該版本新增的功能我就不多介紹了,大家使用後就知道好不好咯!
宣告:只為技術而破解!
(txm123分析過他的低階版本網址http://tongtian.net/pediybbs/viewtopic.php?t=717)
作者:mejy【BCG】【FCG】
破解工具:OD1.09 ,DEDE ,DELPHI6.0簡體中文版
利用fi249(:)俺的3.1什麼時候不理我了)是delphi編寫的,沒有加殼。用DEDE反之,然後利用其匯出功能,儲存為delphi工程,因為個人認為看delphi更直觀,當然直接在DEDE中看,也是可以的。
找到這兒:
procedure Tregform.okClick(Sender : TObject);
begin
0049FFE0 55 push ebp
。。。。。。。。。。。。
使用者名稱 MEJY[BCG][FCG]
試練碼 123456
呵呵 如果時小寫的話註冊碼會出現UNICODE字元。這兒簡化一下
下斷把!現在好多DELPHI比較大的程式如果採用了變數名混亂技術,斷點還是不太好找得。大家看一下《《資料收藏大師》》這個程式,好像斷點不太好找。
0049FFE0 . 55 PUSH EBP
0049FFE1 . 8BEC MOV EBP,ESP
×××××省略幾行
004A0007 . E8 2443F6FF CALL main.00404330
004A000C . 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
004A000F . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004A0012 . 8B80 F0020000 MOV EAX,DWORD PTR DS:[EAX+2F0]
004A0018 . E8 0BE0F9FF CALL main.0043E028
004A001D . 837D F8 00 CMP DWORD PTR SS:[EBP-8],0 讀入使用者名稱
004A0021 . 0F84 E7000000 JE main.004A010E
004A0027 . 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
004A002A . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004A002D . 8B80 F4020000 MOV EAX,DWORD PTR DS:[EAX+2F4]
004A0033 . E8 F0DFF9FF CALL main.0043E028
004A0038 . 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
004A003B . 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004A003E . E8 C9FEFFFF CALL main.0049FF0C
只覺告訴,這是註冊碼演算法的關鍵,跟進
004A0043 . 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] 將輸入的假碼入棧
004A0046 . 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] 將使用者名稱的變換結果入棧
004A0049 . E8 8285F6FF CALL main.004085D0 關鍵比較call跟進
004A004E . 85C0 TEST EAX,EAX
004A0050 74 2F JE SHORT main.004A0081 關鍵跳轉
上面的call
0049FF0C /$ 55 PUSH EBP
0049FF0D |. 8BEC MOV EBP,ESP
0049FF0F |. 83C4 F0 ADD ESP,-10 處理堆疊
0049FF12 |. 53 PUSH EBX
0049FF13 |. 56 PUSH ESI
0049FF14 |. 57 PUSH EDI
0049FF15 |. 33C9 XOR ECX,ECX
0049FF17 |. 894D F0 MOV DWORD PTR SS:[EBP-10],ECX
0049FF1A |. 894D F4 MOV DWORD PTR SS:[EBP-C],ECX
0049FF1D |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX
0049FF20 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX EAX中儲存的是使用者名稱
0049FF23 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0049FF26 |. E8 A548F6FF CALL main.004047D0
0049FF2B |. 33C0 XOR EAX,EAX
0049FF2D |. 55 PUSH EBP
0049FF2E |. 68 CFFF4900 PUSH main.0049FFCF
0049FF33 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
0049FF36 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
0049FF39 |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
0049FF3C |. E8 EF43F6FF CALL main.00404330
0049FF41 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0049FF44 |. E8 9F46F6FF CALL main.004045E8 該call的作用是求得使用者名稱的長度。
0049FF49 |. 8BF0 MOV ESI,EAX 使用者名稱長度DD》esi
0049FF4B |. 85F6 TEST ESI,ESI 使用者名稱是否為空
0049FF4D |. 7E 52 JLE SHORT main.0049FFA1
下面開始根據使用者名稱計算註冊碼
0049FF4F |. BB 01000000 MOV EBX,1 這是個初始值 i=1 以後每迴圈一次i++;
0049FF54 |> 8D43 1E /LEA EAX,DWORD PTR DS:[EBX+1E] j = i+1e
0049FF57 |. 50 |PUSH EAX EAX= i+1e;
0049FF58 |. 8BC3 |MOV EAX,EBX 將EBX的值入棧 作為下面運算的被除數
0049FF5A |. 5A |POP EDX EDX中可見到是上面EAX中的值
0049FF5B |. 8BCA |MOV ECX,EDX
0049FF5D |. 99 |CDQ
0049FF5E |. F7F9 |IDIV ECX EAX=EAX/ECX=1/1F=0,餘數1放在EDX中
********************************彙編知識**********************************
IDIV 整數除法. ,結果回送:
商回送AL,餘數回送AH, (位元組運算); 或 商回送AX,餘數回送DX, (字運算).
0049FF60 |. 8BFA |MOV EDI,EDX 餘數送到EDI中
0049FF62 |. 8BC3 |MOV EAX,EBX
0049FF64 |. 33C3 |XOR EAX,EBX
0049FF66 |. 33C3 |XOR EAX,EBX 這兒進行兩個異或運算,他又不是回來了嗎
0049FF68 |. 33F8 |XOR EDI,EAX 清零
0049FF6A |. 8D43 14 |LEA EAX,DWORD PTR DS:[EBX+14] j=i+14
0049FF6D |. 50 |PUSH EAX 入棧
0049FF6E |. 8BC3 |MOV EAX,EBX 將j作為下一個整除運算的被除數
0049FF70 |. 5A |POP EDX
0049FF71 |. 8BCA |MOV ECX,EDX ecx=j;
0049FF73 |. 99 |CDQ
0049FF74 |. F7F9 |IDIV ECX
0049FF76 |. 33D3 |XOR EDX,EBX
0049FF78 |. 03FA |ADD EDI,EDX 將上一個計算的餘數和這一次的餘數相加
0049FF7A |. 03FB |ADD EDI,EBX 將兩次餘數相加的結果在與i相加
0049FF7C |. 83F7 03 |XOR EDI,3 結果與3異或
0049FF7F |. 47 |INC EDI 將上面的結果加1
0049FF80 |. 8D45 F0 |LEA EAX,DWORD PTR SS:[EBP-10]
0049FF83 |. 8B55 FC |MOV EDX,DWORD PTR SS:[EBP-4]
0049FF86 |. 0FB6541A FF |MOVZX EDX,BYTE PTR DS:[EDX+EBX-1]
取使用者名稱的每位的字元 EDX=M,E,J。。。。。
0049FF8B |. 03D7 |ADD EDX,EDI 將上面的計算結果和使用者名稱各位上的字元相加
0049FF8D |. E8 7E45F6FF |CALL main.00404510
0049FF92 |. 8B55 F0 |MOV EDX,DWORD PTR SS:[EBP-10]
0049FF95 |. 8D45 F4 |LEA EAX,DWORD PTR SS:[EBP-C]
0049FF98 |. E8 5346F6FF |CALL main.004045F0 轉化成字元
0049FF9D |. 43 |INC EBX
0049FF9E |. 4E |DEC ESI
0049FF9F |.^75 B3 JNZ SHORT main.0049FF54 如果使用者名稱沒有處理完成則繼續
0049FFA1 |> 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
0049FFA4 |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C]
0049FFA7 |. E8 D843F6FF CALL main.00404384
0049FFAC |. 33C0 XOR EAX,EAX
0049FFAE |. 5A POP EDX
0049FFAF |. 59 POP ECX
0049FFB0 |. 59 POP ECX
0049FFB1 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
0049FFB4 |. 68 D6FF4900 PUSH main.0049FFD6
0049FFB9 |> 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
0049FFBC |. BA 02000000 MOV EDX,2
0049FFC1 |. E8 8E43F6FF CALL main.00404354
0049FFC6 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
0049FFC9 |. E8 6243F6FF CALL main.00404330
0049FFCE . C3 RETN
004085D0 /$ 56 PUSH ESI
004085D1 |. 57 PUSH EDI
004085D2 |. 53 PUSH EBX
004085D3 |. 89C6 MOV ESI,EAX 變換後得使用者名稱
004085D5 |. 89D7 MOV EDI,EDX 輸入的註冊碼
004085D7 |. 09C0 OR EAX,EAX
004085D9 |. 74 03 JE SHORT main.004085DE
004085DB |. 8B40 FC MOV EAX,DWORD PTR DS:[EAX-4] 使用者名稱長度
004085DE |> 09D2 OR EDX,EDX
004085E0 |. 74 03 JE SHORT main.004085E5
004085E2 |. 8B52 FC MOV EDX,DWORD PTR DS:[EDX-4] 加碼的長度
004085E5 |> 89C1 MOV ECX,EAX
004085E7 |. 39D1 CMP ECX,EDX 比較輸入的註冊碼和使用者名稱變換後的長度
004085E9 |. 76 02 JBE SHORT main.004085ED
004085EB |. 89D1 MOV ECX,EDX
004085ED |> 39C9 CMP ECX,ECX
以下比較的關鍵:
004085EF |> F3:A6 /REPE CMPS BYTE PTR ES:[EDI],BYTE PTR DS>
迴圈比較直到遇到一個不想等的字元,如果你輸入的註冊碼和根據使用者名稱計算後的串相同,則直接跳到0040861D處
****************彙編知識**************************8
REPE/REPZ 當ZF=1或比較結果相等,且CX/ECX<>0時重複.
004085F1 |. 74 2A |JE SHORT main.0040861D
004085F3 |. 8A5E FF |MOV BL,BYTE PTR DS:[ESI-1]
這裡處理的是變化後得使用者名稱
004085F6 |. 80FB 61 |CMP BL,61 和字元a比較
004085F9 |. 72 08 |JB SHORT main.00408603 JB 比較無符號數 當小於時跳
004085FB |. 80FB 7A |CMP BL,7A 和字元z比較
004085FE |. 77 03 |JA SHORT main.00408603 JA比較無符號數 當大於時跳
00408600 |. 80EB 20 |SUB BL,20 如果是小寫字母,將他轉化為大寫字母
00408603 |> 8A7F FF |MOV BH,BYTE PTR DS:[EDI-1] 處理你輸入的字元如果是小寫的同樣將他轉化為大寫。
00408606 |. 80FF 61 |CMP BH,61
00408609 |. 72 08 |JB SHORT main.00408613
0040860B |. 80FF 7A |CMP BH,7A
0040860E |. 77 03 |JA SHORT main.00408613
00408610 |. 80EF 20 |SUB BH,20
00408613 |> 38FB |CMP BL,BH
比較輸入的註冊碼和根據使用者名稱比較的註冊碼相等繼續下次迴圈,不等的話註冊失敗。
00408615 |.^74 D8 JE SHORT main.004085EF
00408617 |. 0FB6C3 MOVZX EAX,BL
0040861A |. 0FB6D7 MOVZX EDX,BH
0040861D |> 29D0 SUB EAX,EDX 如果這兒eax=edx 則可註冊成功
0040861F |. 5B POP EBX
00408620 |. 5F POP EDI
00408621 |. 5E POP ESI
00408622 . C3 RETN
這個註冊演算法很直觀和以前版本的區別在於以前版本生成一個序列號,根據序列號計算,這個版本沒用序列號,直接用了使用者名稱。
總結一下:
本演算法主要要到的彙編知識:
DIV 無符號除法.
IDIV 整數除法.
以上兩條,結果回送:
商回送AL,餘數回送AH, (位元組運算);
或 商回送AX,餘數回送DX, (字運算).
CDQ 雙字擴充套件. (把EAX中的字的符號擴充套件到EDX中去)
XOR 異或運算.
REPE/REPZ 當ZF=1或比較結果相等,且CX/ECX<>0時重複.
REPNE/REPNZ 當ZF=0或比較結果不相等,且CX/ECX<>0時重複.
JAE/JNB(比較無符號數) 73 C=0 >= 高於或等於/不低於
JB/JNAE(比較無符號數) 72 C=1 < 低於/不高於或等於
JBE/JNA(比較無符號數) 76 C或Z=1 <= 低於或等於/不高於
至此,本文寫作告一段落。一組可用MEJY[BCG][FCG] PGKabHHSheOSVk
這也許是本年度的最後一篇破文,再次向所有關心我們菜鳥成長的牛人 例如FLY 、LORDER、YESKY1、看雪等致以誠摯的感謝!來年再見!
相關文章
- 簡單演算法:迷你網路電視演算法分析 (8千字)2015-11-15演算法
- 網路電視專家5.0演算法分析2004-05-29演算法
- 網路電視大師 V4.0.0 Build 2003.9.25註冊演算法簡析2015-11-15UI演算法
- 簡單演算法――網路電話 Talking anywhere 5.02003-03-14演算法
- 最簡單的人工神經網路2021-08-25神經網路
- 簡單演算法――熱鍵大師1.132003-03-06演算法
- 簡單網路爬蟲Ruby版2014-06-30爬蟲
- 從內容出發 這樣選網際網路電視更簡單2016-12-14
- (原創)叮咚極品網路電視電影III
V3.92-----演算法分析2004-05-28演算法
- 黑馬多媒體電子教室精簡版簡單演算法分析 (8千字)2015-11-15演算法
- 迷你網路電視5.1註冊演算法2003-07-04演算法
- mrtg網路流量分析, 簡單安裝mrtg分析網路流量(轉)2007-08-10
- 林沛滿老師 《Wireshark 網路分析就這麼簡單》+《Wireshark 網路分析的藝術》內容摘要2024-06-28
- 網際網路金融:噪音背後的簡單真相2013-08-03
- Instyler Ex-it!
漢化版 1.64 簡單演算法分析2015-11-15演算法
- [原創]簡單演算法――函式影像大師V
4.52015-11-15演算法函式
- 檔案管理軟體管理大師演算法簡析!(簡單浮點)2015-11-15演算法
- 分析師稱有線電視將耗盡頻寬導致網路崩潰2007-08-20
- 陸川周迅新片首播 微鯨電視打破網際網路電視單片付費模式2016-09-06模式
- 實現一個簡單的 dd 庫2017-09-13
- POPMAN時常管家2003版--簡單演算法分析2015-11-15演算法
- Teleport
pro 演算法簡單分析2004-07-15演算法
- ThinkNet:迄今為止最簡單的語言建模網路2019-05-16
- JavaScript 實現簡單的神經網路演算法2016-06-14JavaScript神經網路演算法
- 雙十二彩電暗戰:網際網路電視最吸引使用者的是什麼?2016-11-30
- 電路大師課系列-模擬積體電路設計第五講:基本π網路(下)2017-06-23
- 最簡單的網路圖片的爬取 --Pyhon網路爬蟲與資訊獲取2020-04-04爬蟲
- 東晨庫管網路版 6.5註冊演算法分析2003-08-14演算法
- 最簡單的LRU演算法java實現2013-11-26演算法Java
- 用 JS 實現簡單的神經網路演算法2016-06-13JS神經網路演算法
- 傳蘋果與電視內容生產商洽談 欲推蘋果版網路電視服務2015-02-05蘋果
- Counter:簡單而免費的網路流量分析工具2022-02-22
- 網際網路電視勝局已定 傳統電視翻身不易2016-11-04
- 本年度最火爆的,Python網路爬蟲開發實戰, 案例為王,注重實戰2020-08-06Python爬蟲
- 加強版dd工具dc3dd2017-06-083D
- 上網求職走入電視網路 (轉)2007-12-07求職
- 3 個簡單、優秀的 Linux 網路監視器2017-11-03Linux
- 簡單演算法――Windows設定大師
2003 Build 04152015-11-15演算法WindowsUI