1st Mass Mailer 4.2算法分析
【破文作者】tianxj【作者邮箱】[email protected]
【作者主页】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:,EAX
005E2227|.33C0 XOR EAX,EAX
005E2229|.55 PUSH EBP
005E222A|.68 9D235E00 PUSH mailer.005E239D
005E222F|.64:FF30 PUSH DWORD PTR FS:
005E2232|.64:8920 MOV DWORD PTR FS:,ESP
005E2235|.8D55 EC LEA EDX,DWORD PTR SS:
005E2238|.8B45 FC MOV EAX,DWORD PTR SS:
005E223B|.8B80 A8030000 MOV EAX,DWORD PTR DS:
005E2241|.E8 AA52E8FF CALL mailer.004674F0
005E2246|.8B45 EC MOV EAX,DWORD PTR SS: ;//EAX==试练码
005E2249|.8D55 F0 LEA EDX,DWORD PTR SS:
005E224C|.E8 2715F5FF CALL mailer.00533778
005E2251|.8B55 F0 MOV EDX,DWORD PTR SS: ;//EDX==试练码
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:,AL ;//=AL
005E2266|.807D FB 00 CMP BYTE PTR SS:,0 ;//关键比较
005E226A|.0F84 DB000000 JE mailer.005E234B ;//关键跳转
005E2270|.8B45 FC MOV EAX,DWORD PTR SS:
005E2273|.C680 BC030000>MOV BYTE PTR DS:,1
005E227A|.8D45 F4 LEA EAX,DWORD PTR SS:
005E227D|.50 PUSH EAX
005E227E|.8D55 E8 LEA EDX,DWORD PTR SS:
005E2281|.B8 B4235E00 MOV EAX,mailer.005E23B4 ;b99e9da78684ba9a97b78e
005E2286|.E8 5963F5FF CALL mailer.005385E4
005E228B|.8B45 E8 MOV EAX,DWORD PTR SS:
005E228E|.50 PUSH EAX
005E228F|.8D55 E4 LEA EDX,DWORD PTR SS:
005E2292|.B8 D4235E00 MOV EAX,mailer.005E23D4 ;be828b999a8c9f88b1a0848e9f829e828b99b1a9bfa0bfbeb5
005E2297|.E8 4863F5FF CALL mailer.005385E4
005E229C|.8B55 E4 MOV EDX,DWORD PTR SS:
005E229F|.A1 74755F00 MOV EAX,DWORD PTR DS:
005E22A4|.59 POP ECX
005E22A5|.E8 FE1EFAFF CALL mailer.005841A8
005E22AA|.8D55 E0 LEA EDX,DWORD PTR SS:
005E22AD|.A1 6C755F00 MOV EAX,DWORD PTR DS:
005E22B2|.E8 7562F5FF CALL mailer.0053852C
005E22B7|.8B45 E0 MOV EAX,DWORD PTR SS:
005E22BA|.50 PUSH EAX
005E22BB|.8D55 DC LEA EDX,DWORD PTR SS:
005E22BE|.B8 10245E00 MOV EAX,mailer.005E2410 ;ac9e95bc9f9ba9819d8eab95
005E22C3|.E8 1C63F5FF CALL mailer.005385E4
005E22C8|.8B45 DC MOV EAX,DWORD PTR SS:
005E22CB|.50 PUSH EAX
005E22CC|.8D55 D8 LEA EDX,DWORD PTR SS:
005E22CF|.B8 D4235E00 MOV EAX,mailer.005E23D4 ;be828b999a8c9f88b1a0848e9f829e828b99b1a9bfa0bfbeb5
005E22D4|.E8 0B63F5FF CALL mailer.005385E4
005E22D9|.8B55 D8 MOV EDX,DWORD PTR SS:
005E22DC|.A1 74755F00 MOV EAX,DWORD PTR DS:
005E22E1|.59 POP ECX
005E22E2|.E8 0520FAFF CALL mailer.005842EC
005E22E7|.837D F4 00 CMP DWORD PTR SS:,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: ; |
005E22F8|.9B WAIT ; |
005E22F9|.8D45 D4 LEA EAX,DWORD PTR SS: ; |
005E22FC|.E8 F3B2E2FF CALL mailer.0040D5F4 ; \mailer.0040D5F4
005E2301|.8B45 D4 MOV EAX,DWORD PTR SS:
005E2304|.50 PUSH EAX
005E2305|.8D55 D0 LEA EDX,DWORD PTR SS:
005E2308|.B8 B4235E00 MOV EAX,mailer.005E23B4 ;b99e9da78684ba9a97b78e
005E230D|.E8 D262F5FF CALL mailer.005385E4
005E2312|.8B45 D0 MOV EAX,DWORD PTR SS:
005E2315|.50 PUSH EAX
005E2316|.8D55 CC LEA EDX,DWORD PTR SS:
005E2319|.B8 D4235E00 MOV EAX,mailer.005E23D4 ;be828b999a8c9f88b1a0848e9f829e828b99b1a9bfa0bfbeb5
005E231E|.E8 C162F5FF CALL mailer.005385E4
005E2323|.8B55 CC MOV EDX,DWORD PTR SS:
005E2326|.A1 74755F00 MOV EAX,DWORD PTR DS:
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:
005E2342|.8B00 MOV EAX,DWORD PTR DS:
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:
005E2366|.8B00 MOV EAX,DWORD PTR DS:
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:,EDX
005E2375|.68 A4235E00 PUSH mailer.005E23A4
005E237A|>8D45 CC LEA EAX,DWORD PTR SS:
005E237D|.BA 08000000 MOV EDX,8
005E2382|.E8 6D32E2FF CALL mailer.004055F4
005E2387|.8D45 EC LEA EAX,DWORD PTR SS:
005E238A|.E8 4132E2FF CALL mailer.004055D0
005E238F|.8D45 F0 LEA EAX,DWORD PTR SS:
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:
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:,EAX
005E1F7F|.C645 FF 00 MOV BYTE PTR SS:,0
005E1F83|.A1 6C755F00 MOV EAX,DWORD PTR DS:
005E1F88|.8945 F4 MOV DWORD PTR SS:,EAX
005E1F8B|.8B45 F4 MOV EAX,DWORD PTR SS:
005E1F8E|.8945 F0 MOV DWORD PTR SS:,EAX
005E1F91|.837D F0 00 CMP DWORD PTR SS:,0
005E1F95|.74 0B JE SHORT mailer.005E1FA2 ;//若试练码为空则跳
005E1F97|.8B45 F0 MOV EAX,DWORD PTR SS:
005E1F9A|.83E8 04 SUB EAX,4
005E1F9D|.8B00 MOV EAX,DWORD PTR DS:
005E1F9F|.8945 F0 MOV DWORD PTR SS:,EAX
005E1FA2|>837D F0 0E CMP DWORD PTR SS:,0E
005E1FA6|.0F85 85000000 JNZ mailer.005E2031 ;//若试练码非14位则跳
005E1FAC|.A1 6C755F00 MOV EAX,DWORD PTR DS: ;//试练码地址
005E1FB1|.8038 31 CMP BYTE PTR DS:,31 ;//试练码第1位与"1"比较
005E1FB4|.0F94C0 SETE AL ;//条件为假 FALSE,置0;条件为真 TRUE,置1
005E1FB7|.83E0 7F AND EAX,7F
005E1FBA|.0145 F8 ADD DWORD PTR SS:,EAX ;//累加
005E1FBD|.A1 6C755F00 MOV EAX,DWORD PTR DS:
005E1FC2|.8078 02 39 CMP BYTE PTR DS:,39 ;//试练码第3位与"9"比较
005E1FC6|.0F94C0 SETE AL
005E1FC9|.83E0 7F AND EAX,7F
005E1FCC|.0145 F8 ADD DWORD PTR SS:,EAX
005E1FCF|.A1 6C755F00 MOV EAX,DWORD PTR DS:
005E1FD4|.8078 03 33 CMP BYTE PTR DS:,33 ;//试练码第4位与"3"比较
005E1FD8|.0F94C0 SETE AL
005E1FDB|.83E0 7F AND EAX,7F
005E1FDE|.0145 F8 ADD DWORD PTR SS:,EAX
005E1FE1|.A1 6C755F00 MOV EAX,DWORD PTR DS:
005E1FE6|.8078 04 35 CMP BYTE PTR DS:,35 ;//试练码第5位与"5"比较
005E1FEA|.0F94C0 SETE AL
005E1FED|.83E0 7F AND EAX,7F
005E1FF0|.0145 F8 ADD DWORD PTR SS:,EAX
005E1FF3|.A1 6C755F00 MOV EAX,DWORD PTR DS:
005E1FF8|.8078 07 39 CMP BYTE PTR DS:,39 ;//试练码第8位与"9"比较
005E1FFC|.0F94C0 SETE AL
005E1FFF|.83E0 7F AND EAX,7F
005E2002|.0145 F8 ADD DWORD PTR SS:,EAX
005E2005|.A1 6C755F00 MOV EAX,DWORD PTR DS:
005E200A|.8078 08 34 CMP BYTE PTR DS:,34 ;//试练码第9位与"4"比较
005E200E|.0F94C0 SETE AL
005E2011|.83E0 7F AND EAX,7F
005E2014|.0145 F8 ADD DWORD PTR SS:,EAX
005E2017|.A1 6C755F00 MOV EAX,DWORD PTR DS:
005E201C|.8078 0A 30 CMP BYTE PTR DS:,30 ;//试练码第11位与"0"比较
005E2020|.0F94C0 SETE AL
005E2023|.83E0 7F AND EAX,7F
005E2026|.0145 F8 ADD DWORD PTR SS:,EAX
005E2029|.837D F8 07 CMP DWORD PTR SS:,7 ;//比较累加值是否是7,即这7个数是否都正确
005E202D|.0F9445 FF SETE BYTE PTR SS: ;//条件为假 FALSE,置0;条件为真 TRUE,置1
005E2031|>8A45 FF MOV AL,BYTE PTR SS: ;//AL=
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老大以及很多前辈们的学习教程以及所有帮助过我的论坛兄弟姐妹们!谢谢
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! 向楼主学习算法分析。 强烈支持一下哦/:001 学习,写得不错,适合我这样的菜鸟学习 /:001把软件找来看看
页:
[1]