1、软件授权形式:试用版 2、软件下载地址http://www.mindsware.com/download/officecenter42.rar 3、软件大小 :15.4M 4、软件介绍 ∶ASP+Sql,是目前市场能够见到最好的ASP开发的办公平台,功能很全。大部 分没有限制,公开源代码 5、目的:学习,研究 ;软件保护算法何CryptoAPI在软件保护中的应用和破解方法。 6、工具:SmartCheck
以前fxyang大虾的研究见 http://tongtian.net/cgi-bin/topic.cgi?forum=19&;topic=2128&show=25 《浅谈用Ollydbg跟踪vb程序-soli 兄弟的问题 》精华贴 已收录在《看雪论坛精华5》中,已经很深入,不过因为感觉麻烦,呵呵,放弃了。
Start:
开始研究OfficeCenter的时候,还没有看到fxyang大虾的帖子,由于刚入门研究了好几天也没进展,在我最近的帖子http://tongtian.net/cgi-bin/topic.cgi?forum=19&;topic=3736&show=50,记录了研究过程。
如果只想得到注册码十分简单,Smartcheck一定要配置好,以前有这样的贴子可以参考,否则会产生大量的无用信息,如鼠标移动事件。用SmartCheck跟踪到Strcomp函数,查看右边列框的字符串就可以看到正确的和错误的两个注册码。
下面主要研究的是它的算法,Register.exe中用到微软的CryptoAPI2.0函数,下面具体论述。 用SmartCheck打开register.exe运行或按F5 首先,产生窗体LOAD事件,依次调用如下函数,细一点就是算法:
1、 CryAcquireContextA:微软CryptoAPI2.0设置环境函数,在使用系列加密函数之前必须使用此函数设置环境,具体可参考msdn或搜索引擎。 2、GetwindowsDirectoryA:获得本机windows路径,我的机器是“C:\WINNT”。 3、GetVolumeInformationA:获得本机指定盘卷标,这里是“C:\”盘,我的机器是“-790736510”,并和前面的字符串组合为“C:\WINNT -790736510”,连空格共19个字符,符,每台机器都不相同 。 4、Mid()->ASC()->Byte():逐个取字符,转化为十进制ASCII码,转化为一个字节,即二进制。作为CryptHashData的参数,必须二进制
6、把ASCII码101-125,即"efghijklmnopqrstuvwxyz{|}"共25个字符转化为二进制,供CryptEnCrypt调用,作为要加密的数据,必须二进制。
下面是调用CryptoAPI函数 7、CryptCreateHash:设置散列算法,第二个参数Algid=32772代表sha1散列算法,可在wincrypt.h和MQOAI.h中,搜到相关的定义,如 MQMSG_CALG_MD5 = 32771,MQMSG_CALG_SHA = 32772等。 8、CryptHashData:建立输入字符串“C:\WINNT -790736510”的散列表。第二个参数代表该字符串。 9、CryptDeriveKey:从散列表中派生会话密钥,第二个参数Algid=26625,即CALG_RC4,代表流式加密,CALG_RC2(26114)代表块加密;第三个参数,就是我们得到的hash值句柄。只要我们每次保证CSP、算法、基础数据一样,产生的会话密钥pkey也一样。
10、CryptEnCrypt:按我们提供的算法和密钥加密指定的数据,得到加密数据。我的机器 的结果是(十六进制)-- 11、以第10步得到的加密数据为索引,用Mid函数自“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"按位置取得字母,并五个一组 Sqr(25)=5。组之间加上"-",这样就取得我的机器的ID="QZB00-PI2UG-M36PG-JUMXI-VZRCH"。
生成序列号的算法 下面叙述一下由得到的ID号生成序列号的算法: 1、上述第4步,把“C:\WINNT -790736510”换为ID号"QZB00-PI2UG-M36PG-JUMXI-VZRCH"。 2、 第5步,"efghijklmnopqrstuvwxyz{|}"换为“OfficeCenterFromMindswareMadeByKenny”。 3、执行6、7、8、9、10,得到一加密后数据。 4、以上步得到的加密数据为索引,用Mid函数自“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789oc“按位置取得字母,并五个一组Sqr(25)=5。组之间加上"-",这样就取得我的机器的序列号="PoG6L-lp535-W2z81-Ly9ju-LL13a"。 没有解决的问题:第3步至第4部中有加密后的二进制如何得到索引值,还没有研究透彻,需要跟踪一下程序。哪位大虾帮忙跟踪一下,我用工具不太熟,呵呵。 结论:如果要写注册机,上述的生成序列号算法中已基本实现,而且我已经写好演示程序,是VC源代码,大家修改一下输入数据编译一下即可,等我找到了第4步的换算方式,再来写注册机,呵呵。 唉,上传文件失败,要CryptoAPI程序的留下E-mail吧。
终于找到了他的算法,哈哈,暴露无疑。 软件作者很鬼的,多次调用CryptAPI函数而且并不使用,设置障碍。开始的时候就被他蒙蔽了,跟着转了两天(可是包括夜晚的哦,呵呵)
00404776 . E8 15E6FFFF CALL Register.00402D90 ; 调用CryptEnCrypt04 0040477B . 8985 38FFFFFF MOV DWORD PTR SS:[EBP-C8],EAX 00404781 . FF15 30104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaSetSy>; MSVBVM60.__vbaSetSystemError 00404787 . 39B5 38FFFFFF CMP DWORD PTR SS:[EBP-C8],ESI 0040478D . 0F84 62050000 JE Register.00404CF5 00404793 . BA 482F4000 MOV EDX,Register.00402F48 00404798 . 8D4D D8 LEA ECX,DWORD PTR SS:[EBP-28] 0040479B . FF15 D0104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCo>; MSVBVM60.__vbaStrCopy 004047A1 . 8B1D 14114000 MOV EBX,DWORD PTR DS:[<&MSVBVM60.__vbaSt>; MSVBVM60.__vbaStrMove 004047A7 . 33FF XOR EDI,EDI 004047A9 > B8 18000000 MOV EAX,18 004047AE . 3BF8 CMP EDI,EAX 004047B0 . 0F8F 17050000 JG Register.00404CCD 004047B6 . 8B45 D8 MOV EAX,DWORD PTR SS:[EBP-28] 004047B9 . 8BF7 MOV ESI,EDI 004047BB . 83C6 02 ADD ESI,2 004047BE . 8985 44FFFFFF MOV DWORD PTR SS:[EBP-BC],EAX 004047C4 . 0F80 B2050000 JO Register.00404D7C 004047CA . 81FE C9000000 CMP ESI,0C9 004047D0 . C785 3CFFFFFF >MOV DWORD PTR SS:[EBP-C4],8 004047DA . C745 94 010000>MOV DWORD PTR SS:[EBP-6C],1 004047E1 . C745 8C 020000>MOV DWORD PTR SS:[EBP-74],2 004047E8 . 72 06 JB SHORT Register.004047F0 004047EA . FF15 6C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaGener>; MSVBVM60.__vbaGenerateBoundsError 004047F0 > 8BC7 MOV EAX,EDI 004047F2 . 83C0 03 ADD EAX,3 004047F5 . 0F80 81050000 JO Register.00404D7C 004047FB . 3D C9000000 CMP EAX,0C9 00404800 . 8985 30FFFFFF MOV DWORD PTR SS:[EBP-D0],EAX 00404806 . 72 06 JB SHORT Register.0040480E 00404808 . FF15 6C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaGener>; MSVBVM60.__vbaGenerateBoundsError 0040480E > 8D95 5CFFFFFF LEA EDX,DWORD PTR SS:[EBP-A4] 00404814 . 8D4D 9C LEA ECX,DWORD PTR SS:[EBP-64] 00404817 . C785 64FFFFFF >MOV DWORD PTR SS:[EBP-9C],Register.00402>; UNICODE "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789oc4" 00404821 . C785 5CFFFFFF >MOV DWORD PTR SS:[EBP-A4],8 0040482B . FF15 F4104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarDu>; MSVBVM60.__vbaVarDup 00404831 . 8B45 CC MOV EAX,DWORD PTR SS:[EBP-34] ; 第一个值,算法开始。装入初始数R SS:[EBP-34] 00404834 . 8D4D 8C LEA ECX,DWORD PTR SS:[EBP-74] 00404837 . 51 PUSH ECX 00404838 . 66:33C9 XOR CX,CX 0040483B . 8A1430 MOV DL,BYTE PTR DS:[EAX+ESI] 0040483E . 80E2 03 AND DL,3 00404841 . 8ACA MOV CL,DL 00404843 . 8B95 30FFFFFF MOV EDX,DWORD PTR SS:[EBP-D0] 00404849 . 66:6BC9 10 IMUL CX,CX,10 0040484D . 8A0410 MOV AL,BYTE PTR DS:[EAX+EDX] 00404850 . 0F80 26050000 JO Register.00404D7C 00404856 . C0E8 04 SHR AL,4 00404859 . 66:33D2 XOR DX,DX 0040485C . 8AD0 MOV DL,AL 0040485E . 0BCA OR ECX,EDX 00404860 . 8D95 7CFFFFFF LEA EDX,DWORD PTR SS:[EBP-84] 00404866 . 66:83C1 01 ADD CX,1 0040486A . 0F80 0C050000 JO Register.00404D7C 00404870 . 0FBFC1 MOVSX EAX,CX 00404873 . 8D4D 9C LEA ECX,DWORD PTR SS:[EBP-64] 00404876 . 50 PUSH EAX 00404877 . 51 PUSH ECX 00404878 . 52 PUSH EDX 00404879 . FF15 60104000 CALL DWORD PTR DS:[<&MSVBVM60.#632>] ; MSVBVM60.rtcMidCharVar 0040487F . 8D85 3CFFFFFF LEA EAX,DWORD PTR SS:[EBP-C4] 00404885 . 8D8D 7CFFFFFF LEA ECX,DWORD PTR SS:[EBP-84] 0040488B . 50 PUSH EAX 0040488C . 8D95 6CFFFFFF LEA EDX,DWORD PTR SS:[EBP-94] 00404892 . 51 PUSH ECX 00404893 . 52 PUSH EDX 00404894 . FF15 EC104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarAd>; MSVBVM60.__vbaVarAdd 0040489A . 50 PUSH EAX 0040489B . FF15 14104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrVa>; MSVBVM60.__vbaStrVarMove 004048A1 . 8BD0 MOV EDX,EAX 004048A3 . 8D4D D8 LEA ECX,DWORD PTR SS:[EBP-28] 004048A6 . FFD3 CALL EBX 004048A8 . 8D85 6CFFFFFF LEA EAX,DWORD PTR SS:[EBP-94] 004048AE . 8D8D 7CFFFFFF LEA ECX,DWORD PTR SS:[EBP-84] 004048B4 . 50 PUSH EAX 004048B5 . 8D55 8C LEA EDX,DWORD PTR SS:[EBP-74] 004048B8 . 51 PUSH ECX 004048B9 . 8D45 9C LEA EAX,DWORD PTR SS:[EBP-64] 004048BC . 52 PUSH EDX 004048BD . 50 PUSH EAX 004048BE . 6A 04 PUSH 4 004048C0 . FF15 18104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeV>; MSVBVM60.__vbaFreeVarList 004048C6 . 8B4D D8 MOV ECX,DWORD PTR SS:[EBP-28] 004048C9 . 8BF7 MOV ESI,EDI 004048CB . 83C4 14 ADD ESP,14 004048CE . 83C6 03 ADD ESI,3 004048D1 . 0F80 A5040000 JO Register.00404D7C 004048D7 . 81FE C9000000 CMP ESI,0C9 004048DD . 898D 44FFFFFF MOV DWORD PTR SS:[EBP-BC],ECX 004048E3 . C785 3CFFFFFF >MOV DWORD PTR SS:[EBP-C4],8 004048ED . C745 94 010000>MOV DWORD PTR SS:[EBP-6C],1 004048F4 . C745 8C 020000>MOV DWORD PTR SS:[EBP-74],2 004048FB . 72 06 JB SHORT Register.00404903 004048FD . FF15 6C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaGener>; MSVBVM60.__vbaGenerateBoundsError 00404903 > 8BC7 MOV EAX,EDI 00404905 . 83C0 04 ADD EAX,4 00404908 . 0F80 6E040000 JO Register.00404D7C 0040490E . 3D C9000000 CMP EAX,0C9 00404913 . 8985 30FFFFFF MOV DWORD PTR SS:[EBP-D0],EAX 00404919 . 72 06 JB SHORT Register.00404921 0040491B . FF15 6C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaGener>; MSVBVM60.__vbaGenerateBoundsError 00404921 > 8D95 5CFFFFFF LEA EDX,DWORD PTR SS:[EBP-A4] 00404927 . 8D4D 9C LEA ECX,DWORD PTR SS:[EBP-64] 0040492A . C785 64FFFFFF >MOV DWORD PTR SS:[EBP-9C],Register.00402>; UNICODE "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789oc4" 00404934 . C785 5CFFFFFF >MOV DWORD PTR SS:[EBP-A4],8 0040493E . FF15 F4104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarDu>; MSVBVM60.__vbaVarDup 00404944 . 8B45 CC MOV EAX,DWORD PTR SS:[EBP-34] ; 第二个值,另一种算法RD PTR SS 00404947 . 8D55 8C LEA EDX,DWORD PTR SS:[EBP-74] 0040494A . 52 PUSH EDX 0040494B . 66:33D2 XOR DX,DX 0040494E . 8A0C30 MOV CL,BYTE PTR DS:[EAX+ESI] 00404951 . 80E1 0F AND CL,0F 00404954 . 8AD1 MOV DL,CL 00404956 . 8B8D 30FFFFFF MOV ECX,DWORD PTR SS:[EBP-D0] 0040495C . 66:6BD2 04 IMUL DX,DX,4 00404960 . 8A0408 MOV AL,BYTE PTR DS:[EAX+ECX] 00404963 . 0F80 13040000 JO Register.00404D7C 00404969 . C0E8 06 SHR AL,6 0040496C . 66:33C9 XOR CX,CX 0040496F . 8AC8 MOV CL,AL 00404971 . 8D45 9C LEA EAX,DWORD PTR SS:[EBP-64] 00404974 . 0BD1 OR EDX,ECX 00404976 . 8D8D 7CFFFFFF LEA ECX,DWORD PTR SS:[EBP-84] 0040497C . 66:83C2 01 ADD DX,1 00404980 . 0F80 F6030000 JO Register.00404D7C 00404986 . 0FBFD2 MOVSX EDX,DX 00404989 . 52 PUSH EDX 0040498A . 50 PUSH EAX 0040498B . 51 PUSH ECX 0040498C . FF15 60104000 CALL DWORD PTR DS:[<&MSVBVM60.#632>] ; MSVBVM60.rtcMidCharVar 00404992 . 8D95 3CFFFFFF LEA EDX,DWORD PTR SS:[EBP-C4] 00404998 . 8D85 7CFFFFFF LEA EAX,DWORD PTR SS:[EBP-84] 0040499E . 52 PUSH EDX 0040499F . 8D8D 6CFFFFFF LEA ECX,DWORD PTR SS:[EBP-94] 004049A5 . 50 PUSH EAX 004049A6 . 51 PUSH ECX 004049A7 . FF15 EC104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarAd>; MSVBVM60.__vbaVarAdd 004049AD . 50 PUSH EAX 004049AE . FF15 14104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrVa>; MSVBVM60.__vbaStrVarMove 004049B4 . 8BD0 MOV EDX,EAX 004049B6 . 8D4D D8 LEA ECX,DWORD PTR SS:[EBP-28] 004049B9 . FFD3 CALL EBX 004049BB . 8D95 6CFFFFFF LEA EDX,DWORD PTR SS:[EBP-94] 004049C1 . 8D85 7CFFFFFF LEA EAX,DWORD PTR SS:[EBP-84] 004049C7 . 52 PUSH EDX 004049C8 . 8D4D 8C LEA ECX,DWORD PTR SS:[EBP-74] 004049CB . 50 PUSH EAX 004049CC . 8D55 9C LEA EDX,DWORD PTR SS:[EBP-64] 004049CF . 51 PUSH ECX 004049D0 . 52 PUSH EDX 004049D1 . 6A 04 PUSH 4 004049D3 . FF15 18104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeV>; MSVBVM60.__vbaFreeVarList 004049D9 . 8B45 D8 MOV EAX,DWORD PTR SS:[EBP-28] 004049DC . 8BF7 MOV ESI,EDI 004049DE . 83C4 14 ADD ESP,14 004049E1 . 83C6 04 ADD ESI,4 004049E4 . 0F80 92030000 JO Register.00404D7C 004049EA . 81FE C9000000 CMP ESI,0C9 004049F0 . 8985 44FFFFFF MOV DWORD PTR SS:[EBP-BC],EAX 004049F6 . C785 3CFFFFFF >MOV DWORD PTR SS:[EBP-C4],8 00404A00 . C745 94 010000>MOV DWORD PTR SS:[EBP-6C],1 00404A07 . C745 8C 020000>MOV DWORD PTR SS:[EBP-74],2 00404A0E . 72 06 JB SHORT Register.00404A16 00404A10 . FF15 6C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaGener>; MSVBVM60.__vbaGenerateBoundsError 00404A16 > 8D95 5CFFFFFF LEA EDX,DWORD PTR SS:[EBP-A4] 00404A1C . 8D4D 9C LEA ECX,DWORD PTR SS:[EBP-64] 00404A1F . C785 64FFFFFF >MOV DWORD PTR SS:[EBP-9C],Register.00402>; UNICODE "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789oc4" 00404A29 . C785 5CFFFFFF >MOV DWORD PTR SS:[EBP-A4],8 00404A33 . FF15 F4104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarDu>; MSVBVM60.__vbaVarDup 00404A39 . 8B55 CC MOV EDX,DWORD PTR SS:[EBP-34] ; 第三个参数,算法开始RD PTR SS: 00404A3C . 8D4D 8C LEA ECX,DWORD PTR SS:[EBP-74] 00404A3F . 51 PUSH ECX 00404A40 . 66:33C9 XOR CX,CX 00404A43 . 8A0432 MOV AL,BYTE PTR DS:[EDX+ESI] 00404A46 . 24 3F AND AL,3F 00404A48 . 8AC8 MOV CL,AL 00404A4A . 8D45 9C LEA EAX,DWORD PTR SS:[EBP-64] 00404A4D . 66:83C1 01 ADD CX,1 00404A51 . 0F80 25030000 JO Register.00404D7C
.............................. .....................
00404AC7 . 8985 44FFFFFF MOV DWORD PTR SS:[EBP-BC],EAX 00404ACD . C785 3CFFFFFF >MOV DWORD PTR SS:[EBP-C4],8 00404AD7 . C745 94 010000>MOV DWORD PTR SS:[EBP-6C],1 00404ADE . C745 8C 020000>MOV DWORD PTR SS:[EBP-74],2 00404AE5 . 72 06 JB SHORT Register.00404AED 00404AE7 . FF15 6C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaGener>; MSVBVM60.__vbaGenerateBoundsError 00404AED > 8D95 5CFFFFFF LEA EDX,DWORD PTR SS:[EBP-A4] 00404AF3 . 8D4D 9C LEA ECX,DWORD PTR SS:[EBP-64] 00404AF6 . C785 64FFFFFF >MOV DWORD PTR SS:[EBP-9C],Register.00402>; UNICODE "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789oc4" 00404B00 . C785 5CFFFFFF >MOV DWORD PTR SS:[EBP-A4],8 00404B0A . FF15 F4104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarDu>; MSVBVM60.__vbaVarDup 00404B10 . 8B55 CC MOV EDX,DWORD PTR SS:[EBP-34] ; 第四个数开始,DWORD 00404B13 . 8D4D 8C LEA ECX,DWORD PTR SS:[EBP-74] 00404B16 . 51 PUSH ECX 00404B17 . 66:33C9 XOR CX,CX 00404B1A . 8A0432 MOV AL,BYTE PTR DS:[EDX+ESI] 00404B1D . C0E8 02 SHR AL,2 00404B20 . 8AC8 MOV CL,AL 00404B22 . 8D45 9C LEA EAX,DWORD PTR SS:[EBP-64] 00404B25 . 66:83C1 01 ADD CX,1 00404B29 . 0F80 4D020000 JO Register.00404D7C 00404B2F . 0FBFD1 MOVSX EDX,CX 00404B32 . 52 PUSH EDX 00404B33 . 8D8D 7CFFFFFF LEA ECX,DWORD PTR SS:[EBP-84] 00404B39 . 50 PUSH EAX 00404B3A . 51 PUSH ECX 00404B3B . FF15 60104000 CALL DWORD PTR DS:[<&MSVBVM60.#632>] ; MSVBVM60.rtcMidCharVar 00404B41 . 8D95 3CFFFFFF LEA EDX,DWORD PTR SS:[EBP-C4] 00404B47 . 8D85 7CFFFFFF LEA EAX,DWORD PTR SS:[EBP-84] 00404B4D . 52 PUSH EDX 00404B4E . 8D8D 6CFFFFFF LEA ECX,DWORD PTR SS:[EBP-94] 00404B54 . 50 PUSH EAX 00404B55 . 51 PUSH ECX 00404B56 . FF15 EC104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarAd>; MSVBVM60.__vbaVarAdd 00404B5C . 50 PUSH EAX 00404B5D . FF15 14104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrVa>; MSVBVM60.__vbaStrVarMove 00404B63 . 8BD0 MOV EDX,EAX 00404B65 . 8D4D D8 LEA ECX,DWORD PTR SS:[EBP-28] 00404B68 . FFD3 CALL EBX 00404B6A . 8D95 6CFFFFFF LEA EDX,DWORD PTR SS:[EBP-94] 00404B70 . 8D85 7CFFFFFF LEA EAX,DWORD PTR SS:[EBP-84] 00404B76 . 52 PUSH EDX 00404B77 . 8D4D 8C LEA ECX,DWORD PTR SS:[EBP-74] 00404B7A . 50 PUSH EAX 00404B7B . 8D55 9C LEA EDX,DWORD PTR SS:[EBP-64] 00404B7E . 51 PUSH ECX 00404B7F . 52 PUSH EDX 00404B80 . 6A 04 PUSH 4 00404B82 . FF15 18104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeV>; MSVBVM60.__vbaFreeVarList 00404B88 . 8B45 D8 MOV EAX,DWORD PTR SS:[EBP-28] 00404B8B . 8BF7 MOV ESI,EDI 00404B8D . 83C4 14 ADD ESP,14 00404B90 . 83C6 06 ADD ESI,6 00404B93 . 0F80 E3010000 JO Register.00404D7C 00404B99 . 81FE C9000000 CMP ESI,0C9 00404B9F . 8985 44FFFFFF MOV DWORD PTR SS:[EBP-BC],EAX 00404BA5 . C785 3CFFFFFF >MOV DWORD PTR SS:[EBP-C4],8 00404BAF . C745 94 010000>MOV DWORD PTR SS:[EBP-6C],1 00404BB6 . C745 8C 020000>MOV DWORD PTR SS:[EBP-74],2 00404BBD . 72 06 JB SHORT Register.00404BC5 00404BBF . FF15 6C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaGener>; MSVBVM60.__vbaGenerateBoundsError 00404BC5 > 8BC7 MOV EAX,EDI 00404BC7 . 83C0 07 ADD EAX,7 00404BCA . 0F80 AC010000 JO Register.00404D7C 00404BD0 . 3D C9000000 CMP EAX,0C9 00404BD5 . 8985 30FFFFFF MOV DWORD PTR SS:[EBP-D0],EAX 00404BDB . 72 06 JB SHORT Register.00404BE3 00404BDD . FF15 6C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaGener>; MSVBVM60.__vbaGenerateBoundsError 00404BE3 > 8D95 5CFFFFFF LEA EDX,DWORD PTR SS:[EBP-A4] 00404BE9 . 8D4D 9C LEA ECX,DWORD PTR SS:[EBP-64] 00404BEC . C785 64FFFFFF >MOV DWORD PTR SS:[EBP-9C],Register.00402>; UNICODE "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789oc4" 00404BF6 . C785 5CFFFFFF >MOV DWORD PTR SS:[EBP-A4],8 00404C00 . FF15 F4104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarDu>; MSVBVM60.__vbaVarDup 00404C06 . 8B45 CC MOV EAX,DWORD PTR SS:[EBP-34] ; 第五个数开始计算WORD PTR 00404C09 . 8D4D 8C LEA ECX,DWORD PTR SS:[EBP-74] 00404C0C . 51 PUSH ECX 00404C0D . 66:33C9 XOR CX,CX
............................. .................
00404D4A . 50 PUSH EAX 00404D4B . 6A 00 PUSH 0 00404D4D . 8995 38FFFFFF MOV DWORD PTR SS:[EBP-C8],EDX 00404D53 . FF15 3C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaAryDe>; MSVBVM60.__vbaAryDestruct 00404D59 . 8D4D B4 LEA ECX,DWORD PTR SS:[EBP-4C] 00404D5C . FFD6 CALL ESI 00404D5E . C3 RETN |
|
查看所有0条评论>>