【破文作者】tianxj
【作者邮箱】tianxj_2007@126.com
【作者主页】www.chiapyg.com
【破解工具】PEiD,OD
【破解平台】Windows XP
【软件名称】1st Mass Mailer 4.2(2008-4-15版)
【软件大小】2085KB 
【软件类别】国外软件/邮件处理 
【软件语言】英文
【原版下载】华军软件园
【保护方式】注册码
【软件简介】利用该工具可以同时发送多个e-mail给你的客户或联系人 
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
 初学Crack,只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------
【破解内容】
--------------------------------------------------------------
**************************************************************
一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
"registration code is invalid!"
**************************************************************
二、用PEiD对这个软件查壳,为 Borland Delphi 6.0 - 7.0
**************************************************************
三、运行OD,打开mailer,用F12暂停法,来到关键之处

代码:
005E2214  /$  55            PUSH EBP
005E2215  |.  8BEC          MOV EBP,ESP
005E2217  |.  B9 06000000   MOV ECX,6
005E221C  |>  6A 00         /PUSH 0
005E221E  |.  6A 00         |PUSH 0
005E2220  |.  49            |DEC ECX
005E2221  |.^ 75 F9         \JNZ SHORT mailer.005E221C
005E2223  |.  51            PUSH ECX
005E2224  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
005E2227  |.  33C0          XOR EAX,EAX
005E2229  |.  55            PUSH EBP
005E222A  |.  68 9D235E00   PUSH mailer.005E239D
005E222F  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
005E2232  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
005E2235  |.  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]
005E2238  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
005E223B  |.  8B80 A8030000 MOV EAX,DWORD PTR DS:[EAX+3A8]
005E2241  |.  E8 AA52E8FF   CALL mailer.004674F0
005E2246  |.  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]            ;  //EAX=[EBP-14]=试练码
005E2249  |.  8D55 F0       LEA EDX,DWORD PTR SS:[EBP-10]
005E224C  |.  E8 2715F5FF   CALL mailer.00533778
005E2251  |.  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]            ;  //EDX=[EBP-10]=试练码
005E2254  |.  B8 6C755F00   MOV EAX,mailer.005F756C
005E2259  |.  E8 C633E2FF   CALL mailer.00405624
005E225E  |.  E8 11FDFFFF   CALL mailer.005E1F74                     ;  //关键CALL
005E2263  |.  8845 FB       MOV BYTE PTR SS:[EBP-5],AL               ;  //[EBP-5]=AL
005E2266  |.  807D FB 00    CMP BYTE PTR SS:[EBP-5],0                ;  //关键比较
005E226A  |.  0F84 DB000000 JE mailer.005E234B                       ;  //关键跳转
005E2270  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
005E2273  |.  C680 BC030000>MOV BYTE PTR DS:[EAX+3BC],1
005E227A  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
005E227D  |.  50            PUSH EAX
005E227E  |.  8D55 E8       LEA EDX,DWORD PTR SS:[EBP-18]
005E2281  |.  B8 B4235E00   MOV EAX,mailer.005E23B4                  ;  b99e9da78684ba9a97b78e
005E2286  |.  E8 5963F5FF   CALL mailer.005385E4
005E228B  |.  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
005E228E  |.  50            PUSH EAX
005E228F  |.  8D55 E4       LEA EDX,DWORD PTR SS:[EBP-1C]
005E2292  |.  B8 D4235E00   MOV EAX,mailer.005E23D4                  ;  be828b999a8c9f88b1a0848e9f829e828b99b1a9bfa0bfbeb5
005E2297  |.  E8 4863F5FF   CALL mailer.005385E4
005E229C  |.  8B55 E4       MOV EDX,DWORD PTR SS:[EBP-1C]
005E229F  |.  A1 74755F00   MOV EAX,DWORD PTR DS:[5F7574]
005E22A4  |.  59            POP ECX
005E22A5  |.  E8 FE1EFAFF   CALL mailer.005841A8
005E22AA  |.  8D55 E0       LEA EDX,DWORD PTR SS:[EBP-20]
005E22AD  |.  A1 6C755F00   MOV EAX,DWORD PTR DS:[5F756C]
005E22B2  |.  E8 7562F5FF   CALL mailer.0053852C
005E22B7  |.  8B45 E0       MOV EAX,DWORD PTR SS:[EBP-20]
005E22BA  |.  50            PUSH EAX
005E22BB  |.  8D55 DC       LEA EDX,DWORD PTR SS:[EBP-24]
005E22BE  |.  B8 10245E00   MOV EAX,mailer.005E2410                  ;  ac9e95bc9f9ba9819d8eab95
005E22C3  |.  E8 1C63F5FF   CALL mailer.005385E4
005E22C8  |.  8B45 DC       MOV EAX,DWORD PTR SS:[EBP-24]
005E22CB  |.  50            PUSH EAX
005E22CC  |.  8D55 D8       LEA EDX,DWORD PTR SS:[EBP-28]
005E22CF  |.  B8 D4235E00   MOV EAX,mailer.005E23D4                  ;  be828b999a8c9f88b1a0848e9f829e828b99b1a9bfa0bfbeb5
005E22D4  |.  E8 0B63F5FF   CALL mailer.005385E4
005E22D9  |.  8B55 D8       MOV EDX,DWORD PTR SS:[EBP-28]
005E22DC  |.  A1 74755F00   MOV EAX,DWORD PTR DS:[5F7574]
005E22E1  |.  59            POP ECX
005E22E2  |.  E8 0520FAFF   CALL mailer.005842EC
005E22E7  |.  837D F4 00    CMP DWORD PTR SS:[EBP-C],0
005E22EB  |.  75 44         JNZ SHORT mailer.005E2331
005E22ED  |.  E8 72BBE2FF   CALL mailer.0040DE64
005E22F2  |.  83C4 F4       ADD ESP,-0C
005E22F5  |.  DB3C24        FSTP TBYTE PTR SS:[ESP]                  ; |
005E22F8  |.  9B            WAIT                                     ; |
005E22F9  |.  8D45 D4       LEA EAX,DWORD PTR SS:[EBP-2C]            ; |
005E22FC  |.  E8 F3B2E2FF   CALL mailer.0040D5F4                     ; \mailer.0040D5F4
005E2301  |.  8B45 D4       MOV EAX,DWORD PTR SS:[EBP-2C]
005E2304  |.  50            PUSH EAX
005E2305  |.  8D55 D0       LEA EDX,DWORD PTR SS:[EBP-30]
005E2308  |.  B8 B4235E00   MOV EAX,mailer.005E23B4                  ;  b99e9da78684ba9a97b78e
005E230D  |.  E8 D262F5FF   CALL mailer.005385E4
005E2312  |.  8B45 D0       MOV EAX,DWORD PTR SS:[EBP-30]
005E2315  |.  50            PUSH EAX
005E2316  |.  8D55 CC       LEA EDX,DWORD PTR SS:[EBP-34]
005E2319  |.  B8 D4235E00   MOV EAX,mailer.005E23D4                  ;  be828b999a8c9f88b1a0848e9f829e828b99b1a9bfa0bfbeb5
005E231E  |.  E8 C162F5FF   CALL mailer.005385E4
005E2323  |.  8B55 CC       MOV EDX,DWORD PTR SS:[EBP-34]
005E2326  |.  A1 74755F00   MOV EAX,DWORD PTR DS:[5F7574]
005E232B  |.  59            POP ECX
005E232C  |.  E8 BB1FFAFF   CALL mailer.005842EC
005E2331  |>  6A 40         PUSH 40
005E2333  |.  B9 2C245E00   MOV ECX,mailer.005E242C                  ;  information
005E2338  |.  BA 38245E00   MOV EDX,mailer.005E2438                  ;  registration has been completed successfully!
005E233D  |.  A1 80FF5E00   MOV EAX,DWORD PTR DS:[5EFF80]
005E2342  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
005E2344  |.  E8 9F5AEAFF   CALL mailer.00487DE8
005E2349  |.  EB 22         JMP SHORT mailer.005E236D
005E234B  |>  B8 6C755F00   MOV EAX,mailer.005F756C
005E2350  |.  E8 7B32E2FF   CALL mailer.004055D0
005E2355  |.  6A 10         PUSH 10
005E2357  |.  B9 68245E00   MOV ECX,mailer.005E2468                  ;  error
005E235C  |.  BA 70245E00   MOV EDX,mailer.005E2470                  ;  registration code is invalid!
005E2361  |.  A1 80FF5E00   MOV EAX,DWORD PTR DS:[5EFF80]
005E2366  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
005E2368  |.  E8 7B5AEAFF   CALL mailer.00487DE8
005E236D  |>  33C0          XOR EAX,EAX
005E236F  |.  5A            POP EDX
005E2370  |.  59            POP ECX
005E2371  |.  59            POP ECX
005E2372  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
005E2375  |.  68 A4235E00   PUSH mailer.005E23A4
005E237A  |>  8D45 CC       LEA EAX,DWORD PTR SS:[EBP-34]
005E237D  |.  BA 08000000   MOV EDX,8
005E2382  |.  E8 6D32E2FF   CALL mailer.004055F4
005E2387  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
005E238A  |.  E8 4132E2FF   CALL mailer.004055D0
005E238F  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
005E2392  |.  BA 02000000   MOV EDX,2
005E2397  |.  E8 5832E2FF   CALL mailer.004055F4
005E239C  \.  C3            RETN
005E239D   .^ E9 1E2AE2FF   JMP mailer.00404DC0
005E23A2   .^ EB D6         JMP SHORT mailer.005E237A
005E23A4   .  8A45 FB       MOV AL,BYTE PTR SS:[EBP-5]
005E23A7   .  8BE5          MOV ESP,EBP
005E23A9   .  5D            POP EBP
005E23AA   .  C3            RETN
==============================================================
005E1F74  /$  55            PUSH EBP
005E1F75  |.  8BEC          MOV EBP,ESP
005E1F77  |.  83C4 F0       ADD ESP,-10
005E1F7A  |.  33C0          XOR EAX,EAX
005E1F7C  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX
005E1F7F  |.  C645 FF 00    MOV BYTE PTR SS:[EBP-1],0
005E1F83  |.  A1 6C755F00   MOV EAX,DWORD PTR DS:[5F756C]
005E1F88  |.  8945 F4       MOV DWORD PTR SS:[EBP-C],EAX
005E1F8B  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
005E1F8E  |.  8945 F0       MOV DWORD PTR SS:[EBP-10],EAX
005E1F91  |.  837D F0 00    CMP DWORD PTR SS:[EBP-10],0
005E1F95  |.  74 0B         JE SHORT mailer.005E1FA2                 ;  //若试练码为空则跳
005E1F97  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
005E1F9A  |.  83E8 04       SUB EAX,4
005E1F9D  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
005E1F9F  |.  8945 F0       MOV DWORD PTR SS:[EBP-10],EAX
005E1FA2  |>  837D F0 0E    CMP DWORD PTR SS:[EBP-10],0E
005E1FA6  |.  0F85 85000000 JNZ mailer.005E2031                      ;  //若试练码非14位则跳
005E1FAC  |.  A1 6C755F00   MOV EAX,DWORD PTR DS:[5F756C]            ;  //试练码地址
005E1FB1  |.  8038 31       CMP BYTE PTR DS:[EAX],31                 ;  //试练码第1位与"1"比较
005E1FB4  |.  0F94C0        SETE AL                                  ;  //条件为假 FALSE,置0;条件为真 TRUE,置1
005E1FB7  |.  83E0 7F       AND EAX,7F
005E1FBA  |.  0145 F8       ADD DWORD PTR SS:[EBP-8],EAX             ;  //累加
005E1FBD  |.  A1 6C755F00   MOV EAX,DWORD PTR DS:[5F756C]
005E1FC2  |.  8078 02 39    CMP BYTE PTR DS:[EAX+2],39               ;  //试练码第3位与"9"比较
005E1FC6  |.  0F94C0        SETE AL
005E1FC9  |.  83E0 7F       AND EAX,7F
005E1FCC  |.  0145 F8       ADD DWORD PTR SS:[EBP-8],EAX
005E1FCF  |.  A1 6C755F00   MOV EAX,DWORD PTR DS:[5F756C]
005E1FD4  |.  8078 03 33    CMP BYTE PTR DS:[EAX+3],33               ;  //试练码第4位与"3"比较
005E1FD8  |.  0F94C0        SETE AL
005E1FDB  |.  83E0 7F       AND EAX,7F
005E1FDE  |.  0145 F8       ADD DWORD PTR SS:[EBP-8],EAX
005E1FE1  |.  A1 6C755F00   MOV EAX,DWORD PTR DS:[5F756C]
005E1FE6  |.  8078 04 35    CMP BYTE PTR DS:[EAX+4],35               ;  //试练码第5位与"5"比较
005E1FEA  |.  0F94C0        SETE AL
005E1FED  |.  83E0 7F       AND EAX,7F
005E1FF0  |.  0145 F8       ADD DWORD PTR SS:[EBP-8],EAX
005E1FF3  |.  A1 6C755F00   MOV EAX,DWORD PTR DS:[5F756C]
005E1FF8  |.  8078 07 39    CMP BYTE PTR DS:[EAX+7],39               ;  //试练码第8位与"9"比较
005E1FFC  |.  0F94C0        SETE AL
005E1FFF  |.  83E0 7F       AND EAX,7F
005E2002  |.  0145 F8       ADD DWORD PTR SS:[EBP-8],EAX
005E2005  |.  A1 6C755F00   MOV EAX,DWORD PTR DS:[5F756C]
005E200A  |.  8078 08 34    CMP BYTE PTR DS:[EAX+8],34               ;  //试练码第9位与"4"比较
005E200E  |.  0F94C0        SETE AL
005E2011  |.  83E0 7F       AND EAX,7F
005E2014  |.  0145 F8       ADD DWORD PTR SS:[EBP-8],EAX
005E2017  |.  A1 6C755F00   MOV EAX,DWORD PTR DS:[5F756C]
005E201C  |.  8078 0A 30    CMP BYTE PTR DS:[EAX+A],30               ;  //试练码第11位与"0"比较
005E2020  |.  0F94C0        SETE AL
005E2023  |.  83E0 7F       AND EAX,7F
005E2026  |.  0145 F8       ADD DWORD PTR SS:[EBP-8],EAX
005E2029  |.  837D F8 07    CMP DWORD PTR SS:[EBP-8],7               ;  //比较累加值是否是7,即这7个数是否都正确
005E202D  |.  0F9445 FF     SETE BYTE PTR SS:[EBP-1]                 ;  //条件为假 FALSE,置0;条件为真 TRUE,置1
005E2031  |>  8A45 FF       MOV AL,BYTE PTR SS:[EBP-1]               ;  //AL=[EBP-1] 
005E2034  |.  8BE5          MOV ESP,EBP
005E2036  |.  5D            POP EBP
005E2037  \.  C3            RETN
**************************************************************  
【破解总结】
 和固定注册码差不多,适合像我这样的小菜鸟练习
--------------------------------------------------------------
【算法总结】
 1、注册码长度为14
 2、注册码第1位必须为"1";第3位必须为"9";第4位必须为"3";第5位必须为"5";第8位必须为"9";第9位必须为"4";第11位必须为"0"
--------------------------------------------------------------
【算法注册机】
 Private Sub Command1_Click()
 Dim a1, a2, a3, a4, a5, a6, a7
 a1 = Int(Rnd() * 10)
 a2 = Int(Rnd() * 10)
 a3 = Int(Rnd() * 10)
 a4 = Int(Rnd() * 10)
 a5 = Int(Rnd() * 10)
 a6 = Int(Rnd() * 10)
 a7 = Int(Rnd() * 10)
 Text1.Text = "1" & a1 & "9" & "3" & "5" & a2 & a3 & "9" & "4" & a4 & "0" & a5 & a6 & a7
 End Sub
--------------------------------------------------------------
【注册信息】
 注册码:1*935**94*0***   (星号任意)
--------------------------------------------------------------
 感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及所有帮助过我的论坛兄弟姐妹们!谢谢
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!