心理測試小精靈 3.5演算法分析
【破解作者】 qhst/老蟲子[D.4s][CZG]
【作者主頁】 http://free.aofa.net/www/qhst/index.htm
【使用工具】 od,W32,AspackDie141
【破解平臺】 Win9x/NT/2000/XP
【軟體名稱】 心理測試小精靈 3.5
【下載地址】 http://www.onlinedown.net/soft/1356.htm
【軟體簡介】 包納天下所有趣味測試題。有心理、愛情、搞笑、個性、魅力、智力、情商、工作、能力、兩性等幾個類別幾百道趣味測試題,新版本增加了很多心理方面的文章,希望能幫助一些朋友。題庫可每月上網更新。用這個軟體的神奇功能還可以讓你偷偷測知到其他人的內心世界喲!非常的好玩!你還可以利用這個軟體新增你自己的題庫。強烈推薦!
【軟體大小】 1355KB
【加殼方式】 ASPack 2.12
【破解宣告】 我是一隻小菜鳥,偶得一點心得,願與大家分享:)
--------------------------------------------------------------------------------
【破解內容】
PEID查殼,ASPack 2.12 -> Alexey Solodovnikov,用脫殼機脫殼成功,是Borland Delphi 6.0 - 7.0編寫的軟體,執行軟體輸入使用者名稱和假碼後點註冊跳出註冊失敗提示,用W32反彙編查詢字串"註冊失敗",雙擊來到
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004B47A0(C)――――――――――――――――――――――從這裡跳來
|
:004B4856 A1584C4C00 mov eax, dword ptr [004C4C58]
:004B485B 8B00 mov eax, dword ptr [eax]
* Possible StringData Ref from Code Obj ->"註冊失敗"
|
:004B485D BA7C494B00 mov edx, 004B497C ――――――來到這裡
:004B4862 E889EFF8FF call 004437F0
:004B4867 A1584C4C00 mov eax, dword ptr [004C4C58]
:004B486C 8B00 mov eax, dword ptr [eax]
:004B486E 8B80F4020000 mov eax, dword ptr [eax+000002F4]
======================================================================
向上找到跳來的地址004B47A0,用OD載入,在上面的4B4744處下斷點,輸入使用者名稱laochongzi, 假碼123456789後中斷下來。
004B4744 /. 55 PUSH EBP
004B4745 |. 8BEC MOV EBP,ESP
004B4747 |. 33C9 XOR ECX,ECX
004B4749 |. 51 PUSH ECX
004B474A |. 51 PUSH ECX
004B474B |. 51 PUSH ECX
004B474C |. 51 PUSH ECX
004B474D |. 53 PUSH EBX
004B474E |. 56 PUSH ESI
004B474F |. 57 PUSH EDI
004B4750 |. 8BD8 MOV EBX,EAX
004B4752 |. 33C0 XOR EAX,EAX
004B4754 |. 55 PUSH EBP
004B4755 |. 68 CD484B00 PUSH Unpacked.004B48CD
004B475A |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004B475D |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004B4760 |. A1 78514C00 MOV EAX,DWORD PTR DS:[4C5178]
004B4765 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004B4767 |. E8 90AC0000 CALL Unpacked.004BF3FC
004B476C |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
004B476F |. 8B83 F8020000 MOV EAX,DWORD PTR DS:[EBX+2F8]
004B4775 |. E8 46F0F8FF CALL Unpacked.004437C0
004B477A |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8] ; 取使用者名稱laochongzi
004B477D |. 8D4D FC LEA ECX,DWORD PTR SS:[EBP-4]
004B4780 |. 8BC3 MOV EAX,EBX
004B4782 |. E8 49020000 CALL Unpacked.004B49D0 ; 演算法CALL,跟進去
004B4787 |. 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
004B478A |. 8B83 FC020000 MOV EAX,DWORD PTR DS:[EBX+2FC]
004B4790 |. E8 2BF0F8FF CALL Unpacked.004437C0
004B4795 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] ; 取假碼123456789
004B4798 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] ; 取真碼
004B479B |. E8 F403F5FF CALL Unpacked.00404B94 ; 進行比較,真碼在EDX,做記憶體序號產生器的地址
004B47A0 |. 0F85 B0000000 JNZ Unpacked.004B4856 ; 不相等則OVER
004B47A6 |. 8B0D 4C4F4C00 MOV ECX,DWORD PTR DS:[4C4F4C] ; Unpacked.004C6E34
004B47AC |. 8B09 MOV ECX,DWORD PTR DS:[ECX]
004B47AE |. B2 01 MOV DL,1
004B47B0 |. A1 94464600 MOV EAX,DWORD PTR DS:[464694]
004B47B5 |. E8 8AFFFAFF CALL Unpacked.00464744
004B47BA |. 8BF0 MOV ESI,EAX
004B47BC |. 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
004B47BF |. 8B83 F8020000 MOV EAX,DWORD PTR DS:[EBX+2F8]
004B47C5 |. E8 F6EFF8FF CALL Unpacked.004437C0
004B47CA |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
004B47CD |. 50 PUSH EAX
004B47CE |. B9 E4484B00 MOV ECX,Unpacked.004B48E4 ; ASCII "username"
004B47D3 |. BA F8484B00 MOV EDX,Unpacked.004B48F8 ; ASCII "inifile"
004B47D8 |. 8BC6 MOV EAX,ESI
004B47DA |. 8B38 MOV EDI,DWORD PTR DS:[EAX]
004B47DC |. FF57 04 CALL DWORD PTR DS:[EDI+4]
004B47DF |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004B47E2 |. 50 PUSH EAX
004B47E3 |. B9 08494B00 MOV ECX,Unpacked.004B4908 ; ASCII "regcode"
004B47E8 |. BA F8484B00 MOV EDX,Unpacked.004B48F8 ; ASCII "inifile"
004B47ED |. 8BC6 MOV EAX,ESI
004B47EF |. 8B38 MOV EDI,DWORD PTR DS:[EAX]
004B47F1 |. FF57 04 CALL DWORD PTR DS:[EDI+4]
004B47F4 |. 8BC6 MOV EAX,ESI
004B47F6 |. E8 51F1F4FF CALL Unpacked.0040394C
004B47FB |. A1 704F4C00 MOV EAX,DWORD PTR DS:[4C4F70]
004B4800 |. C600 01 MOV BYTE PTR DS:[EAX],1
004B4803 |. A1 78514C00 MOV EAX,DWORD PTR DS:[4C5178]
004B4808 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004B480A |. BA 18494B00 MOV EDX,Unpacked.004B4918
004B480F |. E8 DCEFF8FF CALL Unpacked.004437F0
004B4814 |. A1 584C4C00 MOV EAX,DWORD PTR DS:[4C4C58]
004B4819 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004B481B |. BA 30494B00 MOV EDX,Unpacked.004B4930
004B4820 |. E8 CBEFF8FF CALL Unpacked.004437F0
004B4825 |. A1 584C4C00 MOV EAX,DWORD PTR DS:[4C4C58]
004B482A |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004B482C |. 8B80 F4020000 MOV EAX,DWORD PTR DS:[EAX+2F4]
004B4832 |. B9 40494B00 MOV ECX,Unpacked.004B4940
004B4837 |. BA FBFDFFFF MOV EDX,-205
004B483C |. E8 EF5CFBFF CALL Unpacked.0046A530
004B4841 |. A1 584C4C00 MOV EAX,DWORD PTR DS:[4C4C58]
004B4846 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004B4848 |. E8 2FB4FAFF CALL Unpacked.0045FC7C
004B484D |. 8BC3 MOV EAX,EBX
004B484F |. E8 80B2FAFF CALL Unpacked.0045FAD4
004B4854 |. EB 39 JMP SHORT Unpacked.004B488F
004B4856 |> A1 584C4C00 MOV EAX,DWORD PTR DS:[4C4C58]
004B485B |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004B485D |. BA 7C494B00 MOV EDX,Unpacked.004B497C
004B4862 |. E8 89EFF8FF CALL Unpacked.004437F0
004B4867 |. A1 584C4C00 MOV EAX,DWORD PTR DS:[4C4C58]
004B486C |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004B486E |. 8B80 F4020000 MOV EAX,DWORD PTR DS:[EAX+2F4]
004B4874 |. B9 8C494B00 MOV ECX,Unpacked.004B498C
004B4879 |. BA FBFDFFFF MOV EDX,-205
004B487E |. E8 AD5CFBFF CALL Unpacked.0046A530
004B4883 |. A1 584C4C00 MOV EAX,DWORD PTR DS:[4C4C58]
004B4888 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004B488A |. E8 EDB3FAFF CALL Unpacked.0045FC7C
004B488F |> FE05 8C6D4C00 INC BYTE PTR DS:[4C6D8C]
004B4895 |. 803D 8C6D4C00>CMP BYTE PTR DS:[4C6D8C],3
004B489C |. 72 0C JB SHORT Unpacked.004B48AA
004B489E |. A1 14504C00 MOV EAX,DWORD PTR DS:[4C5014]
004B48A3 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004B48A5 |. E8 4AE9FAFF CALL Unpacked.004631F4
004B48AA |> 33C0 XOR EAX,EAX
004B48AC |. 5A POP EDX
004B48AD |. 59 POP ECX
004B48AE |. 59 POP ECX
004B48AF |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
004B48B2 |. 68 D4484B00 PUSH Unpacked.004B48D4
004B48B7 |> 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
004B48BA |. BA 03000000 MOV EDX,3
004B48BF |. E8 F8FEF4FF CALL Unpacked.004047BC
004B48C4 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
004B48C7 |. E8 CCFEF4FF CALL Unpacked.00404798
004B48CC \. C3 RETN
===================================================================
演算法CALL內
004B49D0 /$ 55 PUSH EBP
004B49D1 |. 8BEC MOV EBP,ESP
004B49D3 |. 51 PUSH ECX
004B49D4 |. B9 06000000 MOV ECX,6
004B49D9 |> 6A 00 /PUSH 0
004B49DB |. 6A 00 |PUSH 0
004B49DD |. 49 |DEC ECX
004B49DE |.^ 75 F9 \JNZ SHORT Unpacked.004B49D9
004B49E0 |. 51 PUSH ECX
004B49E1 |. 874D FC XCHG DWORD PTR SS:[EBP-4],ECX
004B49E4 |. 53 PUSH EBX
004B49E5 |. 56 PUSH ESI
004B49E6 |. 57 PUSH EDI
004B49E7 |. 894D F8 MOV DWORD PTR SS:[EBP-8],ECX
004B49EA |. 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
004B49ED |. 8BD8 MOV EBX,EAX
004B49EF |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004B49F2 |. E8 4102F5FF CALL Unpacked.00404C38
004B49F7 |. 33C0 XOR EAX,EAX
004B49F9 |. 55 PUSH EBP
004B49FA |. 68 A04C4B00 PUSH Unpacked.004B4CA0
004B49FF |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004B4A02 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004B4A05 |. 8D55 D8 LEA EDX,DWORD PTR SS:[EBP-28]
004B4A08 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004B4A0B |. E8 D843F5FF CALL Unpacked.00408DE8
004B4A10 |. 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28] ; 取使用者名稱放EDX
004B4A13 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
004B4A16 |. E8 15FEF4FF CALL Unpacked.00404830
004B4A1B |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 取使用者放EAX
004B4A1E |. E8 2D00F5FF CALL Unpacked.00404A50
004B4A23 |. 8BF8 MOV EDI,EAX ; 使用者名稱位數放EDI
004B4A25 |. BE EE8D1E00 MOV ESI,1E8DEE ; ESI=1E8DEE
004B4A2A |. 85FF TEST EDI,EDI
004B4A2C |. 75 15 JNZ SHORT Unpacked.004B4A43
004B4A2E |. 8B83 F8020000 MOV EAX,DWORD PTR DS:[EBX+2F8]
004B4A34 |. BA B84C4B00 MOV EDX,Unpacked.004B4CB8
004B4A39 |. E8 B2EDF8FF CALL Unpacked.004437F0
004B4A3E |. E9 2D020000 JMP Unpacked.004B4C70
004B4A43 |> 83FF 32 CMP EDI,32 ; 比較使用者名稱位數是否小於32
004B4A46 |. 7E 1B JLE SHORT Unpacked.004B4A63
004B4A48 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
004B4A4B |. 50 PUSH EAX
004B4A4C |. B9 32000000 MOV ECX,32
004B4A51 |. BA 01000000 MOV EDX,1
004B4A56 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004B4A59 |. E8 4A02F5FF CALL Unpacked.00404CA8
004B4A5E |. BF 32000000 MOV EDI,32
004B4A63 |> 85FF TEST EDI,EDI
004B4A65 |. 0F8E FA010000 JLE Unpacked.004B4C65
004B4A6B |. 83FF 32 CMP EDI,32 ; 比較使用者名稱位數是否大於32
004B4A6E |. 0F8F F1010000 JG Unpacked.004B4C65
004B4A74 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004B4A77 |. 8A18 MOV BL,BYTE PTR DS:[EAX] ; 取使用者名稱第一位的ASCII碼值放BL
004B4A79 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004B4A7C |. 8A4438 FF MOV AL,BYTE PTR DS:[EAX+EDI-1] ; 取最後一位的ASCII碼值放AL
004B4A80 |. 8845 F7 MOV BYTE PTR SS:[EBP-9],AL ; 送入堆疊
004B4A83 |. 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
004B4A86 |. 33C0 XOR EAX,EAX ; EAX清零
004B4A88 |. 8AC3 MOV AL,BL ; 第一位的值送入AL=6C
004B4A8A |. E8 7546F5FF CALL Unpacked.00409104
004B4A8F |. 8D55 EC LEA EDX,DWORD PTR SS:[EBP-14]
004B4A92 |. 33C0 XOR EAX,EAX
004B4A94 |. 8A45 F7 MOV AL,BYTE PTR SS:[EBP-9] ; 最後一位的值69送AL
004B4A97 |. E8 6846F5FF CALL Unpacked.00409104
004B4A9C |. 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
004B4A9F |. 50 PUSH EAX
004B4AA0 |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
004B4AA3 |. E8 A8FFF4FF CALL Unpacked.00404A50 ; 第一位的值6C轉成十進位制數108
004B4AA8 |. 8BD0 MOV EDX,EAX ; EDX=第一位的ASCII值轉十進位制後的位數3
004B4AAA |. B9 01000000 MOV ECX,1
004B4AAF |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
004B4AB2 |. E8 F101F5FF CALL Unpacked.00404CA8
004B4AB7 |. 8B45 D4 MOV EAX,DWORD PTR SS:[EBP-2C]
004B4ABA |. E8 A946F5FF CALL Unpacked.00409168
004B4ABF |. 8BD8 MOV EBX,EAX
004B4AC1 |. 8D45 D0 LEA EAX,DWORD PTR SS:[EBP-30]
004B4AC4 |. 50 PUSH EAX
004B4AC5 |. 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14] ; 最後一位的值轉十進位制105
004B4AC8 |. E8 83FFF4FF CALL Unpacked.00404A50
004B4ACD |. 8BD0 MOV EDX,EAX ; EDX=最後一位的ASCII值轉十進位制後的位數3
004B4ACF |. B9 01000000 MOV ECX,1 ; ECX=1
004B4AD4 |. 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14] ; 105進EAX
004B4AD7 |. E8 CC01F5FF CALL Unpacked.00404CA8
004B4ADC |. 8B45 D0 MOV EAX,DWORD PTR SS:[EBP-30]
004B4ADF |. E8 8446F5FF CALL Unpacked.00409168
004B4AE4 |. 33D2 XOR EDX,EDX
004B4AE6 |. 8AD3 MOV DL,BL ; 108最後一位的值8放入DL
004B4AE8 |. 69D2 BD070000 IMUL EDX,EDX,7BD ; EDX=8*7BD=3DE8
004B4AEE |. 25 FF000000 AND EAX,0FF ; 105最後一位的值5與0FF做AND運算=5
004B4AF3 |. 0FAFD0 IMUL EDX,EAX ; 5*3DE8=13588
004B4AF6 |. 8955 E0 MOV DWORD PTR SS:[EBP-20],EDX ; 13588送入堆疊
004B4AF9 |. 8BC7 MOV EAX,EDI ; 使用者名稱位數A放入EAX
004B4AFB |. 84C0 TEST AL,AL
004B4AFD |. 76 3C JBE SHORT Unpacked.004B4B3B
004B4AFF |. 8845 DF MOV BYTE PTR SS:[EBP-21],AL ; AL的值0A放入堆疊
004B4B02 |. B3 01 MOV BL,1 ; BL=1
004B4B04 |> 8BC3 /MOV EAX,EBX ; 依次取使用者名稱的位數
004B4B06 |. 48 |DEC EAX ; 減1
004B4B07 |. 2C 05 |SUB AL,5 ; 減5,小於則跳; Switch (cases 0..31)
004B4B09 |. 72 06 |JB SHORT Unpacked.004B4B11
004B4B0B |. 2C 2D |SUB AL,2D ; 減2D小於則跳
004B4B0D |. 72 18 |JB SHORT Unpacked.004B4B27
004B4B0F |. EB 24 |JMP SHORT Unpacked.004B4B35
004B4B11 |> 33C0 |XOR EAX,EAX ; Cases 0,1,2,3,4 of switch 004B4B07
004B4B13 |. 8AC3 |MOV AL,BL
004B4B15 |. 8B55 FC |MOV EDX,DWORD PTR SS:[EBP-4] ; 取使用者名稱放EDX
004B4B18 |. 0FB64402 FF |MOVZX EAX,BYTE PTR DS:[EDX+EAX->; 依次取使用者每一位的ASCII碼值,取到第5位
004B4B1D |. 33D2 |XOR EDX,EDX ; EDX清零
004B4B1F |. 8AD3 |MOV DL,BL ; 依次取位數
004B4B21 |. F7EA |IMUL EDX ; 使用者名稱每一位的值與位數相乘
004B4B23 |. 03F0 |ADD ESI,EAX ; 累加起來再加上1E8DEE的結果儲存在ESI
004B4B25 |. EB 0E |JMP SHORT Unpacked.004B4B35
004B4B27 |> 33C0 |XOR EAX,EAX ; EAX清零; Cases 5,6,7,8,9,A,B,C,D,E,F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20,21,22,23,24,25,26,27,28,29,2A,2B,2C,2D,2E,2F,30,31 of switch 004B4B07
004B4B29 |. 8AC3 |MOV AL,BL ; 使用者名稱第六位起的位數
004B4B2B |. 8B55 FC |MOV EDX,DWORD PTR SS:[EBP-4]
004B4B2E |. 0FB64402 FF |MOVZX EAX,BYTE PTR DS:[EDX+EAX->; 從第六位起依次取使用者名稱每一位的ASCII值
004B4B33 |. 03F0 |ADD ESI,EAX ; 和ESI的值累加
004B4B35 |> 43 |INC EBX ; 計數器加1; Default case of switch 004B4B07
004B4B36 |. FE4D DF |DEC BYTE PTR SS:[EBP-21] ; 使用者名稱位數減1
004B4B39 |.^ 75 C9 \JNZ SHORT Unpacked.004B4B04 ; 迴圈
004B4B3B |> 8BC6 MOV EAX,ESI ; EAX=1E9624即上面計算的結果
004B4B3D |. 33D2 XOR EDX,EDX
004B4B3F |. 52 PUSH EDX ; /Arg2 => 00000000
004B4B40 |. 50 PUSH EAX ; |Arg1
004B4B41 |. 8D45 CC LEA EAX,DWORD PTR SS:[EBP-34] ; |
004B4B44 |. E8 EB45F5FF CALL Unpacked.00409134 ; \Unpacked.00409134
004B4B49 |. 8B45 CC MOV EAX,DWORD PTR SS:[EBP-34] ; 1E9624轉成十進位制2004516放EAX
004B4B4C |. 50 PUSH EAX ; EAX的值送入堆疊
004B4B4D |. 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20] ; EAX=13588
004B4B50 |. 33D2 XOR EDX,EDX
004B4B52 |. 52 PUSH EDX ; /Arg2 => 00000000
004B4B53 |. 50 PUSH EAX ; |13588送入堆疊
004B4B54 |. 8D45 C8 LEA EAX,DWORD PTR SS:[EBP-38] ; |
004B4B57 |. E8 D845F5FF CALL Unpacked.00409134 ; \Unpacked.00409134
004B4B5C |. 8B55 C8 MOV EDX,DWORD PTR SS:[EBP-38] ; 13588轉十進位制=79240送EDXA
004B4B5F |. 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18]
004B4B62 |. 59 POP ECX
004B4B63 |. E8 34FFF4FF CALL Unpacked.00404A9C
004B4B68 |. 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18] ; 將79240和2004516連線起來送EAX=792402004516
004B4B6B |. E8 E0FEF4FF CALL Unpacked.00404A50
004B4B70 |. 84C0 TEST AL,AL ; AL=C,即剛才得到的數792402004516的位數
004B4B72 |. 0F86 ED000000 JBE Unpacked.004B4C65
004B4B78 |. 8845 DF MOV BYTE PTR SS:[EBP-21],AL
004B4B7B |. B3 01 MOV BL,1
004B4B7D |> 33C0 /XOR EAX,EAX
004B4B7F |. 8AC3 |MOV AL,BL
004B4B81 |. 8B55 E8 |MOV EDX,DWORD PTR SS:[EBP-18] ; 取792402004516
004B4B84 |. 0FB64402 FF |MOVZX EAX,BYTE PTR DS:[EDX+EAX->; 依次取每一位的ASCII值
004B4B89 |. 83C0 D0 |ADD EAX,-30 ; 減30; Switch (cases 30..39)
004B4B8C |. 83F8 09 |CMP EAX,9 ; 比較是否大於9
004B4B8F |. 0F87 C6000000 |JA Unpacked.004B4C5B ; 高於則跳
004B4B95 |. FF2485 9C4B4B>|JMP DWORD PTR DS:[EAX*4+4B4B9C] ; 跳往依次取每一位的減30後的值*4加上4B4B9C所得的地址進行查表
004B4B9C |. C44B4B00 |DD Unpacked.004B4BC4 ; Switch table used at 004B4B95
004B4BA0 |. D64B4B00 |DD Unpacked.004B4BD6
004B4BA4 |. E54B4B00 |DD Unpacked.004B4BE5
004B4BA8 |. F44B4B00 |DD Unpacked.004B4BF4
004B4BAC |. 034C4B00 |DD Unpacked.004B4C03
004B4BB0 |. 124C4B00 |DD Unpacked.004B4C12
004B4BB4 |. 214C4B00 |DD Unpacked.004B4C21
004B4BB8 |. 304C4B00 |DD Unpacked.004B4C30
004B4BBC |. 3F4C4B00 |DD Unpacked.004B4C3F
004B4BC0 |. 4E4C4B00 |DD Unpacked.004B4C4E
004B4BC4 |> 8D45 E4 |LEA EAX,DWORD PTR SS:[EBP-1C] ; Case 30 ('0') of switch 004B4B89
004B4BC7 |. BA DC4C4B00 |MOV EDX,Unpacked.004B4CDC ; 0對4
004B4BCC |. E8 87FEF4FF |CALL Unpacked.00404A58
004B4BD1 |. E9 85000000 |JMP Unpacked.004B4C5B
004B4BD6 |> 8D45 E4 |LEA EAX,DWORD PTR SS:[EBP-1C] ; Case 31 ('1') of switch 004B4B89
004B4BD9 |. BA E84C4B00 |MOV EDX,Unpacked.004B4CE8 ; 1對0
004B4BDE |. E8 75FEF4FF |CALL Unpacked.00404A58
004B4BE3 |. EB 76 |JMP SHORT Unpacked.004B4C5B
004B4BE5 |> 8D45 E4 |LEA EAX,DWORD PTR SS:[EBP-1C] ; Case 32 ('2') of switch 004B4B89
004B4BE8 |. BA F44C4B00 |MOV EDX,Unpacked.004B4CF4 ; 2對5
004B4BED |. E8 66FEF4FF |CALL Unpacked.00404A58
004B4BF2 |. EB 67 |JMP SHORT Unpacked.004B4C5B
004B4BF4 |> 8D45 E4 |LEA EAX,DWORD PTR SS:[EBP-1C] ; Case 33 ('3') of switch 004B4B89
004B4BF7 |. BA 004D4B00 |MOV EDX,Unpacked.004B4D00 ; 3對9
004B4BFC |. E8 57FEF4FF |CALL Unpacked.00404A58
004B4C01 |. EB 58 |JMP SHORT Unpacked.004B4C5B
004B4C03 |> 8D45 E4 |LEA EAX,DWORD PTR SS:[EBP-1C] ; Case 34 ('4') of switch 004B4B89
004B4C06 |. BA 0C4D4B00 |MOV EDX,Unpacked.004B4D0C ; 4對6
004B4C0B |. E8 48FEF4FF |CALL Unpacked.00404A58
004B4C10 |. EB 49 |JMP SHORT Unpacked.004B4C5B
004B4C12 |> 8D45 E4 |LEA EAX,DWORD PTR SS:[EBP-1C] ; Case 35 ('5') of switch 004B4B89
004B4C15 |. BA 184D4B00 |MOV EDX,Unpacked.004B4D18 ; 5對1
004B4C1A |. E8 39FEF4FF |CALL Unpacked.00404A58
004B4C1F |. EB 3A |JMP SHORT Unpacked.004B4C5B
004B4C21 |> 8D45 E4 |LEA EAX,DWORD PTR SS:[EBP-1C] ; Case 36 ('6') of switch 004B4B89
004B4C24 |. BA 244D4B00 |MOV EDX,Unpacked.004B4D24 ; 6對7
004B4C29 |. E8 2AFEF4FF |CALL Unpacked.00404A58
004B4C2E |. EB 2B |JMP SHORT Unpacked.004B4C5B
004B4C30 |> 8D45 E4 |LEA EAX,DWORD PTR SS:[EBP-1C] ; Case 37 ('7') of switch 004B4B89
004B4C33 |. BA 304D4B00 |MOV EDX,Unpacked.004B4D30 ; 7對3
004B4C38 |. E8 1BFEF4FF |CALL Unpacked.00404A58
004B4C3D |. EB 1C |JMP SHORT Unpacked.004B4C5B
004B4C3F |> 8D45 E4 |LEA EAX,DWORD PTR SS:[EBP-1C] ; Case 38 ('8') of switch 004B4B89
004B4C42 |. BA 3C4D4B00 |MOV EDX,Unpacked.004B4D3C ; 8對8
004B4C47 |. E8 0CFEF4FF |CALL Unpacked.00404A58
004B4C4C |. EB 0D |JMP SHORT Unpacked.004B4C5B
004B4C4E |> 8D45 E4 |LEA EAX,DWORD PTR SS:[EBP-1C] ; Case 39 ('9') of switch 004B4B89
004B4C51 |. BA 484D4B00 |MOV EDX,Unpacked.004B4D48 ; 9對2
004B4C56 |. E8 FDFDF4FF |CALL Unpacked.00404A58
004B4C5B |> 43 |INC EBX ; Default case of switch 004B4B89
004B4C5C |. FE4D DF |DEC BYTE PTR SS:[EBP-21]
004B4C5F |.^ 0F85 18FFFFFF \JNZ Unpacked.004B4B7D
004B4C65 |> 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004B4C68 |. 8B55 E4 MOV EDX,DWORD PTR SS:[EBP-1C]
004B4C6B |. E8 7CFBF4FF CALL Unpacked.004047EC
004B4C70 |> 33C0 XOR EAX,EAX
004B4C72 |. 5A POP EDX
004B4C73 |. 59 POP ECX
004B4C74 |> 59 POP ECX
004B4C75 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
004B4C78 |. 68 A74C4B00 PUSH Unpacked.004B4CA7
004B4C7D |> 8D45 C8 LEA EAX,DWORD PTR SS:[EBP-38]
004B4C80 |. BA 05000000 MOV EDX,5
004B4C85 |. E8 32FBF4FF CALL Unpacked.004047BC
004B4C8A |. 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C]
004B4C8D |. BA 04000000 MOV EDX,4
004B4C92 |. E8 25FBF4FF CALL Unpacked.004047BC
004B4C97 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
004B4C9A |. E8 F9FAF4FF CALL Unpacked.00404798
004B4C9F \. C3 RETN
=================================================================================
查表的資料部份:
004B4CD4 . FFFFFFFF DD FFFFFFFF
004B4CD8 . 01000000 DD 00000001
004B4CDC . 34 00 ASCII "4",0
004B4CDE 00 DB 00
004B4CDF 00 DB 00
004B4CE0 . FFFFFFFF DD FFFFFFFF
004B4CE4 . 01000000 DD 00000001
004B4CE8 . 30 00 ASCII "0",0
004B4CEA 00 DB 00
004B4CEB 00 DB 00
004B4CEC . FFFFFFFF DD FFFFFFFF
004B4CF0 . 01000000 DD 00000001
004B4CF4 . 35 00 ASCII "5",0
004B4CF6 00 DB 00
004B4CF7 00 DB 00
004B4CF8 . FFFFFFFF DD FFFFFFFF
004B4CFC . 01000000 DD 00000001
004B4D00 . 39 00 ASCII "9",0
004B4D02 00 DB 00
004B4D03 00 DB 00
004B4D04 . FFFFFFFF DD FFFFFFFF
004B4D08 . 01000000 DD 00000001
004B4D0C . 36 00 ASCII "6",0
004B4D0E 00 DB 00
004B4D0F 00 DB 00
004B4D10 . FFFFFFFF DD FFFFFFFF
004B4D14 . 01000000 DD 00000001
004B4D18 . 31 00 ASCII "1",0
004B4D1A 00 DB 00
004B4D1B 00 DB 00
004B4D1C . FFFFFFFF DD FFFFFFFF
004B4D20 . 01000000 DD 00000001
004B4D24 . 37 00 ASCII "7",0
004B4D26 00 DB 00
004B4D27 00 DB 00
004B4D28 . FFFFFFFF DD FFFFFFFF
004B4D2C . 01000000 DD 00000001
004B4D30 . 33 00 ASCII "3",0
004B4D32 00 DB 00
004B4D33 00 DB 00
004B4D34 . FFFFFFFF DD FFFFFFFF
004B4D38 . 01000000 DD 00000001
004B4D3C . 38 00 ASCII "8",0
004B4D3E 00 DB 00
004B4D3F 00 DB 00
004B4D40 . FFFFFFFF DD FFFFFFFF
004B4D44 . 01000000 DD 00000001
004B4D48 . 32 00 ASCII "2",0
004B4D4A 00 DB 00
004B4D4B 00 DB 00
--------------------------------------------------------------------------------
【破解總結】
演算法總結:取使用者名稱的第一位後最後一位的ASCII碼值轉成十進位制數,然後取第一位轉換後的數的最後一位的ASCII碼值減30的結果*7BD,取最後一位轉換後的數的最後一位的ASCII值與0FF做AND運算,然後把兩個結果相乘,然後轉換成十進位制數,做為查表數的第一部分,取使用者名稱的前五位的ASCII值分別與其位數相乘,然後累加,取第六位後面的每一位的ASCII值累加,再加上1E8DEE結果轉成十進位制數,做為查表數的第二部分,把兩部分連起來進行查表
0對4,1對0,2對5,3對9,4對6,5對1,6對7,7對3,8對8,9對2
算了兩組號
laochongzi qhst
792402004516 查表的數 356582003544 查表的數
325645446107註冊碼 917185449166註冊碼
_______________________________________________________________________
【演算法序號產生器】
易語言編寫
子程式:_按鈕2_被單擊
銷燬 ()
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
子程式:_按鈕1_被單擊
區域性容器:變數1 資料型別:整數型
區域性容器:變數2 資料型別:整數型
區域性容器:變數3 資料型別:整數型
區域性容器:變數4 資料型別:整數型
區域性容器:變數5 資料型別:整數型
區域性容器:變數6 資料型別:整數型
區域性容器:變數7 資料型別:整數型
區域性容器:變數8 資料型別:整數型
區域性容器:變數9 資料型別:整數型
區域性容器:變數10 資料型別:整數型
區域性容器:變數11 資料型別:整數型
區域性容器:變數12 資料型別:文字型
區域性容器:變數13 資料型別:文字型
區域性容器:變數14 資料型別:文字型
區域性容器:變數15 資料型別:文字型
區域性容器:變數16 資料型別:整數型
變數1 = 到數值 (取程式碼 (取文字左邊 (編輯框1.內容, 1), ))
變數2 = 到數值 (取程式碼 (取文字右邊 (編輯框1.內容, 1), ))
變數3 = 到數值 (取文字右邊 (到文字 (變數1), 1)) × 1981
變數4 = 位與 (到數值 (取文字右邊 (到文字 (變數2), 1)), 255) × 變數3
變數5 = 取文字長度 (編輯框1.內容)
變數7 = 5
如果 (變數5 > 5)
計次迴圈首 (變數7, 變數7)
變數6 = 取程式碼 (編輯框1.內容, 變數7) × 變數7 + 變數6
計次迴圈尾 ()
否則
計次迴圈首 (變數5, 變數5)
變數6 = 取程式碼 (編輯框1.內容, 變數5) × 變數5 + 變數6
計次迴圈尾 ()
如果結束
如果真 (變數5 > 5)
變數10 = 變數5 - 5
計次迴圈首 (變數10, 變數10)
變數8 = 取程式碼 (取文字右邊 (編輯框1.內容, 變數10), 1) + 變數8
計次迴圈尾 ()
如果真結束
變數9 = 變數6 + 2002414 + 變數8
變數12 = 到文字 (變數4) + 到文字 (變數9)
變數16 = 取文字長度 (變數12)
計次迴圈首 (變數16, 變數16)
如果 (取程式碼 (變數12, 變數16) = 48)
變數14 = “4”
否則
如果結束
如果 (取程式碼 (變數12, 變數16) = 49)
變數14 = “0”
否則
如果結束
如果 (取程式碼 (變數12, 變數16) = 50)
變數14 = “5”
否則
如果結束
如果 (取程式碼 (變數12, 變數16) = 51)
變數14 = “9”
否則
如果結束
如果 (取程式碼 (變數12, 變數16) = 52)
變數14 = “6”
否則
如果結束
如果 (取程式碼 (變數12, 變數16) = 53)
變數14 = “1”
否則
如果結束
如果 (取程式碼 (變數12, 變數16) = 54)
變數14 = “7”
否則
如果結束
如果 (取程式碼 (變數12, 變數16) = 55)
變數14 = “3”
否則
如果結束
如果 (取程式碼 (變數12, 變數16) = 56)
變數14 = “8”
否則
如果結束
如果 (取程式碼 (變數12, 變數16) = 57)
變數14 = “2”
否則
如果結束
變數15 = 變數15 + 變數14
計次迴圈尾 ()
如果 (編輯框1.內容 = “”)
資訊框 (“請輸入使用者名稱”, 0, )
否則
如果結束
編輯框2.內容 = 到文字 (變數15)
--------------------------------------------------------------------------------
【記憶體序號產生器】
中斷地址:4B479B,中斷次數:1,第一位元組:E8,長度:5
記憶體方式:EDX
--------------------------------------------------------------------------------
【版權宣告】 本文純屬技術交流, 轉載請註明作者並保持文章的完整, 謝謝!
相關文章
- 初探軟體測試心理學2018-07-15
- 小議軟體測試分析2009-07-13
- 天貓精靈方糖智慧音響評測:麻雀雖小,五臟俱全2018-05-20
- 被圖靈測試2012-06-15圖靈
- 星雲精準測試對安卓底層驅動程式碼的測試案例分析2019-12-02安卓
- 學習 PixiJS — 小精靈冒險2019-03-11JS
- 精準測試實踐2020-08-28
- Source Insight 3.5 演算法簡單分析2015-11-15演算法
- 《超級小精靈》Ver 1.00共享版的註冊分析 (15千字)2001-02-10
- 超級小精靈 ver1.0破解 (448字)2001-02-11
- 簡單演算法――郵件精靈 V2.02015-11-15演算法
- 破解 開機小精靈 2.11 (7千字)2001-11-12
- 精準測試的軟體產品質量效率變化分析2018-08-10
- 為什麼驅動精靈檢測不到獨立顯示卡_驅動精靈檢測不到獨立顯示卡解決步驟2020-07-19
- SF精靈 for Chrome2014-07-21Chrome
- 圖靈測試已OUT,這才是測試AI的更佳方法2015-09-25圖靈AI
- 小程式自動化測試--測試32018-06-24
- 精準化測試原理簡介2024-03-27
- 《心理測量者》不再科幻,美國嘗試用人工智慧預測犯罪2016-08-02人工智慧
- 【星雲測試】開發者測試-採用精準測試工具對Spring Boot應用進行測試2018-09-04Spring Boot
- 【星雲測試】開發者測試-採用精準測試工具對SpringBoot應用進行測試2018-08-13Spring Boot
- Angular 測試小窺2018-04-15Angular
- 因圖靈測試而認識圖靈社群(知道圖靈測試後對未來人工智慧侃侃而談)2017-07-11圖靈人工智慧
- 網頁小實驗——用canvas生成精靈動畫圖片2021-01-30網頁Canvas動畫
- 因圖靈測試而認識圖靈社群(知道圖靈測試後對未來人工智慧侃侃而談)22017-07-11圖靈人工智慧
- 《幻想精靈》精靈系統及圖鑑技能說明攻略2017-01-03
- 開發者測試-採用精準測試工具對Spring Boot應用進行測試2018-08-14Spring Boot
- GPT-4 透過圖靈測試2024-05-17GPT圖靈
- SpriteSheet精靈動畫引擎2014-02-26動畫
- 加密精靈 (EncryptGenie) 2.612015-11-15加密
- SpriteAtlas精靈圖集2024-04-18
- 優軟精靈畫筆之大天使3.0註冊演算法分析及KeyGen (3千字)2001-11-10演算法
- 效能測試之測試分析與調優2021-11-12
- 軟體測試人員需要懂哪些常見的心理學?2019-09-04
- 惠普光影精靈4代綠刃144Hz螢幕評測 光影精靈4綠刃值得買嗎?2018-06-05
- PokémonGo火遍全球,開啟全民捕捉小精靈的時代2018-03-01Go
- 解除安裝精靈V3.2破解的簡要分析!2015-11-15
- 分析函式牛刀小試2014-11-27函式