計程車管理 1.2 演算法分析
【破文作者】sLtYJ[D.4s][DFCG]
【作者郵箱】sltyj@263.net
【作者主頁】龍族聯盟論壇 DFCG官方論壇
【使用工具】OD,PEiD
【作業系統】Windows XP
【軟體名稱】計程車管理 1.2
【下載地址】http://bj.onlinedown.net/soft/27925.htm
【軟體大小】1.41 MB
【程式語言】Borland Delphi 6.0 - 7.0
【軟體簡介】
一個小而全的計程車管理軟體,能實現車輛,車票,駕駛員,繳費的查詢等
【破解宣告】我是一隻小菜鳥,偶得一點心得,願與大家分享:)
--------------------------------------------------------------------------------
【內容】
首先用Peid 檢測程式程式,無殼!顯示編寫語言是Borland Delphi 6.0 - 7.0,隨即拿出DEDE來進行反編譯...
另人鬱悶的是居然出錯,可能作者動了手腳吧~~只好用OD直接來了,下斷BP GetWindowTextA,點選註冊後被OD斷下,經過
一番尋找,終於找到關鍵點,下面是小弟的一點膚淺分析,有錯誤的地方還請各位前輩多多指點!謝過!
005271CF . 55 PUSH EBP ; //來到這裡
005271D0 . 68 05745200 PUSH 00527405
005271D5 . 64:FF30 PUSH DWORD PTR FS:[EAX]
005271D8 . 64:8920 MOV FS:[EAX],ESP
005271DB . 8D85 F4FDFFFF LEA EAX,[EBP-20C]
005271E1 . 8B55 FC MOV EDX,[EBP-4] ; user32.77D13A50
005271E4 . 8B92 08030000 MOV EDX,[EDX+308] ; user32.77D154B4
005271EA . B9 FF000000 MOV ECX,0FF
005271EF . E8 94D3EDFF CALL 00404588 ; //計算特徵碼的長度 我的等於17位 十六進位制就是11
005271F4 . BF FF000000 MOV EDI,0FF
005271F9 . 8D85 F4FEFFFF LEA EAX,[EBP-10C]
005271FF > C600 20 MOV BYTE PTR [EAX],20
00527202 . 40 INC EAX
00527203 . 4F DEC EDI
00527204 .^ 75 F9 JNZ SHORT 005271FF
00527206 . 8B45 FC MOV EAX,[EBP-4] ; user32.77D13A50
00527209 . 8B80 08030000 MOV EAX,[EAX+308] ; //得到特徵碼 d 00A7AC54
0052720F . E8 98D3EDFF CALL 004045AC
00527214 . 85C0 TEST EAX,EAX ; //比較
00527216 . 7E 6A JLE SHORT 00527282
00527218 . 8945 F4 MOV [EBP-C],EAX
0052721B . BF 01000000 MOV EDI,1 ; //EDI=1 準備作為記位器
00527220 . 8DB5 F5FDFFFF LEA ESI,[EBP-20B]
00527226 . 8D9D F5FEFFFF LEA EBX,[EBP-10B]
0052722C > 803E 2D CMP BYTE PTR [ESI],2D ; //判斷得到的特徵碼是否為"-"
0052722F . 74 2F JE SHORT 00527260 ; //是就跳過
00527231 . 8D85 F0FDFFFF LEA EAX,[EBP-210]
00527237 . 8A16 MOV DL,[ESI]
00527239 . E8 96D2EDFF CALL 004044D4 ; //得到數字的十六進位制值
0052723E . 8B85 F0FDFFFF MOV EAX,[EBP-210]
00527244 . E8 0F1EEEFF CALL 00409058 ; //將得到的十六進位制還原為數字 結果放入EAX
00527249 . 8BC8 MOV ECX,EAX ; //ECX=EAX
0052724B . 83C1 43 ADD ECX,43 ; //ECX=ECX+43
0052724E . 8BC7 MOV EAX,EDI ; //EAX=EDI(數字位數)
00527250 . 51 PUSH ECX ; //壓入ECX
00527251 . B9 06000000 MOV ECX,6 ; //ECX=6
00527256 . 99 CDQ ; //將EAX的32位值擴充套件64位,需要EDX(這裡EDX清零)
00527257 . F7F9 IDIV ECX ; //EAX=EAX/ECX 就是將數字位數除於6,餘數進EDX
00527259 . 59 POP ECX ; //彈出ECX
0052725A . 03CA ADD ECX,EDX ; //ECX=ECX+EDX
0052725C . 880B MOV [EBX],CL ; //ECX的值轉化成字元-→就是註冊碼
0052725E . EB 09 JMP SHORT 00527269
00527260 > B8 5A000000 MOV EAX,5A ; //EAX=5A
00527265 . 2BC7 SUB EAX,EDI ; //EAX=EAX-EDI(數字位數)
00527267 . 8803 MOV [EBX],AL ; //得到的十六進位制值轉為字元
00527269 > 8BC7 MOV EAX,EDI
0052726B . B9 06000000 MOV ECX,6 ; ECX=6
00527270 . 99 CDQ
00527271 . F7F9 IDIV ECX ; //EAX=EAX/ECX 就是將數字位數除於6,餘數進EDX
00527273 . 85D2 TEST EDX,EDX ; //檢查餘數是否為零
00527275 . 75 03 JNZ SHORT 0052727A ; //不是,跳...
00527277 . C603 2D MOV BYTE PTR [EBX],2D ; //餘數為零,給註冊碼加上"-"符號
0052727A > 47 INC EDI ; //EDI=EDI+1 作為記位器
0052727B . 43 INC EBX ; //組合已得到的註冊碼
0052727C . 46 INC ESI
0052727D . FF4D F4 DEC DWORD PTR [EBP-C] ; //計數器減1
00527280 .^ 75 AA JNZ SHORT 0052722C ; //比較是否計算完成
00527282 > 8D85 E8FDFFFF LEA EAX,[EBP-218]
00527288 . 8D95 F4FEFFFF LEA EDX,[EBP-10C] ; //d 12F1C4 可看到註冊碼 在次亦可製作記憶體序號產生器
0052728E . E8 BDD2EDFF CALL 00404550
00527293 . 8B85 E8FDFFFF MOV EAX,[EBP-218]
00527299 . 8D95 ECFDFFFF LEA EDX,[EBP-214]
0052729F . E8 1019EEFF CALL 00408BB4
005272A4 . 8B95 ECFDFFFF MOV EDX,[EBP-214] ; comctl32.77315889
005272AA . 8D85 F4FEFFFF LEA EAX,[EBP-10C]
005272B0 . B9 FF000000 MOV ECX,0FF
005272B5 . E8 CED2EDFF CALL 00404588
005272BA . 8D95 E4FDFFFF LEA EDX,[EBP-21C]
005272C0 . 8B45 FC MOV EAX,[EBP-4] ; user32.77D13A50
005272C3 . 8B80 00030000 MOV EAX,[EAX+300]
005272C9 . E8 D244F4FF CALL 0046B7A0
005272CE . 8B85 E4FDFFFF MOV EAX,[EBP-21C] ; //d 00ABA26C 得到假碼 剛才輸的是676767676767
005272D4 . 50 PUSH EAX ; //放入EAX
005272D5 . 8D85 E0FDFFFF LEA EAX,[EBP-220]
005272DB . 8D95 F4FEFFFF LEA EDX,[EBP-10C]
005272E1 . E8 6AD2EDFF CALL 00404550
005272E6 . 8B95 E0FDFFFF MOV EDX,[EBP-220] ; user32.77D13B33
005272EC . 58 POP EAX ; //彈出假碼 676767676767
005272ED . E8 06D4EDFF CALL 004046F8
005272F2 0F85 BC000000 JNZ 005273B4 ; //比較 不一樣 跳 (爆破點)
005272F8 . B2 01 MOV DL,1
005272FA . A1 60164400 MOV EAX,[441660]
005272FF . E8 C8A4F1FF CALL 004417CC
00527304 . 8945 F8 MOV [EBP-8],EAX
00527307 . 33C0 XOR EAX,EAX
00527309 . 55 PUSH EBP
0052730A . 68 77735200 PUSH 00527377
0052730F . 64:FF30 PUSH DWORD PTR FS:[EAX]
00527312 . 64:8920 MOV FS:[EAX],ESP
00527315 . BA 02000080 MOV EDX,80000002
0052731A . 8B45 F8 MOV EAX,[EBP-8] ; //下面的操作就是將註冊資訊寫入登錄檔
0052731D . E8 86A5F1FF CALL 004418A8
00527322 . B1 01 MOV CL,1
00527324 . BA 1C745200 MOV EDX,0052741C ; ASCII "Software\\Microsoft\\Windows\\CurrentVersion"
00527329 . 8B45 F8 MOV EAX,[EBP-8]
0052732C . E8 BBA6F1FF CALL 004419EC
00527331 . 84C0 TEST AL,AL
00527333 . 74 24 JE SHORT 00527359
00527335 . 8D85 DCFDFFFF LEA EAX,[EBP-224]
0052733B . 8D95 F4FEFFFF LEA EDX,[EBP-10C]
00527341 . E8 0AD2EDFF CALL 00404550
00527346 . 8B8D DCFDFFFF MOV ECX,[EBP-224]
0052734C . BA 50745200 MOV EDX,00527450 ; ASCII "ProductMac"
00527351 . 8B45 F8 MOV EAX,[EBP-8]
00527354 . E8 2FA8F1FF CALL 00441B88
00527359 > 33C0 XOR EAX,EAX
0052735B . 5A POP EDX
0052735C . 59 POP ECX
0052735D . 59 POP ECX
0052735E . 64:8910 MOV FS:[EAX],EDX
00527361 . 68 7E735200 PUSH 0052737E
00527366 > 8B45 F8 MOV EAX,[EBP-8]
00527369 . E8 0AA5F1FF CALL 00441878
0052736E . 8B45 F8 MOV EAX,[EBP-8]
00527371 . E8 06C1EDFF CALL 0040347C
00527376 . C3 RETN
--------------------------------------------------------------------------------
【總結】
總得來說,此軟體的演算法還是比較簡單的!就是依次取得機器的特徵碼,然後進行運算,最後結果轉化為字元!如此迴圈....組合後得到最後的註冊碼!水平有限,有什麼不對的地方請各位指正,謝謝!:)
--------------------------------------------------------------------------------
【爆破地址】
005272F2 JNZ--→NOP
--------------------------------------------------------------------------------
【版權宣告】本文純屬技術交流, 轉載請註明作者並保持文章的完整, 謝謝!
相關文章
- IEPopupKiller 1.2破解手記--演算法分析2015-11-15演算法
- 系網紅巾V1.2演算法分析!2003-06-19演算法
- Disk
Chief 1.2 簡單註冊演算法分析2015-11-15演算法
- 資料結構與演算法分析(c 語言描述)習題 1.22018-12-14資料結構演算法
- AcWing演算法基礎1.22019-05-28演算法
- 1.2 分詞技術與演算法2019-11-19分詞演算法
- 1.2 資料庫管理員職責2020-02-20資料庫
- 簡單演算法――小護士 V1.22015-11-15演算法
- 第8章 紐約計程車軌跡的空間和時間資料分析2015-10-23
- 開源文件管理系統 Wizard 1.2 釋出2019-12-29
- 紐約計程車大資料探索2018-07-13大資料
- 專業掃雷v1.2版破解分析2015-11-15
- 1.22024-11-11
- 贏家股票盤後分析1.2 (8千字)2001-07-07
- Part 1.2 基於維特比演算法來優化上述流程2020-12-19維特比演算法優化
- 第一章(1.2) 機器學習演算法工程師技能樹2019-01-12機器學習演算法工程師
- 中文內碼轉換巨匠1.2【VB簡單】註冊演算法2004-09-22演算法
- RegEditor登錄檔修改器 1.2註冊演算法簡析2015-11-15演算法
- 演算法分析2024-10-09演算法
- 自動駕駛計程車到底“破壞力”幾何?2019-02-12自動駕駛
- 藍圖餐飲娛樂管理系統v2.21演算法分析2003-07-06演算法
- 輝翔房地產中介銷售管理 V1.0.1.3演算法分析2015-11-15演算法
- 資料庫資訊管理開發平臺 V3.5演算法分析2015-11-15資料庫演算法
- Mac視窗管理器:Stage View for mac v1.2啟用版2023-12-14MacView
- 1.2.php命令2017-12-27PHP
- cardIt V1.22015-11-15
- DVDChapter V1.22015-11-15APT
- 今日總結1.22024-09-16
- oracle PGA管理(演算法)2010-08-24Oracle演算法
- 超市管理案例分析2020-04-04
- 加解密演算法分析2020-06-29解密演算法
- 如何分析排序演算法2022-06-16排序演算法
- CryptCD 3演算法分析2015-11-15演算法
- SFR演算法原理分析2024-08-21演算法
- LL(1)分析演算法2024-11-16演算法
- 1.2 Physiacel Structure of Database Cluster2021-07-06StructDatabase
- 1.2 資料型別2020-12-04資料型別
- 1.2.作者簡介2017-12-21