破解工具OD
612K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4N6A6L8X3W2E0j5h3N6W2i4K6u0W2j5$3!0E0i4K6u0r3k6r3!0%4L8X3I4G2j5h3c8Q4x3X3g2Z5N6r3@1`.
下载网址 怎么找下断点的这我就不多说了。我主要学习算法分析了。
004454FB 53 PUSH EBX ; //下断F2
004454FC 57 PUSH EDI
004454FD 68 01010000 PUSH 101
00445502 BF B8DE4800 MOV EDI,winimage.0048DEB8 ; ASCII "fcrjzmd"
00445507 57 PUSH EDI
00445508 68 16080000 PUSH 816
0044550D FF75 08 PUSH DWORD PTR SS:[EBP+8]
00445510 FFD6 CALL ESI ; 取用户名,并把长度送入EAX
00445512 6A 7F PUSH 7F
00445514 BB 38E24800 MOV EBX,winimage.0048E238 ; ASCII "98765432100"
00445519 53 PUSH EBX
0044551A 68 17080000 PUSH 817
0044551F FF75 08 PUSH DWORD PTR SS:[EBP+8]
00445522 FFD6 CALL ESI ; 取假码,并把长度送入EAX
00445524 57 PUSH EDI
00445525 BF 70DB4800 MOV EDI,winimage.0048DB70
0044552A 8BC3 MOV EAX,EBX
0044552C E8 2E720000 CALL winimage.0044C75F ; 关键CALL跟进
================================================================================
跟进0044C75F
0044C75F 55 PUSH EBP
0044C760 8BEC MOV EBP,ESP
0044C762 81EC 00020000 SUB ESP,200
0044C768 85FF TEST EDI,EDI
0044C76A 74 03 JE SHORT winimage.0044C76F
0044C76C 8327 00 AND DWORD PTR DS:[EDI],0
0044C76F 56 PUSH ESI
0044C770 8D8D 00FFFFFF LEA ECX,DWORD PTR SS:[EBP-100]
0044C776 E8 FBFEFFFF CALL winimage.0044C676 ; 假码第一位和20做比较
0044C77B 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] ; EAX=用户名
0044C77E E8 14FFFFFF CALL winimage.0044C697 ; 关键CALL跟进!!计算用户(762C78)
0044C783 8BF0 MOV ESI,EAX ; ESI=762C78
0044C785 81FE 26DDDCB8 CMP ESI,B8DCDD26 ; 762C78和B8DCDD26做比较
0044C78B 0F84 0A020000 JE winimage.0044C99B ; 相等则失败,反之继续运算。
================================================================================
跟进0044C697
0044C697 55 PUSH EBP
0044C698 8BEC MOV EBP,ESP
0044C69A 81EC 08010000 SUB ESP,108
0044C6A0 8D8D F8FEFFFF LEA ECX,DWORD PTR SS:[EBP-108]
0044C6A6 C745 FC 4C69470>MOV DWORD PTR SS:[EBP-4],winimage.0047694C
0044C6AD E8 C4FFFFFF CALL winimage.0044C676 ; 将用户名转换成大写
0044C6B2 8D85 F8FEFFFF LEA EAX,DWORD PTR SS:[EBP-108] ; 用户名地址送入EAX
0044C6B8 50 PUSH EAX ; 压入用户名
0044C6B9 FF15 20334700 CALL DWORD PTR DS:[<&KERNEL32.lstrlenA>] ; 取用户名长度
0044C6BF 33C9 XOR ECX,ECX ; ECX=0
0044C6C1 85C0 TEST EAX,EAX ; 测试EAX
0044C6C3 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX ; 保存用户名长度
0044C6C6 7E 46 JLE SHORT winimage.0044C70E ; 小于或者等于则转移
0044C6C8 53 PUSH EBX ; 压入假码
0044C6C9 56 PUSH ESI
0044C6CA 8B75 F8 MOV ESI,DWORD PTR SS:[EBP-8] ; 将用户名长度送入ESI
0044C6CD 57 PUSH EDI
0044C6CE 8DBD F8FEFFFF LEA EDI,DWORD PTR SS:[EBP-108] ; 用户名地址送入EDI
0044C6D4 83EF 03 SUB EDI,3 ; EDI=EDI-3
0044C6D7 8BC1 MOV EAX,ECX ; EAX=0
0044C6D9 6A 0E PUSH 0E ; 压入E
0044C6DB 99 CDQ ; 双字扩展
0044C6DC 5B POP EBX ; 弹出E到EBX
0044C6DD F7FB IDIV EBX ; 除以E(带符号除法)
0044C6DF 85D2 TEST EDX,EDX ; 测试EDX
0044C6E1 75 03 JNZ SHORT winimage.0044C6E6
0044C6E3 6A 27 PUSH 27 ; 压入27
0044C6E5 5E POP ESI ; 弹出27到ESI
0044C6E6 8D41 03 LEA EAX,DWORD PTR DS:[ECX+3] ; ECX+3地址送入EAX
0044C6E9 0FB61407 MOVZX EDX,BYTE PTR DS:[EDI+EAX] ; 依次取用户名的ASCII码送入EDX
0044C6ED 0FAFD6 IMUL EDX,ESI ; EDX=EDX*ESI(带符号乘法)
0044C6F0 0155 FC ADD DWORD PTR SS:[EBP-4],EDX ; 0012E944=47694C+EDX
0044C6F3 6A 0E PUSH 0E ; 压入E
0044C6F5 99 CDQ ; 双字扩展
0044C6F6 5B POP EBX ; 弹出E到EBX
0044C6F7 F7FB IDIV EBX ; 除以E(带符号除法)
0044C6F9 85D2 TEST EDX,EDX ; 测试EDX
0044C6FB 74 05 JE SHORT winimage.0044C702
0044C6FD 8D3476 LEA ESI,DWORD PTR DS:[ESI+ESI*2] ; ESI=ESI+ESI*2
0044C700 EB 03 JMP SHORT winimage.0044C705
0044C702 6BF6 07 IMUL ESI,ESI,7
0044C705 41 INC ECX ; ECX=ECX+1
0044C706 3B4D F8 CMP ECX,DWORD PTR SS:[EBP-8] ; ECX和7做比较
0044C709 ^ 7C CC JL SHORT winimage.0044C6D7 ; 小于转移
0044C70B 5F POP EDI
0044C70C 5E POP ESI
0044C70D 5B POP EBX
0044C70E 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0044C711 C9 LEAVE
0044C712 C3 RETN
=================================================================================
如下是我列的用户名算法公式:(乱来的。。可能只有我看得懂了。)
F C R J Z M D (用户名)
46 43 52 4A 5A 4D 44 (ASCII码)
27 (27+27*2)=75 (75+75*2)=15F (15F+15F*2)=41D (41D+41D*2)=C57 (C57+C57*2)=2505 (2505+2505*2)=6F0F
*
---------------------------------------------------------------------------------------------------------------------------+47694C=762C78(最后得出的值)
AAA 1E9F 706E 13062 45696 B2281 1D7FFC
好啦知道用户名的运算,运算完就返回了继续下面的运算
0044C783 8BF0 MOV ESI,EAX ; ESI=762C78
0044C785 81FE 26DDDCB8 CMP ESI,B8DCDD26 ; 762C78和B8DCDD26做比较
0044C78B 0F84 0A020000 JE winimage.0044C99B ; 相等则失败,反之继续运算。
0044C791 8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100]
0044C797 50 PUSH EAX
0044C798 8D85 00FEFFFF LEA EAX,DWORD PTR SS:[EBP-200]
0044C79E 56 PUSH ESI
0044C79F 50 PUSH EAX
0044C7A0 E8 6EFFFFFF CALL winimage.0044C713 ; 1、注册码运算(762C7B)
0044C7A5 59 POP ECX
0044C7A6 59 POP ECX
0044C7A7 50 PUSH EAX
0044C7A8 E8 C35A0100 CALL winimage.00462270
0044C7AD 85C0 TEST EAX,EAX
0044C7AF 59 POP ECX
0044C7B0 59 POP ECX
0044C7B1 0F84 AC010000 JE winimage.0044C963
0044C7B7 8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100]
0044C7BD 50 PUSH EAX
0044C7BE 8D86 48190514 LEA EAX,DWORD PTR DS:[ESI+14051948] ; EAX=762C78+14051948=147B45C0
0044C7C4 50 PUSH EAX
0044C7C5 8D85 00FEFFFF LEA EAX,DWORD PTR SS:[EBP-200]
0044C7CB 50 PUSH EAX
0044C7CC E8 42FFFFFF CALL winimage.0044C713 ; 2、注册码运算(147845C0)
0044C7D1 59 POP ECX
0044C7D2 59 POP ECX
0044C7D3 50 PUSH EAX
0044C7D4 E8 975A0100 CALL winimage.00462270
0044C7D9 85C0 TEST EAX,EAX
0044C7DB 59 POP ECX
0044C7DC 59 POP ECX
0044C7DD 0F84 80010000 JE winimage.0044C963
0044C7E3 8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100]
0044C7E9 50 PUSH EAX
0044C7EA 8D86 54190617 LEA EAX,DWORD PTR DS:[ESI+17061954] ; EAX=762C78+17061954=177C45CC
0044C7F0 50 PUSH EAX
0044C7F1 8D85 00FEFFFF LEA EAX,DWORD PTR SS:[EBP-200]
0044C7F7 50 PUSH EAX
0044C7F8 E8 16FFFFFF CALL winimage.0044C713 ; 3、注册码运算(177C45CC)
0044C7FD 59 POP ECX
0044C7FE 59 POP ECX
0044C7FF 50 PUSH EAX
0044C800 E8 6B5A0100 CALL winimage.00462270
0044C805 85C0 TEST EAX,EAX
0044C807 59 POP ECX
0044C808 59 POP ECX
0044C809 0F84 54010000 JE winimage.0044C963
0044C80F 8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100]
0044C815 50 PUSH EAX
0044C816 8D86 81190510 LEA EAX,DWORD PTR DS:[ESI+10051981] ; EAX=762C78+10051981=107B45F9
0044C81C 50 PUSH EAX
0044C81D 8D85 00FEFFFF LEA EAX,DWORD PTR SS:[EBP-200]
0044C823 50 PUSH EAX
0044C824 E8 EAFEFFFF CALL winimage.0044C713 ; 4、注册码运算(107845F9)
0044C829 59 POP ECX
0044C82A 59 POP ECX
0044C82B 50 PUSH EAX
0044C82C E8 3F5A0100 CALL winimage.00462270
0044C831 85C0 TEST EAX,EAX
0044C833 59 POP ECX
0044C834 59 POP ECX
0044C835 0F84 55010000 JE winimage.0044C990
0044C83B 8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100]
0044C841 50 PUSH EAX
0044C842 8D86 95190104 LEA EAX,DWORD PTR DS:[ESI+4011995] ; EAX=762C78+4011995=477460D
0044C848 50 PUSH EAX
0044C849 8D85 00FEFFFF LEA EAX,DWORD PTR SS:[EBP-200]
0044C84F 50 PUSH EAX
0044C850 E8 BEFEFFFF CALL winimage.0044C713 ; 5、注册码运算(477460D)
0044C855 59 POP ECX
0044C856 59 POP ECX
0044C857 50 PUSH EAX
0044C858 E8 135A0100 CALL winimage.00462270
0044C85D 85C0 TEST EAX,EAX
0044C85F 59 POP ECX
0044C860 59 POP ECX
0044C861 0F84 FC000000 JE winimage.0044C963
0044C867 8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100]
0044C86D 50 PUSH EAX
0044C86E 8D86 97190602 LEA EAX,DWORD PTR DS:[ESI+2061997] ; EAX=762C78+2061997=27C460F
0044C874 50 PUSH EAX
0044C875 8D85 00FEFFFF LEA EAX,DWORD PTR SS:[EBP-200]
0044C87B 50 PUSH EAX
0044C87C E8 92FEFFFF CALL winimage.0044C713 ; 6、注册码运算(27C460F)
0044C881 59 POP ECX
0044C882 59 POP ECX
0044C883 50 PUSH EAX
0044C884 E8 E7590100 CALL winimage.00462270
[注意]看雪招聘,专注安全领域的专业人才平台!