| 
注册时间2009-1-25
阅读权限30
最后登录1970-1-1UID58584 龙战于野 
 
 TA的每日心情|  | 慵懒 2015-10-9 11:25
 | 
|---|
 签到天数: 1 天 [LV.1]初来乍到 | 
 
| 本帖最后由 老万 于 2010-6-2 20:35 编辑 
 【目标程序】Hex Comparison 1.82
 
 【下载地址】http://exeicon.com/hex-comparison/
 
 【目的】自己的一点心得,与大家分享
 
 【分析过程】
 
 1.PEID查壳:ASPack 2.001 -> Alexey Solodovnikov
 
 2.脱壳:ESP定律脱壳,ImportREC修复(OEP:00001450 ,RVA :00881304 ,大小:D44),脱壳后显示;Borland C++ 1999
 
 3.DEDE找按钮事件:0040D28C
 
 4.分析算法
 
 输入注册信息 Email:[email protected] ,注册码:1234567890 ,直接来到关键部分
 调整注册信息,Email:[email protected] ,注册码:LAOWAN@163@COM123456789012345678901234567890,复制代码0040D28C  /.  55            PUSH EBP
0040D28D  |.  8BEC          MOV EBP,ESP
0040D28F  |.  81C4 64FFFFFF ADD ESP,-9C
0040D295  |.  8995 74FFFFFF MOV DWORD PTR SS:[EBP-8C],EDX
0040D29B  |.  8985 78FFFFFF MOV DWORD PTR SS:[EBP-88],EAX
0040D2A1  |.  B8 9C1B4D00   MOV EAX,dumped_.004D1B9C
0040D2A6  |.  E8 193E0B00   CALL dumped_.004C10C4
0040D2AB  |.  8B15 C0924D00 MOV EDX,DWORD PTR DS:[4D92C0]
0040D2B1  |.  8A8A CC040000 MOV CL,BYTE PTR DS:[EDX+4CC]
0040D2B7  |.  84C9          TEST CL,CL
0040D2B9  |.  0F85 7B060000 JNZ dumped_.0040D93A
0040D2BF  |.  66:C745 8C 08>MOV WORD PTR SS:[EBP-74],8
0040D2C5  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
0040D2C8  |.  E8 4B46FFFF   CALL dumped_.00401918
0040D2CD  |.  8BD0          MOV EDX,EAX
0040D2CF  |.  FF45 98       INC DWORD PTR SS:[EBP-68]
0040D2D2  |.  8B8D 78FFFFFF MOV ECX,DWORD PTR SS:[EBP-88]
0040D2D8  |.  8B81 F0020000 MOV EAX,DWORD PTR DS:[ECX+2F0]
0040D2DE  |.  E8 E18C0600   CALL dumped_.00475FC4                    ;  取邮箱长度
0040D2E3  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
0040D2E6  |.  FF32          PUSH DWORD PTR DS:[EDX]                  ;  邮箱地址
0040D2E8  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
0040D2EB  |.  E8 2846FFFF   CALL dumped_.00401918
0040D2F0  |.  8BD0          MOV EDX,EAX
0040D2F2  |.  FF45 98       INC DWORD PTR SS:[EBP-68]
0040D2F5  |.  58            POP EAX                                  ;  邮箱
0040D2F6  |.  E8 15E90900   CALL dumped_.004ABC10
0040D2FB  |.  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
0040D2FE  |.  8B12          MOV EDX,DWORD PTR DS:[EDX]
0040D300  |.  8B85 78FFFFFF MOV EAX,DWORD PTR SS:[EBP-88]
0040D306  |.  8B80 F0020000 MOV EAX,DWORD PTR DS:[EAX+2F0]
0040D30C  |.  E8 E38C0600   CALL dumped_.00475FF4
0040D311  |.  FF4D 98       DEC DWORD PTR SS:[EBP-68]
0040D314  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
0040D317  |.  BA 02000000   MOV EDX,2
0040D31C  |.  E8 CBDE0B00   CALL dumped_.004CB1EC
0040D321  |.  FF4D 98       DEC DWORD PTR SS:[EBP-68]
0040D324  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
0040D327  |.  BA 02000000   MOV EDX,2
0040D32C  |.  E8 BBDE0B00   CALL dumped_.004CB1EC
0040D331  |.  66:C745 8C 14>MOV WORD PTR SS:[EBP-74],14
0040D337  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
0040D33A  |.  E8 D945FFFF   CALL dumped_.00401918
0040D33F  |.  8BD0          MOV EDX,EAX
0040D341  |.  FF45 98       INC DWORD PTR SS:[EBP-68]
0040D344  |.  8B8D 78FFFFFF MOV ECX,DWORD PTR SS:[EBP-88]
0040D34A  |.  8B81 FC020000 MOV EAX,DWORD PTR DS:[ECX+2FC]
0040D350  |.  E8 6F8C0600   CALL dumped_.00475FC4
0040D355  |.  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
0040D358  |.  FF32          PUSH DWORD PTR DS:[EDX]                  ;  假注册码
0040D35A  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
0040D35D  |.  E8 B645FFFF   CALL dumped_.00401918
0040D362  |.  8BD0          MOV EDX,EAX
0040D364  |.  FF45 98       INC DWORD PTR SS:[EBP-68]
0040D367  |.  58            POP EAX
0040D368  |.  E8 A3E80900   CALL dumped_.004ABC10
0040D36D  |.  8D55 F0       LEA EDX,DWORD PTR SS:[EBP-10]
0040D370  |.  8B12          MOV EDX,DWORD PTR DS:[EDX]
0040D372  |.  8B85 78FFFFFF MOV EAX,DWORD PTR SS:[EBP-88]
0040D378  |.  8B80 FC020000 MOV EAX,DWORD PTR DS:[EAX+2FC]
0040D37E  |.  E8 718C0600   CALL dumped_.00475FF4
0040D383  |.  FF4D 98       DEC DWORD PTR SS:[EBP-68]
0040D386  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
0040D389  |.  BA 02000000   MOV EDX,2
0040D38E  |.  E8 59DE0B00   CALL dumped_.004CB1EC
0040D393  |.  FF4D 98       DEC DWORD PTR SS:[EBP-68]
0040D396  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
0040D399  |.  BA 02000000   MOV EDX,2
0040D39E  |.  E8 49DE0B00   CALL dumped_.004CB1EC
0040D3A3  |.  66:C745 8C 20>MOV WORD PTR SS:[EBP-74],20
0040D3A9  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
0040D3AC  |.  E8 6745FFFF   CALL dumped_.00401918
0040D3B1  |.  8BD0          MOV EDX,EAX
0040D3B3  |.  FF45 98       INC DWORD PTR SS:[EBP-68]
0040D3B6  |.  8B8D 78FFFFFF MOV ECX,DWORD PTR SS:[EBP-88]
0040D3BC  |.  8B81 F0020000 MOV EAX,DWORD PTR DS:[ECX+2F0]
0040D3C2  |.  E8 FD8B0600   CALL dumped_.00475FC4
0040D3C7  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
0040D3CA  |.  E8 7945FFFF   CALL dumped_.00401948
0040D3CF  |.  83F8 03       CMP EAX,3                                ;  邮箱长度与3比较
0040D3D2  |.  7C 6D         JL SHORT dumped_.0040D441
0040D3D4  |.  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]
0040D3D7  |.  E8 3C45FFFF   CALL dumped_.00401918
0040D3DC  |.  8BD0          MOV EDX,EAX
0040D3DE  |.  FF45 98       INC DWORD PTR SS:[EBP-68]
0040D3E1  |.  8B8D 78FFFFFF MOV ECX,DWORD PTR SS:[EBP-88]
0040D3E7  |.  8B81 F0020000 MOV EAX,DWORD PTR DS:[ECX+2F0]
0040D3ED  |.  E8 D28B0600   CALL dumped_.00475FC4
0040D3F2  |.  8D55 E8       LEA EDX,DWORD PTR SS:[EBP-18]
0040D3F5  |.  52            PUSH EDX
0040D3F6  |.  BA 0E104D00   MOV EDX,dumped_.004D100E
0040D3FB  |.  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
0040D3FE  |.  E8 89DC0B00   CALL dumped_.004CB08C
0040D403  |.  FF45 98       INC DWORD PTR SS:[EBP-68]
0040D406  |.  8D55 E4       LEA EDX,DWORD PTR SS:[EBP-1C]
0040D409  |.  58            POP EAX
0040D40A  |.  E8 F1DF0B00   CALL dumped_.004CB400
0040D40F  |.  85C0          TEST EAX,EAX
0040D411  |.  0F94C1        SETE CL
0040D414  |.  83E1 01       AND ECX,1
0040D417  |.  51            PUSH ECX
0040D418  |.  FF4D 98       DEC DWORD PTR SS:[EBP-68]
0040D41B  |.  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
0040D41E  |.  BA 02000000   MOV EDX,2
0040D423  |.  E8 C4DD0B00   CALL dumped_.004CB1EC
0040D428  |.  FF4D 98       DEC DWORD PTR SS:[EBP-68]                ; |
0040D42B  |.  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]            ; |
0040D42E  |.  BA 02000000   MOV EDX,2                                ; |
0040D433  |.  E8 B4DD0B00   CALL dumped_.004CB1EC                    ; \dumped_.004CB1EC
0040D438  |.  59            POP ECX
0040D439  |.  85C9          TEST ECX,ECX
0040D43B  |.  75 04         JNZ SHORT dumped_.0040D441
0040D43D  |.  33C0          XOR EAX,EAX
0040D43F  |.  EB 05         JMP SHORT dumped_.0040D446
0040D441  |>  B8 01000000   MOV EAX,1
0040D446  |>  50            PUSH EAX                                 ; /Arg1
0040D447  |.  FF4D 98       DEC DWORD PTR SS:[EBP-68]                ; |
0040D44A  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]            ; |
0040D44D  |.  BA 02000000   MOV EDX,2                                ; |
0040D452  |.  E8 95DD0B00   CALL dumped_.004CB1EC                    ; \dumped_.004CB1EC
0040D457  |.  59            POP ECX
0040D458  |.  84C9          TEST CL,CL
0040D45A  |.  74 3F         JE SHORT dumped_.0040D49B
0040D45C  |.  66:C745 8C 2C>MOV WORD PTR SS:[EBP-74],2C
0040D462  |.  BA 10104D00   MOV EDX,dumped_.004D1010                 ;  ASCII "Please input your Email address!"
0040D467  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
0040D46A  |.  E8 1DDC0B00   CALL dumped_.004CB08C
0040D46F  |.  FF45 98       INC DWORD PTR SS:[EBP-68]
0040D472  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
0040D474  |.  E8 B72E0600   CALL dumped_.00470330
0040D479  |.  FF4D 98       DEC DWORD PTR SS:[EBP-68]
0040D47C  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
0040D47F  |.  BA 02000000   MOV EDX,2
0040D484  |.  E8 63DD0B00   CALL dumped_.004CB1EC
0040D489  |.  8B8D 7CFFFFFF MOV ECX,DWORD PTR SS:[EBP-84]
0040D48F  |.  64:890D 00000>MOV DWORD PTR FS:[0],ECX
0040D496  |.  E9 B7040000   JMP dumped_.0040D952
0040D49B  |>  66:C745 8C 44>MOV WORD PTR SS:[EBP-74],44
0040D4A1  |.  8D45 D8       LEA EAX,DWORD PTR SS:[EBP-28]
0040D4A4  |.  E8 6F44FFFF   CALL dumped_.00401918
0040D4A9  |.  8BD0          MOV EDX,EAX
0040D4AB  |.  FF45 98       INC DWORD PTR SS:[EBP-68]
0040D4AE  |.  8B8D 78FFFFFF MOV ECX,DWORD PTR SS:[EBP-88]
0040D4B4  |.  8B81 F0020000 MOV EAX,DWORD PTR DS:[ECX+2F0]
0040D4BA  |.  E8 058B0600   CALL dumped_.00475FC4
0040D4BF  |.  8D55 D8       LEA EDX,DWORD PTR SS:[EBP-28]
0040D4C2  |.  52            PUSH EDX
0040D4C3  |.  8D45 DC       LEA EAX,DWORD PTR SS:[EBP-24]
0040D4C6  |.  E8 4D44FFFF   CALL dumped_.00401918
0040D4CB  |.  8BD0          MOV EDX,EAX
0040D4CD  |.  FF45 98       INC DWORD PTR SS:[EBP-68]
0040D4D0  |.  58            POP EAX
0040D4D1  |.  E8 4EDF0B00   CALL dumped_.004CB424
0040D4D6  |.  FF4D 98       DEC DWORD PTR SS:[EBP-68]
0040D4D9  |.  8D45 D8       LEA EAX,DWORD PTR SS:[EBP-28]
0040D4DC  |.  BA 02000000   MOV EDX,2
0040D4E1  |.  E8 06DD0B00   CALL dumped_.004CB1EC
0040D4E6  |.  66:C745 8C 38>MOV WORD PTR SS:[EBP-74],38
0040D4EC  |.  8D45 DC       LEA EAX,DWORD PTR SS:[EBP-24]
0040D4EF  |.  E8 5444FFFF   CALL dumped_.00401948                    ;  邮箱小写转换为大写
0040D4F4  |.  8985 70FFFFFF MOV DWORD PTR SS:[EBP-90],EAX
0040D4FA  |.  8B95 70FFFFFF MOV EDX,DWORD PTR SS:[EBP-90]
0040D500  |.  42            INC EDX
0040D501  |.  52            PUSH EDX                                 ; /Arg1
0040D502  |.  E8 152C0B00   CALL dumped_.004C011C                    ; \dumped_.004C011C
0040D507  |.  59            POP ECX
0040D508  |.  8985 6CFFFFFF MOV DWORD PTR SS:[EBP-94],EAX
0040D50E  |.  8D45 DC       LEA EAX,DWORD PTR SS:[EBP-24]
0040D511  |.  E8 5644FFFF   CALL dumped_.0040196C
0040D516  |.  50            PUSH EAX                                 ; /Arg2
0040D517  |.  FFB5 6CFFFFFF PUSH DWORD PTR SS:[EBP-94]               ; |Arg1
0040D51D  |.  E8 36390B00   CALL dumped_.004C0E58                    ; \dumped_.004C0E58
0040D522  |.  83C4 08       ADD ESP,8
0040D525  |.  33D2          XOR EDX,EDX
0040D527  |.  8995 68FFFFFF MOV DWORD PTR SS:[EBP-98],EDX
0040D52D  |.  8B8D 68FFFFFF MOV ECX,DWORD PTR SS:[EBP-98]
0040D533  |.  8B85 70FFFFFF MOV EAX,DWORD PTR SS:[EBP-90]
0040D539  |.  3BC8          CMP ECX,EAX
0040D53B  |.  7D 3B         JGE SHORT dumped_.0040D578
0040D53D  |>  8B95 6CFFFFFF /MOV EDX,DWORD PTR SS:[EBP-94]           ;  邮箱送入EDX
0040D543  |.  8B8D 68FFFFFF |MOV ECX,DWORD PTR SS:[EBP-98]
0040D549  |.  0FBE040A      |MOVSX EAX,BYTE PTR DS:[EDX+ECX]         ;  邮箱的ASCII码依次送入EAX
0040D54D  |.  83F8 2E       |CMP EAX,2E                              ;  判断是否为“.”
0040D550  |.  75 10         |JNZ SHORT dumped_.0040D562
0040D552  |.  8B95 6CFFFFFF |MOV EDX,DWORD PTR SS:[EBP-94]
0040D558  |.  8B8D 68FFFFFF |MOV ECX,DWORD PTR SS:[EBP-98]
0040D55E  |.  C6040A 40     |MOV BYTE PTR DS:[EDX+ECX],40            ;  如果是“.” ,用“@”替换“.”
0040D562  |>  FF85 68FFFFFF |INC DWORD PTR SS:[EBP-98]
0040D568  |.  8B85 68FFFFFF |MOV EAX,DWORD PTR SS:[EBP-98]
0040D56E  |.  8B95 70FFFFFF |MOV EDX,DWORD PTR SS:[EBP-90]
0040D574  |.  3BC2          |CMP EAX,EDX
0040D576  |.^ 7C C5         \JL SHORT dumped_.0040D53D
0040D578  |>  66:C745 8C 50>MOV WORD PTR SS:[EBP-74],50
0040D57E  |.  8D45 D4       LEA EAX,DWORD PTR SS:[EBP-2C]
0040D581  |.  8B95 6CFFFFFF MOV EDX,DWORD PTR SS:[EBP-94]
0040D587  |.  E8 00DB0B00   CALL dumped_.004CB08C
0040D58C  |.  8BD0          MOV EDX,EAX
0040D58E  |.  FF45 98       INC DWORD PTR SS:[EBP-68]
0040D591  |.  8D45 DC       LEA EAX,DWORD PTR SS:[EBP-24]
0040D594  |.  E8 83DC0B00   CALL dumped_.004CB21C
0040D599  |.  FF4D 98       DEC DWORD PTR SS:[EBP-68]
0040D59C  |.  8D45 D4       LEA EAX,DWORD PTR SS:[EBP-2C]
0040D59F  |.  BA 02000000   MOV EDX,2
0040D5A4  |.  E8 43DC0B00   CALL dumped_.004CB1EC
0040D5A9  |.  66:C745 8C 5C>MOV WORD PTR SS:[EBP-74],5C
0040D5AF  |.  8D45 D0       LEA EAX,DWORD PTR SS:[EBP-30]
0040D5B2  |.  E8 6143FFFF   CALL dumped_.00401918
0040D5B7  |.  8BD0          MOV EDX,EAX
0040D5B9  |.  FF45 98       INC DWORD PTR SS:[EBP-68]
0040D5BC  |.  8B8D 78FFFFFF MOV ECX,DWORD PTR SS:[EBP-88]
0040D5C2  |.  8B81 FC020000 MOV EAX,DWORD PTR DS:[ECX+2FC]
0040D5C8  |.  E8 F7890600   CALL dumped_.00475FC4
0040D5CD  |.  8D45 D0       LEA EAX,DWORD PTR SS:[EBP-30]            ;  假注册码
0040D5D0  |.  8D55 DC       LEA EDX,DWORD PTR SS:[EBP-24]            ;  转换变形后的邮箱地址
0040D5D3  |.  E8 28DE0B00   CALL dumped_.004CB400                    ;  判断注册码的前面部分是否是转换后的邮箱地址,如果不是,就显示注册码错误
0040D5D8  |.  85C0          TEST EAX,EAX
0040D5DA  |.  0F94C1        SETE CL
0040D5DD  |.  83E1 01       AND ECX,1
0040D5E0  |.  51            PUSH ECX                                 ; /Arg1
0040D5E1  |.  FF4D 98       DEC DWORD PTR SS:[EBP-68]                ; |
0040D5E4  |.  8D45 D0       LEA EAX,DWORD PTR SS:[EBP-30]            ; |
0040D5E7  |.  BA 02000000   MOV EDX,2                                ; |
0040D5EC  |.  E8 FBDB0B00   CALL dumped_.004CB1EC                    ; \dumped_.004CB1EC
0040D5F1  |.  59            POP ECX
0040D5F2  |.  84C9          TEST CL,CL
0040D5F4  |.  74 4F         JE SHORT dumped_.0040D645
0040D5F6  |.  66:C745 8C 68>MOV WORD PTR SS:[EBP-74],68
0040D5FC  |.  BA 31104D00   MOV EDX,dumped_.004D1031                 ;  ASCII "Your registration code is invalid! Please confirm you have gotten the lastest version."
0040D601  |.  8D45 CC       LEA EAX,DWORD PTR SS:[EBP-34]
继续
 进入0040D68E   CALL dumped_.0040B59C复制代码0040D684  |.  E8 3B890600   CALL dumped_.00475FC4
