機械設計系統1.0破解實錄------------演算法簡單,破解過程一
機械設計系統1.0破解實錄------------演算法簡單,破解過程一波三折,保護方式比較有意思!!
[軟體介紹]
本軟體主要面向機械工程設計者使用,主要功能有如下幾個方面:
1、公差類:孔、軸、形位公差查詢;尺寸中等級與粗糙度的合理選配;未注尺寸自由偏差及平板的平面度與平行度公差。
2、材料類:材料密度查詢;有17型別材的規格及相應密度、重量計算;材料大類所屬各牌號的特性;各種材料配合時的摩擦係數及運動機構的傳動效率等。
3、標件類:各種聯接件(螺栓、螺母、螺釘、墊圈、擋圈、銷、螺柱、鉚釘、鍵、密封圈等)按名稱或按型號方便查詢及其各種規格下的各種尺寸以圖示的方式一目瞭然,再輔助以相應的幫助文件;普通螺紋、梯形螺紋、非螺紋密封的管螺紋、螺紋密封的管螺紋、英制螺紋的規格尺寸。
3、傳動類:齒輪設計計算;蝸輪蝸桿設計計算;鏈輪設計計算;傳動軸強度計算;彈簧設計計算;滑動螺旋設計計算,並含有相應的校核。只輸入現有的一些已知資料就能自動計算得出準確結果,可大大減輕人的腦力勞動,省得去翻閱設計手冊,節省大量時間,加快設計速度,提高產品設計開發的成功率。
4、軸承類:各種規格軸承的查詢、受力下校核及潤滑。
5、聯接件、銷、鍵在不同方式下的安全校核。
6、工程計算器(全權共享):可在不進入主介面情形下選用工程計算器進行各種材料、各種形狀下計算體積重量,方便快捷。
7、輔助類:生產、供應、銷售、人事下相應事務的管理及查詢。
8、人性化的介面可自行設定,更改。
[使用限制] 試用20次。
[保護方式] 採用硬體序列號,一機註冊碼
[下載]http://www1.skycn.com/soft/21365.html
[破解工具] olldbg1.10 、Peid0.92、c32asm1.0002
破解過程:
1.該軟體用VC編寫,無殼。
2.用C32ASM載入後可得到如下字串參考資訊
註冊成功
::00458354->PUSH 50D790
註冊成功第一步
::00458249->PUSH 50D7C0
註冊碼:
::00444E55->PUSH 50A564
註冊失敗
::00458266->PUSH 50D7B4
註冊使用者
::00444E74->PUSH 50A550
用olldbg載入後,按 ctrl+G 00458354 來到:
00458354 . 68 90D75000 PUSH 機械設計.0050D790
00458359 . E8 0237FBFF CALL 機械設計.0040BA60
0045835E . 51 PUSH ECX
0045835F . 8BCC MOV ECX,ESP
00458361 . 896424 18 MOV DWORD PTR SS:[ESP+18],ESP
00458365 . 68 6C255000 PUSH 機械設計.0050256C
0045836A . C64424 38 05 MOV BYTE PTR SS:[ESP+38],5
0045836F . E8 EC36FBFF CALL 機械設計.0040BA60
00458374 . 8BCE MOV ECX,ESI
00458376 . C64424 34 04 MOV BYTE PTR SS:[ESP+34],4
0045837B . E8 90FBFFFF CALL 機械設計.00457F10
00458380 . 833D 30B95400 >CMP DWORD PTR DS:[54B930],13
00458387 . 7E 4C JLE SHORT 機械設計.004583D5
再向上看,來到這裡:
0045822E . E8 44790700 CALL 機械設計.004CFB77
00458233 . 8B4E 70 MOV ECX,DWORD PTR DS:[ESI+70] ;機器碼(十六進位制)送ECX
00458236 . 8B46 74 MOV EAX,DWORD PTR DS:[ESI+74] ;我們輸入註冊碼(十六進位制)送EAX
00458239 . 35 B7D64C1A XOR EAX,1A4CD6B7 ;EAX 與 1A4CD6B7異或。
0045823E . 51 PUSH ECX
0045823F . 3BC1 CMP EAX,ECX ;比較註冊碼
00458241 . 8BCC MOV ECX,ESP
00458243 . 75 1D JNZ SHORT 機械設計.00458262
所以 註冊碼=機器碼 XOR 1A4CD6B7 ( A4CD6B7= 441243319)
我的機器碼為 :2867163251 ,註冊碼就是:2867163251 xor 441243319=2963908292
2.填入正確註冊碼後,程式依然沒有現示已註冊。
再進行跟蹤發現在004582B6處call中用 CreateFileA ,試圖對自身進行寫訪問。
如果訪問成功,在0045833F處call程式會把輸入註冊碼寫到程式尾部十個位元組處,
然而正常情況下這是不可能的。
看來這就是沒有現示已註冊原因。
3.用把註冊碼:2963908292寫到"機械設計系統1.0.exe"尾部,再執行程式
提示註冊的對話方塊沒有了,出現了登陸對話方塊。新的問題有出現了,
使用者許可權有"管理員級 ,一般使用者,高階使用者"三種,無論選那一級使用者都登不進取,
看來還要拿到資料庫中使用者密碼才行。
4. 用ACCESS2003開啟軟體目錄PYF下的SF.mdb,發現加了密.
我用破解ACCESS密碼軟體:CHKenTools.exe 得到其密碼為:622127FEI
下面再用ACCESS2003開啟SF.mdb 找到"登入使用者"表得到如下資訊:
-------------------------------------------------------------------------------
Alias Password Authority UserName
Administer EPAPFDGGDBFVBKFMGW 管理員級 潘應鋒
PanYF BWALIWJLDKJMFFAKDVGK 一般使用者 潘
你我她 CPHYINJLFVDGIZ 高階使用者 飛客
FEI 7 / /
--------------------------------------------------------------------------------
我大喜,可我用裡面Password依然登入不進取,看來程式把密碼加密再儲存到資料庫中.
革命尚未成功啊!鬱悶............。
5.在用C32ASM中檢視字串,可看到大量SQL語句:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\PYF\SF.mdb;Jet OLEDB:DataBase Password=622127FEI
::004519C1->PUSH 50C350
(資料庫密碼在這裡也可看到!!,我以後看密碼先搜尋這條語句)
select * from 登入使用者 where Alias='Administer' and Password='
::00443911->PUSH 50A278
select * from 登入使用者 where Alias='
::00443DDF->PUSH 50A33C
::0044415D->PUSH 50A33C
::00445763->PUSH 50A33C
::00445E57->PUSH 50A33C
::004461CB->PUSH 50A33C
::00446569->PUSH 50A33C
::0044705D->PUSH 50A33C
::00447DD7->PUSH 50A33C
select * from 登入使用者 where Authority='
::00445F36->PUSH 50A728
'AND Password=' 應該與密碼有關,但太多處呼叫,一一設斷跟蹤太繁。
下面對GetWindowTextA函式設斷來跟,
用OLLYDBG載入程式後, ALT+E選擇到USER32.dll模組,按右鍵,
選擇“Search for ->Name (label)” 出現呼叫函式的視窗,
向下拉動找到GetWindowTextA並選擇它,按下F2。
按F9執行,回到主程式,添入註冊名和註冊碼註冊,被OllyDbg攔截住,
按CTRL+F9,再按F8返回程式領空後來到如下位置:
004DAE30 |> 50 PUSH EAX ; |Buffer
004DAE31 |. FF75 08 PUSH DWORD PTR SS:[EBP+8] ; |hWnd
004DAE34 |. FF15 44155000 CALL DWORD PTR DS:[<&USER32.GetWindowTex>; \GetWindowTextA
004DAE3A |. 8B4D 10 MOV ECX,DWORD PTR SS:[EBP+10]
004DAE3D |. 6A FF PUSH -1
跳出上面那段程式碼後來到:
00443590 . 53 PUSH EBX
00443591 . 56 PUSH ESI
00443592 . 57 PUSH EDI
00443593 . 8B7C24 10 MOV EDI,DWORD PTR SS:[ESP+10]
00443597 . 8BF1 MOV ESI,ECX
00443599 . 8D46 74 LEA EAX,DWORD PTR DS:[ESI+74]
0044359C . 50 PUSH EAX ; /Arg3
0044359D . 68 ED030000 PUSH 3ED ; |Arg2 = 000003ED
004435A2 . 57 PUSH EDI ; |Arg1
004435A3 . E8 35780900 CALL 機械設計.004DADDD ; \機械設計.004DADDD
;獲取使用者名稱的CALL
004435A8 . 8D5E 78 LEA EBX,DWORD PTR DS:[ESI+78]
004435AB . 53 PUSH EBX ; /Arg3
004435AC . 68 13040000 PUSH 413 ; |Arg2 = 00000413
004435B1 . 57 PUSH EDI ; |Arg1
004435B2 . E8 D4770900 CALL 機械設計.004DAD8B ; \機械設計.004DAD8B
;獲取使用者密碼的CALL
004435B7 . 6A 0A PUSH 0A
004435B9 . 53 PUSH EBX
004435BA . 57 PUSH EDI
004435BB . E8 F1760900 CALL 機械設計.004DACB1
004435C0 . 8D8E 80000000 LEA ECX,DWORD PTR DS:[ESI+80]
004435C6 . 51 PUSH ECX ; /Arg3
004435C7 . 68 ED030000 PUSH 3ED ; |Arg2 = 000003ED
004435CC . 57 PUSH EDI ; |Arg1
004435CD . E8 21750900 CALL 機械設計.004DAAF3 ; \機械設計.004DAAF3
004435D2 . 8D96 D0000000 LEA EDX,DWORD PTR DS:[ESI+D0]
004435D8 . 52 PUSH EDX ; /Arg3
004435D9 . 68 12040000 PUSH 412 ; |Arg2 = 00000412
004435DE . 57 PUSH EDI ; |Arg1
004435DF . E8 0F750900 CALL 機械設計.004DAAF3 ; \機械設計.004DAAF3
004435E4 . 81C6 28010000 ADD ESI,128
004435EA . 56 PUSH ESI ; /Arg3
004435EB . 68 FA030000 PUSH 3FA ; |Arg2 = 000003FA
004435F0 . 57 PUSH EDI ; |Arg1
004435F1 . E8 FD740900 CALL 機械設計.004DAAF3 ; \機械設計.004DAAF3
004435F6 . 5F POP EDI
004435F7 . 5E POP ESI
004435F8 . 5B POP EBX
繼續更來到如下位置可見到生成查詢資料庫的SQL語句:
0044415D . 68 3CA35000 PUSH 機械設計.0050A33C
00444162 . 50 PUSH EAX
00444163 . E8 9862FCFF CALL 機械設計.0040A400
00444168 . 68 2CA35000 PUSH 機械設計.0050A32C ; ASCII "'AND Password='"
0044416D . 50 PUSH EAX
0044416E . 8D4C24 2C LEA ECX,DWORD PTR SS:[ESP+2C]
00444172 . 51 PUSH ECX
00444173 . C74424 44 0100>MOV DWORD PTR SS:[ESP+44],1
0044417B . E8 1000FCFF CALL 機械設計.00404190 ; 連線字串(AND Password=)生成SQL查詢語句
00444180 . 57 PUSH EDI
00444181 . 50 PUSH EAX
00444182 . 8D5424 34 LEA EDX,DWORD PTR SS:[ESP+34]
00444186 . 52 PUSH EDX
00444187 . C64424 50 02 MOV BYTE PTR SS:[ESP+50],2
0044418C . E8 4FFFFBFF CALL 機械設計.004040E0 ; 連線生成SQL查詢語句
00444191 . 68 B02C5000 PUSH 機械設計.00502CB0
00444196 . 50 PUSH EAX
00444197 . 8D4424 3C LEA EAX,DWORD PTR SS:[ESP+3C]
0044419B . 50 PUSH EAX
0044419C . C64424 5C 03 MOV BYTE PTR SS:[ESP+5C],3
004441A1 . E8 EAFFFBFF CALL 機械設計.00404190 ; 連線生成SQL查詢語句
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
(跟進0040190)
004041F9 . 8D4424 30 LEA EAX,DWORD PTR SS:[ESP+30]
004041FD . 50 PUSH EAX
004041FE . E8 FDFBFFFF CALL 機械設計.00403E00 ; 連線生成SQL語句的call
00404203 . 8B7424 34 MOV ESI,DWORD PTR SS:[ESP+34] ;[ESP+34]為生成的sql語句地址
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
0044425B . 8907 MOV DWORD PTR DS:[EDI],EAX ; EAX中為查詢密碼sql語句地址
0044425D . E8 FED10000 CALL 機械設計.00451460
00444262 . A1 ECB75400 MOV EAX,DWORD PTR DS:[54B7EC]
00444267 . 83C4 04 ADD ESP,4
0044426A . 85C0 TEST EAX,EAX
0044426C . 75 0F JNZ SHORT 機械設計.0044427D
0044426E . 68 03400080 PUSH 80004003
00444273 . E8 68740800 CALL 機械設計.004CB6E0
00444278 . A1 ECB75400 MOV EAX,DWORD PTR DS:[54B7EC]
0044427D > 8B08 MOV ECX,DWORD PTR DS:[EAX]
0044427F . 8D5424 10 LEA EDX,DWORD PTR SS:[ESP+10]
00444283 . 52 PUSH EDX
00444284 . 50 PUSH EAX
00444285 . 8BF8 MOV EDI,EAX
00444287 . C74424 18 0000>MOV DWORD PTR SS:[ESP+18],0
0044428F . FF51 50 CALL DWORD PTR DS:[ECX+50] ; 呼叫msADO15.dll
00444292 . 85C0 TEST EAX,EAX
00444294 . 7D 0C JGE SHORT 機械設計.004442A2
00444296 . 68 B01C5000 PUSH 機械設計.00501CB0
0044429B . 57 PUSH EDI
0044429C . 50 PUSH EAX
0044429D . E8 4E740800 CALL 機械設計.004CB6F0
004442A2 > 66:837C24 10 0>CMP WORD PTR SS:[ESP+10],0 ; 判斷是否登入成功
004442A8 . 0F84 36010000 JE 機械設計.004443E4
004442AE . 8B8E 7C010000 MOV ECX,DWORD PTR DS:[ESI+17C]
004442B4 . 83F9 02 CMP ECX,2 ; 比較登入次數
004442B7 . 0F8D 9B000000 JGE 機械設計.00444358
下面為我輸入 1 後在OD中看到的:
01FBA290 73 65 6C 65 63 74 20 2A 20 66 72 6F 6D 20 B5 C7 select * from 登
01FBA2A0 C2 BC D3 C3 BB A7 20 77 68 65 72 65 20 41 6C 69 錄使用者 where Ali
01FBA2B0 61 73 3D 27 41 64 6D 69 6E 69 73 74 65 72 27 41 as='Administer'A
01FBA2C0 4E 44 20 50 61 73 73 77 6F 72 64 3D 27 42 58 27 ND Password='BX'
很明顯: 1 對應密碼為 BX .
我們只需把資料庫中的使用者密碼改為BX,輸入密碼1就可成功登陸.
6.
下面再回過頭來看看其是如何加密使用者密碼的:
0044E660 $ 6A FF PUSH -1
0044E662 . 68 C8754F00 PUSH 機械設計.004F75C8 ; SE handler installation
0044E667 . 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
0044E66D . 50 PUSH EAX
0044E66E . 64:8925 000000>MOV DWORD PTR FS:[0],ESP
0044E675 . 83EC 1C SUB ESP,1C
0044E678 . 53 PUSH EBX
0044E679 . 55 PUSH EBP
0044E67A . 56 PUSH ESI
0044E67B . 33F6 XOR ESI,ESI
0044E67D . 57 PUSH EDI
0044E67E . 897424 28 MOV DWORD PTR SS:[ESP+28],ESI
0044E682 . 897424 34 MOV DWORD PTR SS:[ESP+34],ESI
0044E686 . E8 884D0800 CALL 機械設計.004D3413
0044E68B . 8B10 MOV EDX,DWORD PTR DS:[EAX]
0044E68D . 8BC8 MOV ECX,EAX
0044E68F . FF52 0C CALL DWORD PTR DS:[EDX+C]
0044E692 . 83C0 10 ADD EAX,10
0044E695 . 894424 14 MOV DWORD PTR SS:[ESP+14],EAX
0044E699 . C64424 34 01 MOV BYTE PTR SS:[ESP+34],1
0044E69E . E8 704D0800 CALL 機械設計.004D3413
0044E6A3 . 8B10 MOV EDX,DWORD PTR DS:[EAX]
0044E6A5 . 8BC8 MOV ECX,EAX
0044E6A7 . FF52 0C CALL DWORD PTR DS:[EDX+C]
0044E6AA . 8D58 10 LEA EBX,DWORD PTR DS:[EAX+10]
0044E6AD . 895C24 18 MOV DWORD PTR SS:[ESP+18],EBX
0044E6B1 . 8D4424 40 LEA EAX,DWORD PTR SS:[ESP+40]
0044E6B5 . 50 PUSH EAX
0044E6B6 . 8D4C24 18 LEA ECX,DWORD PTR SS:[ESP+18]
0044E6BA . C64424 38 02 MOV BYTE PTR SS:[ESP+38],2
0044E6BF . E8 4C59FBFF CALL 機械設計.00404010
0044E6C4 . 8B4424 40 MOV EAX,DWORD PTR SS:[ESP+40] ; [ESP+40]]為輸入密碼地址
0044E6C8 . 3970 F4 CMP DWORD PTR DS:[EAX-C],ESI
0044E6CB . 8B6C24 14 MOV EBP,DWORD PTR SS:[ESP+14] ; [ESP+14]為輸入密碼地址
0044E6CF . 7E 5A JLE SHORT 機械設計.0044E72B
; 迴圈開始
0044E6D1 > 8A0C06 MOV CL,BYTE PTR DS:[ESI+EAX] ; 依次取輸入密碼每一位ASCII碼送CL
0044E6D4 . 8B7D F4 MOV EDI,DWORD PTR SS:[EBP-C] ; [EBP-C]中為輸入密碼長度
0044E6D7 . 884C24 13 MOV BYTE PTR SS:[ESP+13],CL ; 密碼ASCII碼送[ESP+13]
0044E6DB . 837D FC 01 CMP DWORD PTR SS:[EBP-4],1
0044E6DF . 7E 14 JLE SHORT 機械設計.0044E6F5
0044E6E1 . 8BD7 MOV EDX,EDI
0044E6E3 . 52 PUSH EDX
0044E6E4 . 8D4C24 18 LEA ECX,DWORD PTR SS:[ESP+18]
0044E6E8 . E8 A330FBFF CALL 機械設計.00401790
0044E6ED . 8B6C24 14 MOV EBP,DWORD PTR SS:[ESP+14] ; 輸入密碼地址送EBP
0044E6F1 . 8B4424 40 MOV EAX,DWORD PTR SS:[ESP+40] ; 輸入密碼地址送EAX
0044E6F5 > 8A4C24 45 MOV CL,BYTE PTR SS:[ESP+45] ; 取變數[ESP+44]記憶體中第二位元組(即十六進位制值高8位)
0044E6F9 . 324C24 13 XOR CL,BYTE PTR SS:[ESP+13] ; CL 異或 每位密碼ASCII碼
0044E6FD . 880C2E MOV BYTE PTR DS:[ESI+EBP],CL ; 用異或值代替原密碼
0044E700 . 8B4C24 44 MOV ECX,DWORD PTR SS:[ESP+44]
0044E704 . 897D F4 MOV DWORD PTR SS:[EBP-C],EDI ; 密碼長度送[EBP-C]
0044E707 . C6042F 00 MOV BYTE PTR DS:[EDI+EBP],0
0044E70B . 66:0FB6142E MOVZX DX,BYTE PTR DS:[ESI+EBP] ; 依次取輸入密碼每一位ASCII碼送DX
0044E710 . 03D1 ADD EDX,ECX
0044E712 . 69D2 93310000 IMUL EDX,EDX,3193 ; EDX=EDX*3193
0044E718 . B9 BF580000 MOV ECX,58BF ; ECX=58BF
0044E71D . 2BCA SUB ECX,EDX ; ECX=ECX-EDX
0044E71F . 894C24 44 MOV DWORD PTR SS:[ESP+44],ECX ; ECX送變數[ESP+44]
0044E723 . 8B48 F4 MOV ECX,DWORD PTR DS:[EAX-C] ; 輸入密碼長度送ECX
0044E726 . 46 INC ESI ; 計數器加1
0044E727 . 3BF1 CMP ESI,ECX ; 比較迴圈次數
0044E729 .^7C A6 JL SHORT 機械設計.0044E6D1
..........................................
........................................(略)
.........................................
下面程式把密碼位一個字元轉換為兩個字元.
0044E7C8 . 85C9 TEST ECX,ECX
0044E7CA . C74424 20 0000>MOV DWORD PTR SS:[ESP+20],0
0044E7D2 . 0F8E 15010000 JLE 機械設計.0044E8ED
0044E7D8 . EB 06 JMP SHORT 機械設計.0044E7E0
0044E7DA > 8B4424 40 MOV EAX,DWORD PTR SS:[ESP+40] ; 迴圈開始
0044E7DE . 8BFF MOV EDI,EDI
0044E7E0 > 8B4C24 20 MOV ECX,DWORD PTR SS:[ESP+20]
0044E7E4 . 0FB63C01 MOVZX EDI,BYTE PTR DS:[ECX+EAX] ; 依次前面經過轉換後密碼每一位ASCII碼送CL
0044E7E8 . B8 B8BA5000 MOV EAX,機械設計.0050BAB8 ; ASCII "12"
0044E7ED . 8D50 01 LEA EDX,DWORD PTR DS:[EAX+1]
0044E7F0 > 8A08 MOV CL,BYTE PTR DS:[EAX]
0044E7F2 . 40 INC EAX
0044E7F3 . 84C9 TEST CL,CL
0044E7F5 .^75 F9 JNZ SHORT 機械設計.0044E7F0
0044E7F7 . 2BC2 SUB EAX,EDX
0044E7F9 . 50 PUSH EAX
0044E7FA . 68 B8BA5000 PUSH 機械設計.0050BAB8 ; ASCII "12"
0044E7FF . 8D4C24 20 LEA ECX,DWORD PTR SS:[ESP+20]
0044E803 . E8 7854FBFF CALL 機械設計.00403C80
0044E808 . 8B5C24 18 MOV EBX,DWORD PTR SS:[ESP+18]
0044E80C . 837B FC 01 CMP DWORD PTR DS:[EBX-4],1
0044E810 . 8B73 F4 MOV ESI,DWORD PTR DS:[EBX-C]
0044E813 . 7E 10 JLE SHORT 機械設計.0044E825
0044E815 . 8BD6 MOV EDX,ESI
0044E817 . 52 PUSH EDX
0044E818 . 8D4C24 1C LEA ECX,DWORD PTR SS:[ESP+1C]
0044E81C . E8 6F2FFBFF CALL 機械設計.00401790
0044E821 . 8B5C24 18 MOV EBX,DWORD PTR SS:[ESP+18]
0044E825 > 8BC7 MOV EAX,EDI ; 密碼位ASCII碼送EAX
0044E827 . 99 CDQ
0044E828 . B9 1A000000 MOV ECX,1A
0044E82D . F7F9 IDIV ECX ; 與1A相除
0044E82F . 04 41 ADD AL,41 ; 加41
0044E831 . 8803 MOV BYTE PTR DS:[EBX],AL ; 儲存結果字元1
0044E833 . 8973 F4 MOV DWORD PTR DS:[EBX-C],ESI
0044E836 . C6041E 00 MOV BYTE PTR DS:[ESI+EBX],0
0044E83A . 837B FC 01 CMP DWORD PTR DS:[EBX-4],1
0044E83E . 8B73 F4 MOV ESI,DWORD PTR DS:[EBX-C]
0044E841 . 895424 24 MOV DWORD PTR SS:[ESP+24],EDX
0044E845 . 7E 14 JLE SHORT 機械設計.0044E85B
0044E847 . 8BD6 MOV EDX,ESI
0044E849 . 52 PUSH EDX
0044E84A . 8D4C24 1C LEA ECX,DWORD PTR SS:[ESP+1C]
0044E84E . E8 3D2FFBFF CALL 機械設計.00401790
0044E853 . 8B5C24 18 MOV EBX,DWORD PTR SS:[ESP+18]
0044E857 . 8B5424 24 MOV EDX,DWORD PTR SS:[ESP+24]
0044E85B > 80C2 41 ADD DL,41 ; 上面相除餘數加41
0044E85E . 8853 01 MOV BYTE PTR DS:[EBX+1],DL ; 儲存結果到字元2
0044E861 . 8973 F4 MOV DWORD PTR DS:[EBX-C],ESI
0044E864 . C6041E 00 MOV BYTE PTR DS:[ESI+EBX],0
0044E868 . 8B53 F4 MOV EDX,DWORD PTR DS:[EBX-C]
0044E86B . 8B7D F4 MOV EDI,DWORD PTR SS:[EBP-C]
0044E86E . 8D0417 LEA EAX,DWORD PTR DS:[EDI+EDX]
0044E871 . 894424 1C MOV DWORD PTR SS:[ESP+1C],EAX
0044E875 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0044E878 . B9 01000000 MOV ECX,1
0044E87D . 2BC8 SUB ECX,EAX
0044E87F . 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
0044E882 . 2B4424 1C SUB EAX,DWORD PTR SS:[ESP+1C]
0044E886 . 8BF3 MOV ESI,EBX
0044E888 . 2BF5 SUB ESI,EBP
0044E88A . 0BC1 OR EAX,ECX
0044E88C . 895424 28 MOV DWORD PTR SS:[ESP+28],EDX
0044E890 . 895C24 24 MOV DWORD PTR SS:[ESP+24],EBX
0044E894 . 7D 16 JGE SHORT 機械設計.0044E8AC
0044E896 . 8B4C24 1C MOV ECX,DWORD PTR SS:[ESP+1C]
0044E89A . 51 PUSH ECX
0044E89B . 8D4C24 18 LEA ECX,DWORD PTR SS:[ESP+18]
0044E89F . E8 CC38FBFF CALL 機械設計.00402170
0044E8A4 . 8B6C24 14 MOV EBP,DWORD PTR SS:[ESP+14]
0044E8A8 . 8B5424 28 MOV EDX,DWORD PTR SS:[ESP+28]
0044E8AC > 3BF7 CMP ESI,EDI
0044E8AE . 77 06 JA SHORT 機械設計.0044E8B6
0044E8B0 . 03F5 ADD ESI,EBP
0044E8B2 . 897424 24 MOV DWORD PTR SS:[ESP+24],ESI
0044E8B6 > 8B7424 24 MOV ESI,DWORD PTR SS:[ESP+24]
0044E8BA . 8B4424 1C MOV EAX,DWORD PTR SS:[ESP+1C]
0044E8BE . 8BCA MOV ECX,EDX
0044E8C0 . C1E9 02 SHR ECX,2
0044E8C3 . 03FD ADD EDI,EBP
0044E8C5 . F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PT>
0044E8C7 . 8BCA MOV ECX,EDX
0044E8C9 . 83E1 03 AND ECX,3
0044E8CC . F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR >
0044E8CE . 8B4C24 40 MOV ECX,DWORD PTR SS:[ESP+40]
0044E8D2 . 8945 F4 MOV DWORD PTR SS:[EBP-C],EAX
0044E8D5 . C60428 00 MOV BYTE PTR DS:[EAX+EBP],0
0044E8D9 . 8B4424 20 MOV EAX,DWORD PTR SS:[ESP+20]
0044E8DD . 8B51 F4 MOV EDX,DWORD PTR DS:[ECX-C]
0044E8E0 . 40 INC EAX
0044E8E1 . 3BC2 CMP EAX,EDX ; 比較迴圈次數
0044E8E3 . 894424 20 MOV DWORD PTR SS:[ESP+20],EAX
0044E8E7 .^0F8C EDFEFFFF JL 機械設計.0044E7DA
7.登入時發現輸入正確管理員密碼後,登入介面“管理員”灰色按被啟用,
點選後彈出一個介面可以完成如下功能:
新增使用者 。。。。。。。。。。。
刪除使用者
解密使用者 ......................(可以得到其它使用者密碼)
解金鑰 ......................(機器碼)
解密機使用者碼......................(可以生成註冊碼,序號產生器都不用寫啦!!!!)
我用解密使用者得到:
Administer 密碼 EPAPFDGGDBFVBKFMGW 對應明文密碼 wtflfoFEI
用上面軟體提供註冊供能還是不能註冊(軟體有bug).
8.
對 READFILE 函式設斷可看到程式啟動時時如何判斷是否註冊的:
00451CD0 . 6A 0A PUSH 0A ; /Arg2 = 0000000A
00451CD2 . 8D4D 80 LEA ECX,DWORD PTR SS:[EBP-80] ; |
00451CD5 . 51 PUSH ECX ; |Arg1
00451CD6 . 8D4D D0 LEA ECX,DWORD PTR SS:[EBP-30] ; |
00451CD9 . E8 811C0800 CALL 機械設計.004D395FSS:[ ; \機械設計.004D395F395F
;該CALL讀取檔案尾部儲存註冊碼
00451CDE . 8D4D D0 LEA ECX,DWORD PTR SS:[EBP-30]
00451CE1 . E8 0A1F0800 CALL 機械設計.004D3BF0SS:[
00451CE6 . 8D55 80 LEA EDX,DWORD PTR SS:[EBP-80]
00451CE9 . 52 PUSH EDX
00451CEA . E8 5E9D0600 CALL 機械設計.004BBA4D
00451CEF . 83C4 04 ADD ESP,4
00451CF2 . 6A 0A PUSH 0A ; /pFileSystemNameSize = 0000000A
00451CF4 . 6A 00 PUSH 0 ; |pFileSystemNameBuffer = NULL
00451CF6 . 6A 00 PUSH 0 ; |pFileSystemFlags = NULL
00451CF8 . 6A 00 PUSH 0 ; |pMaxFilenameLength = NULL
00451CFA . 8BF8 MOV EDI,EAX ; |
00451CFC . 8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20] ; |
00451CFF . 50 PUSH EAX ; |pVolumeSerialNumber
00451D00 . 6A 0C PUSH 0C ; |MaxVolumeNameSize = C (12.)
00451D02 . 6A 00 PUSH 0 ; |VolumeNameBuffer = NULL
00451D04 . 68 4CA55000 PUSH 機械設計.0050A54C= NU ; |RootPathName = "c:\"
00451D09 . 81F7 E3E5688F XOR EDI,8F68E5E3 ;註冊碼與8F68E5E3異或
00451D0F . FF15 54135000 CALL DWORD PTR DS:[<&KERNEL32.GetVolumeI>; \GetVolumeInformationA
;得到C盤序列號
00451D15 . 3B7D E0 CMP EDI,DWORD PTR SS:[EBP-20] ;比較C盤序列號與上面異或值是否相等
;相等就是已註冊
00451D18 . 74 34 JE SHORT 機械設計.00451D4E ;爆破改這裡
00451D1A . 6A 00 PUSH 0
00451D1C . 8D8D 24FDFFFF LEA ECX,DWORD PTR SS:[EBP-2DC]
00451D22 . C605 A5B55400 >MOV BYTE PTR DS:[54B5A5],0 ;註冊標誌變數[54B5A5]賦0
00451D29 . E8 62630000 CALL 機械設計.004580904B5A
00451D2E . 8D8D 24FDFFFF LEA ECX,DWORD PTR SS:[EBP-2DC]
00451D34 . C645 FC 08 MOV BYTE PTR SS:[EBP-4],8
00451D38 . E8 DCCB0700 CALL 機械設計.004CE919BP-4
00451D3D . 8D8D 24FDFFFF LEA ECX,DWORD PTR SS:[EBP-2DC]
00451D43 . C645 FC 07 MOV BYTE PTR SS:[EBP-4],7
00451D47 . E8 04610000 CALL 機械設計.00457E50BP-4
00451D4C . EB 07 JMP SHORT 機械設計.00451D55
00451D4E > C605 A5B55400 >MOV BYTE PTR DS:[54B5A5],1 ;註冊標誌變數[54B5A5]賦1
00451D55 > 8B4E 1C MOV ECX,DWORD PTR DS:[ESI+1C]
00451D58 . 6A 03 PUSH 3
00451D5A . E8 2C0B0800 CALL 機械設計.004D288B
00451D5F . A0 A5B55400 MOV AL,BYTE PTR DS:[54B5A5]
00451D64 . 84C0 TEST AL,AL
00451D66 . 74 66 JE SHORT 機械設計.00451DCE
總結: 軟體註冊碼就是C盤序列號與8F68E5E3異或值的十進位制數,儲存在檔案最後10個位元組就可成功註冊.
Administer 密碼 wtflfoFEI
相關文章
- OICQ HACK 1.0 破解過程 (9千字)2001-04-23
- webeasymail的簡單破解過程 (2千字)2001-08-04WebAI
- fulldisk A32 破解過程!(簡單) (1千字)2001-03-20
- PowerArchiver破解過程。2015-11-15Hive
- 貫通詞典破解過程2004-12-20
- 破解FlashGet1.65的過程2015-11-15
- 系統機械師SysMechanic 3.6d的破解 (13千字)2001-08-27
- 簡單演算法---A Speeder
V2.5破解的簡要分析!2015-11-15演算法
- 管家婆8.2單機版加密狗破解過程 (3千字)2001-10-13加密
- 破解<<破解堅盾磁碟加密系統 V4.0>>的全過程 (10千字)2001-10-23加密
- RegSnap 2.6破解過程 (610字)2001-02-17
- powerarchiver 8.00.58 之不完全破解+簡單演算法分析2015-11-15Hive演算法
- Excel密碼破解超簡單?這樣加密別想破解2012-07-09Excel密碼加密
- 破解Offline Explorer1.3實戰錄(簡單) (1千字)2000-09-04
- 我終於破解了魔裝網神了,破解過程!!,不過是用2.70破解的。 (1千字)2001-10-15
- CS V.J破解實錄2000-09-10
- JRebel 破解最簡單的使用2021-09-30
- Hash破解神器:Hashcat的簡單使用2017-01-11
- BananaSplitter 1.0破解實戰 (10千字)2000-09-11NaN
- 閒來無聊,寫下話費清單精簡版破解過程 (4千字)2001-05-05
- PE-explorer 1.4 的簡要破解過程(1千字)2001-08-08
- 一個SQL Server Sa密碼破解的儲存過程2009-02-05SQLServer密碼儲存過程
- ufony破解記錄2004-06-06
- 魔術情書
6.55 破解過程+不脫殼打破解補丁【原創】2004-12-07
- CUTEVIDEO 1.0破解 (4千字)2002-02-28IDE
- Nullz CrackMe 1.1破解過程 (13千字)2001-09-18Null
- WebTimeSync 5.2.0 破解過程 (14千字)2001-10-05Web
- 凱撒密碼加解密過程與破解原理2024-07-10密碼解密
- Android破解實戰:遊戲蜂窩3.21版本破解記錄2018-09-17Android遊戲
- 簡單的數字驗證碼破解2020-12-19
- flashsoft得簡單破解 (6千字)2001-05-26
- myeclipse2017破解過程以及遇到的破解失敗的問題2018-09-13Eclipse
- 很好的英語學習軟體
突破單詞破解過程詳解2004-05-25
- 簡單介紹Python迷宮生成和迷宮破解演算法2020-04-24Python演算法
- supercleaner 2.0 超酷的系統清潔工具破解過程!
(3千字)2001-03-23
- iTime 破解實錄 (15千字)2001-04-26
- 中興ZXV10B860AV2.1-A破解過程2019-02-02
- MySQL下載安裝全過程(包含Navicat破解)2017-05-26MySql