0040D689  |.  8D55 C8       LEA EDX,DWORD PTR SS:[EBP-38]
0040D68C  |.  FF32          PUSH DWORD PTR DS:[EDX]                  ; /假注册码
0040D68E  |.  E8 09DFFFFF   CALL dumped_.0040B59C                    ; \算法,F7进去
0040D693  |.  59            POP ECX
0040D694  |.  8B0D C0924D00 MOV ECX,DWORD PTR DS:[4D92C0]
0040D69A  |.  8881 CC040000 MOV BYTE PTR DS:[ECX+4CC],AL
0040D6A0  |.  FF4D 98       DEC DWORD PTR SS:[EBP-68]
0040D6A3  |.  8D45 C8       LEA EAX,DWORD PTR SS:[EBP-38]
0040D6A6  |.  BA 02000000   MOV EDX,2
0040D6AB  |.  E8 3CDB0B00   CALL dumped_.004CB1EC
0040D6B0  |.  8B0D C0924D00 MOV ECX,DWORD PTR DS:[4D92C0]
0040D6B6  |.  8A81 CC040000 MOV AL,BYTE PTR DS:[ECX+4CC]
0040D6BC  |.  84C0          TEST AL,AL
0040D6BE  |.  0F84 47020000 JE dumped_.0040D90B                      ;  关键跳
0040D6C4  |.  66:C745 8C 80>MOV WORD PTR SS:[EBP-74],80
0040D6CA  |.  8D45 C4       LEA EAX,DWORD PTR SS:[EBP-3C]
0040D6CD  |.  E8 4642FFFF   CALL dumped_.00401918
0040D6D2  |.  8BD0          MOV EDX,EAX
0040D6D4  |.  FF45 98       INC DWORD PTR SS:[EBP-68]
0040D6D7  |.  8B8D 78FFFFFF MOV ECX,DWORD PTR SS:[EBP-88]
0040D6DD  |.  8B81 FC020000 MOV EAX,DWORD PTR DS:[ECX+2FC]
0040D6E3  |.  E8 DC880600   CALL dumped_.00475FC4
0040D6E8  |.  8D55 C4       LEA EDX,DWORD PTR SS:[EBP-3C]
0040D6EB  |.  8B85 78FFFFFF MOV EAX,DWORD PTR SS:[EBP-88]
0040D6F1  |.  05 18030000   ADD EAX,318
0040D6F6  |.  E8 21DB0B00   CALL dumped_.004CB21C
0040D6FB  |.  FF4D 98       DEC DWORD PTR SS:[EBP-68]
0040D6FE  |.  8D45 C4       LEA EAX,DWORD PTR SS:[EBP-3C]
0040D701  |.  BA 02000000   MOV EDX,2
0040D706  |.  E8 E1DA0B00   CALL dumped_.004CB1EC
0040D70B  |.  8B85 78FFFFFF MOV EAX,DWORD PTR SS:[EBP-88]
0040D711  |.  05 18030000   ADD EAX,318
0040D716  |.  E8 5142FFFF   CALL dumped_.0040196C
0040D71B  |.  0FBE50 17     MOVSX EDX,BYTE PTR DS:[EAX+17]          ; 判断注册码第4位是否为数字
0040D71F  |.  83FA 30       CMP EDX,30
0040D722  |.  7C 19         JL SHORT dumped_.0040D73D
0040D724  |.  8B85 78FFFFFF MOV EAX,DWORD PTR SS:[EBP-88]
0040D72A  |.  05 18030000   ADD EAX,318
0040D72F  |.  E8 3842FFFF   CALL dumped_.0040196C
0040D734  |.  0FBE50 17     MOVSX EDX,BYTE PTR DS:[EAX+17]
0040D738  |.  83FA 39       CMP EDX,39
0040D73B  |.  7E 0D         JLE SHORT dumped_.0040D74A
0040D73D  |>  8B0D C0924D00 MOV ECX,DWORD PTR DS:[4D92C0]
0040D743  |.  C681 CC040000>MOV BYTE PTR DS:[ECX+4CC],0
0040D74A  |>  B2 01         MOV DL,1
0040D74C  |.  A1 64904A00   MOV EAX,DWORD PTR DS:[4A9064]
0040D751  |.  E8 0EBA0900   CALL dumped_.004A9164
0040D756  |.  8985 64FFFFFF MOV DWORD PTR SS:[EBP-9C],EAX
0040D75C  |.  BA 01000080   MOV EDX,80000001
0040D761  |.  8B85 64FFFFFF MOV EAX,DWORD PTR SS:[EBP-9C]
0040D767  |.  E8 94D80B00   CALL dumped_.004CB000
0040D76C  |.  8B0D C0924D00 MOV ECX,DWORD PTR DS:[4D92C0]
0040D772  |.  8A81 CC040000 MOV AL,BYTE PTR DS:[ECX+4CC]
0040D778  |.  84C0          TEST AL,AL
0040D77A  |.  0F84 15010000 JE dumped_.0040D895
0040D780  |.  66:C745 8C 8C>MOV WORD PTR SS:[EBP-74],8C
0040D786  |.  BA 88104D00   MOV EDX,dumped_.004D1088                 ;  ASCII "Software\ExeIcon\HexCmp"
0040D78B  |.  8D45 C0       LEA EAX,DWORD PTR SS:[EBP-40]
0040D78E  |.  E8 F9D80B00   CALL dumped_.004CB08C
我留一组可用的注册码复制代码0040B59C  /$  55            PUSH EBP
0040B59D  |.  8BEC          MOV EBP,ESP
0040B59F  |.  81C4 74FFFFFF ADD ESP,-8C
0040B5A5  |.  56            PUSH ESI
0040B5A6  |.  57            PUSH EDI
0040B5A7  |.  B8 8C114D00   MOV EAX,dumped_.004D118C
0040B5AC  |.  E8 135B0B00   CALL dumped_.004C10C4
0040B5B1  |.  C745 F8 01000>MOV DWORD PTR SS:[EBP-8],1
0040B5B8  |.  8D55 08       LEA EDX,DWORD PTR SS:[EBP+8]
0040B5BB  |.  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
0040B5BE  |.  E8 01FB0B00   CALL dumped_.004CB0C4
0040B5C3  |.  FF45 F8       INC DWORD PTR SS:[EBP-8]
0040B5C6  |.  66:C745 EC 08>MOV WORD PTR SS:[EBP-14],8
0040B5CC  |.  C645 DB 00    MOV BYTE PTR SS:[EBP-25],0
0040B5D0  |.  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
0040B5D3  |.  E8 7063FFFF   CALL dumped_.00401948
0040B5D8  |.  83F8 2C       CMP EAX,2C                               ;  判断注册码长度是否是44
0040B5DB  |.  7E 0D         JLE SHORT dumped_.0040B5EA
0040B5DD  |.  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
0040B5E0  |.  BA 2C000000   MOV EDX,2C
0040B5E5  |.  E8 F6FD0B00   CALL dumped_.004CB3E0
0040B5EA  |>  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
0040B5ED  |.  E8 5663FFFF   CALL dumped_.00401948
0040B5F2  |.  83F8 2C       CMP EAX,2C                               ;  判断注册码长度是否是44,如果不是,就跳向错误
0040B5F5  |.  0F85 49020000 JNZ dumped_.0040B844
0040B5FB  |.  BE 840C4D00   MOV ESI,dumped_.004D0C84                 ;  字符串"1z1h+2a0n-0g8y*9a1n|"记为S1
0040B600  |.  8D7D 88       LEA EDI,DWORD PTR SS:[EBP-78]
0040B603  |.  B9 05000000   MOV ECX,5
0040B608  |.  F3:A5         REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
0040B60A  |.  A4            MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
0040B60B  |.  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
0040B60E  |.  E8 5963FFFF   CALL dumped_.0040196C
0040B613  |.  0FBE50 28     MOVSX EDX,BYTE PTR DS:[EAX+28]
0040B617  |.  83FA 48       CMP EDX,48                               ;  判断注册码第41位是否为H
0040B61A  |.  74 23         JE SHORT dumped_.0040B63F
0040B61C  |.  33C0          XOR EAX,EAX
0040B61E  |.  50            PUSH EAX
0040B61F  |.  FF4D F8       DEC DWORD PTR SS:[EBP-8]
0040B622  |.  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
0040B625  |.  BA 02000000   MOV EDX,2
0040B62A  |.  E8 BDFB0B00   CALL dumped_.004CB1EC
0040B62F  |.  58            POP EAX
0040B630  |.  8B55 DC       MOV EDX,DWORD PTR SS:[EBP-24]
0040B633  |.  64:8915 00000>MOV DWORD PTR FS:[0],EDX
0040B63A  |.  E9 24020000   JMP dumped_.0040B863
0040B63F  |>  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
0040B642  |.  E8 2563FFFF   CALL dumped_.0040196C
0040B647  |.  0FBE50 29     MOVSX EDX,BYTE PTR DS:[EAX+29]
0040B64B  |.  83FA 46       CMP EDX,46                               ;  判断注册码第42位是否为F
0040B64E  |.  74 23         JE SHORT dumped_.0040B673
0040B650  |.  33C0          XOR EAX,EAX
0040B652  |.  50            PUSH EAX
0040B653  |.  FF4D F8       DEC DWORD PTR SS:[EBP-8]
0040B656  |.  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
0040B659  |.  BA 02000000   MOV EDX,2
0040B65E  |.  E8 89FB0B00   CALL dumped_.004CB1EC
0040B663  |.  58            POP EAX
0040B664  |.  8B55 DC       MOV EDX,DWORD PTR SS:[EBP-24]
0040B667  |.  64:8915 00000>MOV DWORD PTR FS:[0],EDX
0040B66E  |.  E9 F0010000   JMP dumped_.0040B863
0040B673  |>  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
0040B676  |.  E8 F162FFFF   CALL dumped_.0040196C
0040B67B  |.  0FBE50 2A     MOVSX EDX,BYTE PTR DS:[EAX+2A]
0040B67F  |.  83FA 43       CMP EDX,43                               ;  判断注册码第43位是否为C
0040B682  |.  74 23         JE SHORT dumped_.0040B6A7
0040B684  |.  33C0          XOR EAX,EAX
0040B686  |.  50            PUSH EAX
0040B687  |.  FF4D F8       DEC DWORD PTR SS:[EBP-8]
0040B68A  |.  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
0040B68D  |.  BA 02000000   MOV EDX,2
0040B692  |.  E8 55FB0B00   CALL dumped_.004CB1EC
0040B697  |.  58            POP EAX
0040B698  |.  8B55 DC       MOV EDX,DWORD PTR SS:[EBP-24]
0040B69B  |.  64:8915 00000>MOV DWORD PTR FS:[0],EDX
0040B6A2  |.  E9 BC010000   JMP dumped_.0040B863
0040B6A7  |>  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
0040B6AA  |.  E8 BD62FFFF   CALL dumped_.0040196C
0040B6AF  |.  0FBE50 2B     MOVSX EDX,BYTE PTR DS:[EAX+2B]
0040B6B3  |.  83FA 31       CMP EDX,31                               ;  判断注册码第44位是否为1
0040B6B6  |.  74 23         JE SHORT dumped_.0040B6DB
0040B6B8  |.  33C0          XOR EAX,EAX
0040B6BA  |.  50            PUSH EAX
0040B6BB  |.  FF4D F8       DEC DWORD PTR SS:[EBP-8]
0040B6BE  |.  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
0040B6C1  |.  BA 02000000   MOV EDX,2
0040B6C6  |.  E8 21FB0B00   CALL dumped_.004CB1EC
0040B6CB  |.  58            POP EAX
0040B6CC  |.  8B55 DC       MOV EDX,DWORD PTR SS:[EBP-24]
0040B6CF  |.  64:8915 00000>MOV DWORD PTR FS:[0],EDX
0040B6D6  |.  E9 88010000   JMP dumped_.0040B863
0040B6DB  |>  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
0040B6DE  |.  E8 8962FFFF   CALL dumped_.0040196C
0040B6E3  |.  50            PUSH EAX                                 ; /Arg2
0040B6E4  |.  8D55 A0       LEA EDX,DWORD PTR SS:[EBP-60]            ; |
0040B6E7  |.  52            PUSH EDX                                 ; |Arg1
0040B6E8  |.  E8 6B570B00   CALL dumped_.004C0E58                    ; \dumped_.004C0E58
0040B6ED  |.  83C4 08       ADD ESP,8
0040B6F0  |.  0FBE4D A1     MOVSX ECX,BYTE PTR SS:[EBP-5F]
0040B6F4  |.  83F9 30       CMP ECX,30                               ;  判断注册码第2位是否为0
0040B6F7  |.  0F85 47010000 JNZ dumped_.0040B844
0040B6FD  |.  C645 A1 23    MOV BYTE PTR SS:[EBP-5F],23              ;  用#替换注册码的第2位
0040B701  |.  C645 DB 01    MOV BYTE PTR SS:[EBP-25],1               ;  变量b1=1
0040B705  |.  C745 D4 02000>MOV DWORD PTR SS:[EBP-2C],2              ;  变量b2=2
0040B70C  |>  8B45 D4       /MOV EAX,DWORD PTR SS:[EBP-2C]           ;  EAX=1
0040B70F  |.  0FBE5405 88   |MOVSX EDX,BYTE PTR SS:[EBP+EAX-78]      ;  字符串S1的第三位
0040B714  |.  8B4D D4       |MOV ECX,DWORD PTR SS:[EBP-2C]           ;  ECX=2
0040B717  |.  0FBE440D 9F   |MOVSX EAX,BYTE PTR SS:[EBP+ECX-61]      ;  替换后注册码的第二位#
0040B71C  |.  03D0          |ADD EDX,EAX                             ;  字符串S1的第三位和注册码的第二位的ASCII码值相加
0040B71E  |.  8B4D D4       |MOV ECX,DWORD PTR SS:[EBP-2C]
0040B721  |.  0FBE440D A0   |MOVSX EAX,BYTE PTR SS:[EBP+ECX-60]      ;  注册码第三位ASCII码值
0040B726  |.  33D0          |XOR EDX,EAX                             ;  异或
0040B728  |.  8B4D D4       |MOV ECX,DWORD PTR SS:[EBP-2C]
0040B72B  |.  0FBE440D 88   |MOVSX EAX,BYTE PTR SS:[EBP+ECX-78]      ;  字符串S1的第三位
0040B730  |.  33D0          |XOR EDX,EAX                             ;  异或
0040B732  |.  52            |PUSH EDX                                ; /Arg1
0040B733  |.  E8 747BFFFF   |CALL dumped_.004032AC                   ; \dumped_.004032AC
0040B738  |.  59            |POP ECX
0040B739  |.  B9 1A000000   |MOV ECX,1A                              ;  ECX=1A
0040B73E  |.  99            |CDQ
0040B73F  |.  F7F9          |IDIV ECX                                ;  相除
0040B741  |.  83C2 41       |ADD EDX,41                              ;  余数加上41
0040B744  |.  8B45 D4       |MOV EAX,DWORD PTR SS:[EBP-2C]
0040B747  |.  0FBE4C05 A9   |MOVSX ECX,BYTE PTR SS:[EBP+EAX-57]
0040B74C  |.  3BD1          |CMP EDX,ECX                             ;  与注册码的第12位进行比较
0040B74E      74 06         JE SHORT dumped_.0040B756
0040B750  |.  C645 DB 00    |MOV BYTE PTR SS:[EBP-25],0
0040B754  |.  EB 0B         |JMP SHORT dumped_.0040B761
0040B756  |>  FF45 D4       |INC DWORD PTR SS:[EBP-2C]
0040B759  |.  8B55 D4       |MOV EDX,DWORD PTR SS:[EBP-2C]
0040B75C  |.  83FA 0A       |CMP EDX,0A                              ;  与10比较
0040B75F  |.^ 7C AB         \JL SHORT dumped_.0040B70C
0040B761  |>  8A45 DB       MOV AL,BYTE PTR SS:[EBP-25]
0040B764  |.  84C0          TEST AL,AL
0040B766  |.  0F84 CB000000 JE dumped_.0040B837
0040B76C  |.  C745 D0 18000>MOV DWORD PTR SS:[EBP-30],18
0040B773  |.  66:C745 EC 08>MOV WORD PTR SS:[EBP-14],8
0040B779  |.  8B55 D0       MOV EDX,DWORD PTR SS:[EBP-30]
0040B77C  |.  83FA 28       CMP EDX,28
0040B77F  |.  7D 4D         JGE SHORT dumped_.0040B7CE
0040B781  |>  8B4D D0       /MOV ECX,DWORD PTR SS:[EBP-30]
0040B784  |.  0FBE440D 89   |MOVSX EAX,BYTE PTR SS:[EBP+ECX-77]      ;  变换后的注册码第二位
0040B789  |.  B9 06000000   |MOV ECX,6                               ;  ECX=6
0040B78E  |.  99            |CDQ
0040B78F  |.  F7F9          |IDIV ECX                                ;  相除
0040B791  |.  8BCA          |MOV ECX,EDX                             ;  余数送入ECX
0040B793  |.  8B45 D0       |MOV EAX,DWORD PTR SS:[EBP-30]           ;  EAX=24
0040B796  |.  0FBE5405 8A   |MOVSX EDX,BYTE PTR SS:[EBP+EAX-76]      ;  变换后的注册码第三位ASCII码值
0040B79B  |.  D3E2          |SHL EDX,CL                              ;  左移余数位
0040B79D  |.  8B45 D0       |MOV EAX,DWORD PTR SS:[EBP-30]
0040B7A0  |.  0FBE4C05 8B   |MOVSX ECX,BYTE PTR SS:[EBP+EAX-75]      ;  变换后的注册码第四位ASCII码值
0040B7A5  |.  0BD1          |OR EDX,ECX                              ;  取或
0040B7A7  |.  52            |PUSH EDX                                ; /Arg1
0040B7A8  |.  E8 FF7AFFFF   |CALL dumped_.004032AC                   ; \dumped_.004032AC
0040B7AD  |.  59            |POP ECX
0040B7AE  |.  B9 1A000000   |MOV ECX,1A                              ;  ECX=1A
0040B7B3  |.  99            |CDQ
0040B7B4  |.  F7F9          |IDIV ECX                                ;  相除
0040B7B6  |.  80C2 61       |ADD DL,61                               ;  余数加61
0040B7B9  |.  8B45 D0       |MOV EAX,DWORD PTR SS:[EBP-30]
0040B7BC  |.  889405 5CFFFF>|MOV BYTE PTR SS:[EBP+EAX-A4],DL         ;  保存字符
0040B7C3  |.  FF45 D0       |INC DWORD PTR SS:[EBP-30]               ;  变量++
0040B7C6  |.  8B55 D0       |MOV EDX,DWORD PTR SS:[EBP-30]
0040B7C9  |.  83FA 28       |CMP EDX,28
0040B7CC  |.^ 7C B3         \JL SHORT dumped_.0040B781               ;  计算出新的字符串S2,我这儿是“rqxlhhplmiiamqbt”
0040B7CE  |>  C645 84 5A    MOV BYTE PTR SS:[EBP-7C],5A
0040B7D2  |.  C645 85 59    MOV BYTE PTR SS:[EBP-7B],59
0040B7D6  |.  C745 CC 18000>MOV DWORD PTR SS:[EBP-34],18
0040B7DD  |.  66:C745 EC 08>MOV WORD PTR SS:[EBP-14],8
0040B7E3  |.  8B45 CC       MOV EAX,DWORD PTR SS:[EBP-34]
0040B7E6  |.  83F8 28       CMP EAX,28
0040B7E9  |.  7D 4C         JGE SHORT dumped_.0040B837
0040B7EB  |>  8B55 CC       /MOV EDX,DWORD PTR SS:[EBP-34]           ;  EDX =24
0040B7EE  |.  0FBE8C15 5CFF>|MOVSX ECX,BYTE PTR SS:[EBP+EDX-A4]      ;  字符串S2的第一位
0040B7F6  |.  C1E1 04       |SHL ECX,4                               ;  左移4位
0040B7F9  |.  8B45 CC       |MOV EAX,DWORD PTR SS:[EBP-34]
0040B7FC  |.  0FBE9405 5DFF>|MOVSX EDX,BYTE PTR SS:[EBP+EAX-A3]      ;  字符串S2的第二位
0040B804  |.  D1FA          |SAR EDX,1                               ;  右移1位
0040B806  |.  33CA          |XOR ECX,EDX                             ;  异或
0040B808  |.  51            |PUSH ECX                                ; /Arg1
0040B809  |.  E8 9E7AFFFF   |CALL dumped_.004032AC                   ; \dumped_.004032AC
0040B80E  |.  59            |POP ECX
0040B80F  |.  B9 1A000000   |MOV ECX,1A                              ;  ECX=1A
0040B814  |.  99            |CDQ
0040B815  |.  F7F9          |IDIV ECX                                ;  相除
0040B817  |.  83C2 41       |ADD EDX,41                              ;  余数加41
0040B81A  |.  8B45 CC       |MOV EAX,DWORD PTR SS:[EBP-34]
0040B81D  |.  0FBE4405 A0   |MOVSX EAX,BYTE PTR SS:[EBP+EAX-60]
0040B822  |.  3BD0          |CMP EDX,EAX                             ;  上面计算的结果与注册码第25位进行比较
0040B824      74 06         JE SHORT dumped_.0040B82C
0040B826  |.  C645 DB 00    |MOV BYTE PTR SS:[EBP-25],0
0040B82A  |.  EB 0B         |JMP SHORT dumped_.0040B837
0040B82C  |>  FF45 CC       |INC DWORD PTR SS:[EBP-34]
0040B82F  |.  8B55 CC       |MOV EDX,DWORD PTR SS:[EBP-34]
0040B832  |.  83FA 28       |CMP EDX,28
0040B835  |.^ 7C B4         \JL SHORT dumped_.0040B7EB
0040B837  |>  0FBE4D AA     MOVSX ECX,BYTE PTR SS:[EBP-56]
0040B83B  |.  83F9 59       CMP ECX,59                               ;  判断注册码的第11位是否为 Y
0040B83E  |.  74 04         JE SHORT dumped_.0040B844
0040B840  |.  C645 DB 00    MOV BYTE PTR SS:[EBP-25],0               ;  修改此处可以爆破
0040B844  |>  8A45 DB       MOV AL,BYTE PTR SS:[EBP-25]              ;  标志位
0040B847  |.  50            PUSH EAX
0040B848  |.  FF4D F8       DEC DWORD PTR SS:[EBP-8]
0040B84B  |.  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
0040B84E  |.  BA 02000000   MOV EDX,2
0040B853  |.  E8 94F90B00   CALL dumped_.004CB1EC
0040B858  |.  58            POP EAX
0040B859  |.  8B55 DC       MOV EDX,DWORD PTR SS:[EBP-24]
0040B85C  |.  64:8915 00000>MOV DWORD PTR FS:[0],EDX
0040B863  |>  5F            POP EDI
0040B864  |.  5E            POP ESI
0040B865  |.  8BE5          MOV ESP,EBP
0040B867  |.  5D            POP EBP
0040B868  \.  C3            RETN
邮箱地址:[email protected]
 
 注册码  :L0@163@COMYLHNBZDOC01234WQYMAEAOWKGOAFCDHFC1
 
 1.注册码的长度为44位
 
 2.邮箱地址的长度不能超过10位,因为注册码的前10位应包含邮箱地址的大写,其中“.”变成“@”
 
 3.注册码的后4位必须是HFC1,第24位必须是数字
 
 4.注册码的12到19位,25到40位,由于算法复杂,我编程不过关,不能用语言总结出来,希望高手完善一下。
 | 
 |