- UID
- 28352
注册时间2007-2-21
阅读权限40
最后登录1970-1-1
独步武林
TA的每日心情 | 开心 2024-5-1 14:44 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
【破文标题】Magic Photo Editor 4.9 算法分析
【破文作者】tianxj
【作者邮箱】[email protected]
【作者主页】WwW.ChiNaPYG.CoM
【破解工具】PEiD,OD
【破解平台】雨林木风Windows XP sp3
【软件名称】Magic Photo Editor 4.9
【软件大小】3167KB
【软件类别】国外软件/图像处理
【软件授权】共享版
【软件语言】英文
【运行环境】Win9x/Me/NT/2000/XP/2003
【更新时间】2009-1-12
【原版下载】华军软件园
【保护方式】注册码
【软件简介】一个图片编辑工具。可以轻松地将一张图片中的某些部份合成到另一张图片中,成为一张有特殊效果的图片。
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------
【破解内容】
--------------------------------------------------------------
**************************************************************
一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
**************************************************************
二、用PEiD对MagicPhoto.exe查壳,为 Borland Delphi 6.0 - 7.0
**************************************************************
三、运行OD,打开MagicPhoto.exe,右键—超级字串参考—查找ASCII.
==============================================================
- 004831B4 /. 55 PUSH EBP
- 004831B5 |. 8BEC MOV EBP,ESP
- 004831B7 |. B9 05000000 MOV ECX,5
- 004831BC |> 6A 00 /PUSH 0
- 004831BE |. 6A 00 |PUSH 0
- 004831C0 |. 49 |DEC ECX
- 004831C1 |.^ 75 F9 \JNZ SHORT MagicPho.004831BC
- 004831C3 |. 51 PUSH ECX
- 004831C4 |. 53 PUSH EBX
- 004831C5 |. 56 PUSH ESI
- 004831C6 |. 8BD8 MOV EBX,EAX
- 004831C8 |. 33C0 XOR EAX,EAX
- 004831CA |. 55 PUSH EBP
- 004831CB |. 68 72334800 PUSH MagicPho.00483372
- 004831D0 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
- 004831D3 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
- 004831D6 |. 8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
- 004831DC |. 8B10 MOV EDX,DWORD PTR DS:[EAX]
- 004831DE |. FF52 50 CALL DWORD PTR DS:[EDX+50]
- 004831E1 |. 3C 01 CMP AL,1
- 004831E3 |. 0F85 18010000 JNZ MagicPho.00483301
- 004831E9 |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
- 004831EC |. 8BB3 00030000 MOV ESI,DWORD PTR DS:[EBX+300]
- 004831F2 |. 8BC6 MOV EAX,ESI
- 004831F4 |. E8 8F39FBFF CALL MagicPho.00436B88
- 004831F9 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; //假码
- 004831FC |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
- 004831FF |. E8 EC54F8FF CALL MagicPho.004086F0
- 00483204 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] ; //假码
- 00483207 |. 8BC6 MOV EAX,ESI
- 00483209 |. E8 AA39FBFF CALL MagicPho.00436BB8
- 0048320E |. 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
- 00483211 |. 8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
- 00483217 |. E8 6C39FBFF CALL MagicPho.00436B88
- 0048321C |. 837D F4 00 CMP DWORD PTR SS:[EBP-C],0
- 00483220 |. 0F84 CF000000 JE MagicPho.004832F5 ; //假码为空则跳
- 00483226 |. 8D55 EC LEA EDX,DWORD PTR SS:[EBP-14]
- 00483229 |. 8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
- 0048322F |. E8 5439FBFF CALL MagicPho.00436B88
- 00483234 |. 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14] ; //假码
- 00483237 |. 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
- 0048323A |. E8 6152F8FF CALL MagicPho.004084A0
- 0048323F |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] ; //假码
- 00483242 |. E8 4DA4FFFF CALL MagicPho.0047D694 ; //关键CALL
- 00483247 |. 84C0 TEST AL,AL
- 00483249 |. 0F84 9A000000 JE MagicPho.004832E9
- 0048324F |. 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18]
- 00483252 |. 8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
- 00483258 |. E8 2B39FBFF CALL MagicPho.00436B88
- 0048325D |. 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18] ; //假码
- 00483260 |. E8 E713F8FF CALL MagicPho.0040464C ; //取假码长度
- 00483265 |. 83F8 0B CMP EAX,0B
- 00483268 |. 75 7F JNZ SHORT MagicPho.004832E9 ; //假码长度不等于11则跳
- 0048326A |. 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C]
- 0048326D |. 50 PUSH EAX
- 0048326E |. 8D55 DC LEA EDX,DWORD PTR SS:[EBP-24]
- 00483271 |. 8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
- 00483277 |. E8 0C39FBFF CALL MagicPho.00436B88
- 0048327C |. 8B45 DC MOV EAX,DWORD PTR SS:[EBP-24]
- 0048327F |. 8D55 E0 LEA EDX,DWORD PTR SS:[EBP-20]
- 00483282 |. E8 1952F8FF CALL MagicPho.004084A0
- 00483287 |. 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20] ; //假码
- 0048328A |. B9 01000000 MOV ECX,1
- 0048328F |. BA 0B000000 MOV EDX,0B
- 00483294 |. E8 0B16F8FF CALL MagicPho.004048A4 ; //取假码第11位
- 00483299 |. 8B45 E4 MOV EAX,DWORD PTR SS:[EBP-1C] ; //假码第11位
- 0048329C |. BA 88334800 MOV EDX,MagicPho.00483388 ; U
- 004832A1 |. E8 EA14F8FF CALL MagicPho.00404790
- 004832A6 |. 75 41 JNZ SHORT MagicPho.004832E9 ; //假码第11位不为"U"则跳
- 004832A8 |. 8D55 D4 LEA EDX,DWORD PTR SS:[EBP-2C]
- 004832AB |. 8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
- 004832B1 |. E8 D238FBFF CALL MagicPho.00436B88
- 004832B6 |. 8B45 D4 MOV EAX,DWORD PTR SS:[EBP-2C]
- 004832B9 |. 8D55 D8 LEA EDX,DWORD PTR SS:[EBP-28]
- 004832BC |. E8 DF51F8FF CALL MagicPho.004084A0
- 004832C1 |. 8B55 D8 MOV EDX,DWORD PTR SS:[EBP-28]
- 004832C4 |. B8 94334800 MOV EAX,MagicPho.00483394 ; magic.bin
- 004832C9 |. E8 FEA4FFFF CALL MagicPho.0047D7CC
- 004832CE |. A1 149B4800 MOV EAX,DWORD PTR DS:[489B14]
- 004832D3 |. BA A8334800 MOV EDX,MagicPho.004833A8 ; Y
- 004832D8 |. E8 0B11F8FF CALL MagicPho.004043E8
- 004832DD |. B8 B4334800 MOV EAX,MagicPho.004833B4 ; Successfully Registered!
- 004832E2 |. E8 35D4FAFF CALL MagicPho.0043071C
- 004832E7 |. EB 22 JMP SHORT MagicPho.0048330B
- 004832E9 |> B8 D8334800 MOV EAX,MagicPho.004833D8 ; Invalid SerialNumber!
- 004832EE |. E8 29D4FAFF CALL MagicPho.0043071C
- 004832F3 |. EB 16 JMP SHORT MagicPho.0048330B
- 004832F5 |> B8 D8334800 MOV EAX,MagicPho.004833D8 ; Invalid SerialNumber!
- 004832FA |. E8 1DD4FAFF CALL MagicPho.0043071C
- 004832FF |. EB 0A JMP SHORT MagicPho.0048330B
- 00483301 |> B8 F8334800 MOV EAX,MagicPho.004833F8 ; Already Registered!
- 00483306 |. E8 11D4FAFF CALL MagicPho.0043071C
- 0048330B |> A1 5CAD4800 MOV EAX,DWORD PTR DS:[48AD5C]
- 00483310 |. E8 D708FDFF CALL MagicPho.00453BEC
- 00483315 |. 33C0 XOR EAX,EAX
- 00483317 |. 5A POP EDX
- 00483318 |. 59 POP ECX
- 00483319 |. 59 POP ECX
- 0048331A |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
- 0048331D |. 68 79334800 PUSH MagicPho.00483379
- 00483322 |> 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
- 00483325 |. E8 6A10F8FF CALL MagicPho.00404394
- 0048332A |. 8D45 D8 LEA EAX,DWORD PTR SS:[EBP-28]
- 0048332D |. E8 6210F8FF CALL MagicPho.00404394
- 00483332 |. 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24]
- 00483335 |. E8 5A10F8FF CALL MagicPho.00404394
- 0048333A |. 8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20]
- 0048333D |. BA 02000000 MOV EDX,2
- 00483342 |. E8 7110F8FF CALL MagicPho.004043B8
- 00483347 |. 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18]
- 0048334A |. BA 02000000 MOV EDX,2
- 0048334F |. E8 6410F8FF CALL MagicPho.004043B8
- 00483354 |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
- 00483357 |. E8 3810F8FF CALL MagicPho.00404394
- 0048335C |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
- 0048335F |. BA 02000000 MOV EDX,2
- 00483364 |. E8 4F10F8FF CALL MagicPho.004043B8
- 00483369 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
- 0048336C |. E8 2310F8FF CALL MagicPho.00404394
- 00483371 \. C3 RETN
- 00483372 .^ E9 450AF8FF JMP MagicPho.00403DBC
- 00483377 .^ EB A9 JMP SHORT MagicPho.00483322
- 00483379 . 5E POP ESI
- 0048337A . 5B POP EBX
- 0048337B . 8BE5 MOV ESP,EBP
- 0048337D . 5D POP EBP
- 0048337E . C3 RETN
复制代码 由上可知,注册码为11位,并且第11位为"U"
==============================================================
- 0047D694 /$ 55 PUSH EBP
- 0047D695 |. 8BEC MOV EBP,ESP
- 0047D697 |. B9 04000000 MOV ECX,4
- 0047D69C |> 6A 00 /PUSH 0
- 0047D69E |. 6A 00 |PUSH 0
- 0047D6A0 |. 49 |DEC ECX
- 0047D6A1 |.^ 75 F9 \JNZ SHORT MagicPho.0047D69C
- 0047D6A3 |. 51 PUSH ECX
- 0047D6A4 |. 53 PUSH EBX
- 0047D6A5 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
- 0047D6A8 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //假码
- 0047D6AB |. E8 8471F8FF CALL MagicPho.00404834
- 0047D6B0 |. 33C0 XOR EAX,EAX
- 0047D6B2 |. 55 PUSH EBP
- 0047D6B3 |. 68 BDD74700 PUSH MagicPho.0047D7BD
- 0047D6B8 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
- 0047D6BB |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
- 0047D6BE |. 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
- 0047D6C1 |. E8 B2FDFFFF CALL MagicPho.0047D478
- 0047D6C6 |. 8D4D EC LEA ECX,DWORD PTR SS:[EBP-14]
- 0047D6C9 |. 33D2 XOR EDX,EDX
- 0047D6CB |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; //用户名
- 0047D6CE |. E8 1DFBFFFF CALL MagicPho.0047D1F0 ; //将用户名重新排序
- 0047D6D3 |. 8B55 EC MOV EDX,DWORD PTR SS:[EBP-14] ; //重新排序后的用户名
- 0047D6D6 |. 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
- 0047D6D9 |. E8 4E6DF8FF CALL MagicPho.0040442C
- 0047D6DE |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
- 0047D6E1 |. 50 PUSH EAX
- 0047D6E2 |. B9 0A000000 MOV ECX,0A
- 0047D6E7 |. BA 01000000 MOV EDX,1
- 0047D6EC |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //假码
- 0047D6EF |. E8 B071F8FF CALL MagicPho.004048A4 ; //取假码第1-10位
- 0047D6F4 |. 8D4D E8 LEA ECX,DWORD PTR SS:[EBP-18]
- 0047D6F7 |. 66:BA 0001 MOV DX,100 ; //DX=100
- 0047D6FB |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //假码第1-10位
- 0047D6FE |. E8 1DFFFFFF CALL MagicPho.0047D620 ; //将假码变形
- 0047D703 |. 8B55 E8 MOV EDX,DWORD PTR SS:[EBP-18] ; //变形后的假码
- 0047D706 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
- 0047D709 |. E8 1E6DF8FF CALL MagicPho.0040442C
- 0047D70E |. 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C]
- 0047D711 |. 33D2 XOR EDX,EDX
- 0047D713 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //变形后的假码
- 0047D716 |. E8 D5FAFFFF CALL MagicPho.0047D1F0 ; //将变形后的假码重新排序
- 0047D71B |. 8B55 E4 MOV EDX,DWORD PTR SS:[EBP-1C] ; //重新排序后的假码
- 0047D71E |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
- 0047D721 |. E8 066DF8FF CALL MagicPho.0040442C
- 0047D726 |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
- 0047D729 |. 50 PUSH EAX
- 0047D72A |. B9 04000000 MOV ECX,4
- 0047D72F |. BA 0A000000 MOV EDX,0A
- 0047D734 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //重新排序后的假码
- 0047D737 |. E8 6871F8FF CALL MagicPho.004048A4 ; //取重新排序后的假码第10-13位
- 0047D73C |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
- 0047D73F |. 50 PUSH EAX
- 0047D740 |. B9 06000000 MOV ECX,6
- 0047D745 |. BA 05000000 MOV EDX,5
- 0047D74A |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //重新排序后的假码
- 0047D74D |. E8 5271F8FF CALL MagicPho.004048A4 ; //取重新排序后的假码第5-10位
- 0047D752 |. 8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20]
- 0047D755 |. 50 PUSH EAX
- 0047D756 |. B9 04000000 MOV ECX,4
- 0047D75B |. BA 01000000 MOV EDX,1
- 0047D760 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; //用户名
- 0047D763 |. E8 3C71F8FF CALL MagicPho.004048A4 ; //取用户名第1-4位
- 0047D768 |. 8B55 E0 MOV EDX,DWORD PTR SS:[EBP-20] ; //用户名第1-4位
- 0047D76B |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] ; //重新排序后的假码第10-13位
- 0047D76E |. E8 1572F8FF CALL MagicPho.00404988
- 0047D773 |. 85C0 TEST EAX,EAX
- 0047D775 |. 7F 25 JG SHORT MagicPho.0047D79C
- 0047D777 |. 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24]
- 0047D77A |. 50 PUSH EAX
- 0047D77B |. B9 06000000 MOV ECX,6
- 0047D780 |. BA 05000000 MOV EDX,5
- 0047D785 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; //用户名
- 0047D788 |. E8 1771F8FF CALL MagicPho.004048A4 ; //取用户名第5-10位
- 0047D78D |. 8B55 DC MOV EDX,DWORD PTR SS:[EBP-24] ; //用户名第5-10位
- 0047D790 |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] ; //重新排序后的假码第5-10位
- 0047D793 |. E8 F071F8FF CALL MagicPho.00404988 ; //关键比较
- 0047D798 |. 85C0 TEST EAX,EAX
- 0047D79A |. 7E 04 JLE SHORT MagicPho.0047D7A0 ; //关键跳转
- 0047D79C |> B3 01 MOV BL,1
- 0047D79E |. EB 02 JMP SHORT MagicPho.0047D7A2
- 0047D7A0 |> 33DB XOR EBX,EBX
- 0047D7A2 |> 33C0 XOR EAX,EAX
- 0047D7A4 |. 5A POP EDX
- 0047D7A5 |. 59 POP ECX
- 0047D7A6 |. 59 POP ECX
- 0047D7A7 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
- 0047D7AA |. 68 C4D74700 PUSH MagicPho.0047D7C4
- 0047D7AF |> 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24]
- 0047D7B2 |. BA 09000000 MOV EDX,9
- 0047D7B7 |. E8 FC6BF8FF CALL MagicPho.004043B8
- 0047D7BC \. C3 RETN
- 0047D7BD .^ E9 FA65F8FF JMP MagicPho.00403DBC
- 0047D7C2 .^ EB EB JMP SHORT MagicPho.0047D7AF
- 0047D7C4 . 8BC3 MOV EAX,EBX
- 0047D7C6 . 5B POP EBX
- 0047D7C7 . 8BE5 MOV ESP,EBP
- 0047D7C9 . 5D POP EBP
- 0047D7CA . C3 RETN
复制代码 由上可知,软件是将注册码与用户名都变形后进行比较的
==============================================================
- 0047D1F0 /$ 55 PUSH EBP
- 0047D1F1 |. 8BEC MOV EBP,ESP
- 0047D1F3 |. 51 PUSH ECX
- 0047D1F4 |. B9 0A000000 MOV ECX,0A
- 0047D1F9 |> 6A 00 /PUSH 0
- 0047D1FB |. 6A 00 |PUSH 0
- 0047D1FD |. 49 |DEC ECX
- 0047D1FE |.^ 75 F9 \JNZ SHORT MagicPho.0047D1F9
- 0047D200 |. 874D FC XCHG DWORD PTR SS:[EBP-4],ECX
- 0047D203 |. 53 PUSH EBX
- 0047D204 |. 56 PUSH ESI
- 0047D205 |. 8BF1 MOV ESI,ECX
- 0047D207 |. 8BDA MOV EBX,EDX
- 0047D209 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
- 0047D20C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //用户名
- 0047D20F |. E8 2076F8FF CALL MagicPho.00404834
- 0047D214 |. 33C0 XOR EAX,EAX
- 0047D216 |. 55 PUSH EBP
- 0047D217 |. 68 6AD44700 PUSH MagicPho.0047D46A
- 0047D21C |. 64:FF30 PUSH DWORD PTR FS:[EAX]
- 0047D21F |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
- 0047D222 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //用户名
- 0047D225 |. E8 2274F8FF CALL MagicPho.0040464C ; //取用户名长度
- 0047D22A |. 84DB TEST BL,BL
- 0047D22C |. 0F84 0C010000 JE MagicPho.0047D33E
- 0047D232 |. 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
- 0047D235 |. 50 PUSH EAX
- 0047D236 |. B9 01000000 MOV ECX,1
- 0047D23B |. BA 03000000 MOV EDX,3
- 0047D240 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D243 |. E8 5C76F8FF CALL MagicPho.004048A4
- 0047D248 |. FF75 F8 PUSH DWORD PTR SS:[EBP-8]
- 0047D24B |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
- 0047D24E |. 50 PUSH EAX
- 0047D24F |. B9 01000000 MOV ECX,1
- 0047D254 |. BA 09000000 MOV EDX,9
- 0047D259 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D25C |. E8 4376F8FF CALL MagicPho.004048A4
- 0047D261 |. FF75 F4 PUSH DWORD PTR SS:[EBP-C]
- 0047D264 |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
- 0047D267 |. 50 PUSH EAX
- 0047D268 |. B9 01000000 MOV ECX,1
- 0047D26D |. BA 04000000 MOV EDX,4
- 0047D272 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D275 |. E8 2A76F8FF CALL MagicPho.004048A4
- 0047D27A |. FF75 F0 PUSH DWORD PTR SS:[EBP-10]
- 0047D27D |. 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
- 0047D280 |. 50 PUSH EAX
- 0047D281 |. B9 01000000 MOV ECX,1
- 0047D286 |. BA 01000000 MOV EDX,1
- 0047D28B |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D28E |. E8 1176F8FF CALL MagicPho.004048A4
- 0047D293 |. FF75 EC PUSH DWORD PTR SS:[EBP-14]
- 0047D296 |. 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18]
- 0047D299 |. 50 PUSH EAX
- 0047D29A |. B9 01000000 MOV ECX,1
- 0047D29F |. BA 06000000 MOV EDX,6
- 0047D2A4 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D2A7 |. E8 F875F8FF CALL MagicPho.004048A4
- 0047D2AC |. FF75 E8 PUSH DWORD PTR SS:[EBP-18]
- 0047D2AF |. 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C]
- 0047D2B2 |. 50 PUSH EAX
- 0047D2B3 |. B9 01000000 MOV ECX,1
- 0047D2B8 |. BA 08000000 MOV EDX,8
- 0047D2BD |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D2C0 |. E8 DF75F8FF CALL MagicPho.004048A4
- 0047D2C5 |. FF75 E4 PUSH DWORD PTR SS:[EBP-1C]
- 0047D2C8 |. 8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20]
- 0047D2CB |. 50 PUSH EAX
- 0047D2CC |. B9 01000000 MOV ECX,1
- 0047D2D1 |. BA 05000000 MOV EDX,5
- 0047D2D6 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D2D9 |. E8 C675F8FF CALL MagicPho.004048A4
- 0047D2DE |. FF75 E0 PUSH DWORD PTR SS:[EBP-20]
- 0047D2E1 |. 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24]
- 0047D2E4 |. 50 PUSH EAX
- 0047D2E5 |. B9 01000000 MOV ECX,1
- 0047D2EA |. BA 07000000 MOV EDX,7
- 0047D2EF |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D2F2 |. E8 AD75F8FF CALL MagicPho.004048A4
- 0047D2F7 |. FF75 DC PUSH DWORD PTR SS:[EBP-24]
- 0047D2FA |. 8D45 D8 LEA EAX,DWORD PTR SS:[EBP-28]
- 0047D2FD |. 50 PUSH EAX
- 0047D2FE |. B9 01000000 MOV ECX,1
- 0047D303 |. BA 0A000000 MOV EDX,0A
- 0047D308 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D30B |. E8 9475F8FF CALL MagicPho.004048A4
- 0047D310 |. FF75 D8 PUSH DWORD PTR SS:[EBP-28]
- 0047D313 |. 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
- 0047D316 |. 50 PUSH EAX
- 0047D317 |. B9 01000000 MOV ECX,1
- 0047D31C |. BA 02000000 MOV EDX,2
- 0047D321 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D324 |. E8 7B75F8FF CALL MagicPho.004048A4
- 0047D329 |. FF75 D4 PUSH DWORD PTR SS:[EBP-2C]
- 0047D32C |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
- 0047D32F |. BA 0A000000 MOV EDX,0A
- 0047D334 |. E8 D373F8FF CALL MagicPho.0040470C
- 0047D339 |. E9 07010000 JMP MagicPho.0047D445
- 0047D33E |> 8D45 D0 LEA EAX,DWORD PTR SS:[EBP-30]
- 0047D341 |. 50 PUSH EAX
- 0047D342 |. B9 01000000 MOV ECX,1
- 0047D347 |. BA 04000000 MOV EDX,4
- 0047D34C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; //用户名
- 0047D34F |. E8 5075F8FF CALL MagicPho.004048A4 ; //取用户名第4位
- 0047D354 |. FF75 D0 PUSH DWORD PTR SS:[EBP-30]
- 0047D357 |. 8D45 CC LEA EAX,DWORD PTR SS:[EBP-34]
- 0047D35A |. 50 PUSH EAX
- 0047D35B |. B9 01000000 MOV ECX,1
- 0047D360 |. BA 0A000000 MOV EDX,0A
- 0047D365 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D368 |. E8 3775F8FF CALL MagicPho.004048A4 ; //取用户名第10位
- 0047D36D |. FF75 CC PUSH DWORD PTR SS:[EBP-34]
- 0047D370 |. 8D45 C8 LEA EAX,DWORD PTR SS:[EBP-38]
- 0047D373 |. 50 PUSH EAX
- 0047D374 |. B9 01000000 MOV ECX,1
- 0047D379 |. BA 01000000 MOV EDX,1
- 0047D37E |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D381 |. E8 1E75F8FF CALL MagicPho.004048A4 ; //取用户名第1位
- 0047D386 |. FF75 C8 PUSH DWORD PTR SS:[EBP-38]
- 0047D389 |. 8D45 C4 LEA EAX,DWORD PTR SS:[EBP-3C]
- 0047D38C |. 50 PUSH EAX
- 0047D38D |. B9 01000000 MOV ECX,1
- 0047D392 |. BA 03000000 MOV EDX,3
- 0047D397 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D39A |. E8 0575F8FF CALL MagicPho.004048A4 ; //取用户名第3位
- 0047D39F |. FF75 C4 PUSH DWORD PTR SS:[EBP-3C]
- 0047D3A2 |. 8D45 C0 LEA EAX,DWORD PTR SS:[EBP-40]
- 0047D3A5 |. 50 PUSH EAX
- 0047D3A6 |. B9 01000000 MOV ECX,1
- 0047D3AB |. BA 07000000 MOV EDX,7
- 0047D3B0 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D3B3 |. E8 EC74F8FF CALL MagicPho.004048A4 ; //取用户名第7位
- 0047D3B8 |. FF75 C0 PUSH DWORD PTR SS:[EBP-40]
- 0047D3BB |. 8D45 BC LEA EAX,DWORD PTR SS:[EBP-44]
- 0047D3BE |. 50 PUSH EAX
- 0047D3BF |. B9 01000000 MOV ECX,1
- 0047D3C4 |. BA 05000000 MOV EDX,5
- 0047D3C9 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D3CC |. E8 D374F8FF CALL MagicPho.004048A4 ; //取用户名第5位
- 0047D3D1 |. FF75 BC PUSH DWORD PTR SS:[EBP-44]
- 0047D3D4 |. 8D45 B8 LEA EAX,DWORD PTR SS:[EBP-48]
- 0047D3D7 |. 50 PUSH EAX
- 0047D3D8 |. B9 01000000 MOV ECX,1
- 0047D3DD |. BA 08000000 MOV EDX,8
- 0047D3E2 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D3E5 |. E8 BA74F8FF CALL MagicPho.004048A4 ; //取用户名第8位
- 0047D3EA |. FF75 B8 PUSH DWORD PTR SS:[EBP-48]
- 0047D3ED |. 8D45 B4 LEA EAX,DWORD PTR SS:[EBP-4C]
- 0047D3F0 |. 50 PUSH EAX
- 0047D3F1 |. B9 01000000 MOV ECX,1
- 0047D3F6 |. BA 06000000 MOV EDX,6
- 0047D3FB |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D3FE |. E8 A174F8FF CALL MagicPho.004048A4 ; //取用户名第6位
- 0047D403 |. FF75 B4 PUSH DWORD PTR SS:[EBP-4C]
- 0047D406 |. 8D45 B0 LEA EAX,DWORD PTR SS:[EBP-50]
- 0047D409 |. 50 PUSH EAX
- 0047D40A |. B9 01000000 MOV ECX,1
- 0047D40F |. BA 02000000 MOV EDX,2
- 0047D414 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D417 |. E8 8874F8FF CALL MagicPho.004048A4 ; //取用户名第2位
- 0047D41C |. FF75 B0 PUSH DWORD PTR SS:[EBP-50]
- 0047D41F |. 8D45 AC LEA EAX,DWORD PTR SS:[EBP-54]
- 0047D422 |. 50 PUSH EAX
- 0047D423 |. B9 01000000 MOV ECX,1
- 0047D428 |. BA 09000000 MOV EDX,9
- 0047D42D |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
- 0047D430 |. E8 6F74F8FF CALL MagicPho.004048A4 ; //取用户名第9位
- 0047D435 |. FF75 AC PUSH DWORD PTR SS:[EBP-54]
- 0047D438 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
- 0047D43B |. BA 0A000000 MOV EDX,0A
- 0047D440 |. E8 C772F8FF CALL MagicPho.0040470C
- 0047D445 |> 8BC6 MOV EAX,ESI
- 0047D447 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] ; //重新排序后的用户名
- 0047D44A |. E8 996FF8FF CALL MagicPho.004043E8
- 0047D44F |. 33C0 XOR EAX,EAX
- 0047D451 |. 5A POP EDX
- 0047D452 |. 59 POP ECX
- 0047D453 |. 59 POP ECX
- 0047D454 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
- 0047D457 |. 68 71D44700 PUSH MagicPho.0047D471
- 0047D45C |> 8D45 AC LEA EAX,DWORD PTR SS:[EBP-54]
- 0047D45F |. BA 15000000 MOV EDX,15
- 0047D464 |. E8 4F6FF8FF CALL MagicPho.004043B8
- 0047D469 \. C3 RETN
- 0047D46A .^ E9 4D69F8FF JMP MagicPho.00403DBC
- 0047D46F .^ EB EB JMP SHORT MagicPho.0047D45C
- 0047D471 . 5E POP ESI
- 0047D472 . 5B POP EBX
- 0047D473 . 8BE5 MOV ESP,EBP
- 0047D475 . 5D POP EBP
- 0047D476 . C3 RETN
复制代码 由上可知,软件是将用户名和注册码的第4位、第10位、第1位、第3位、第7位、第5位、第8位、第6位、第2位、第9位重新连接
==============================================================
- 0047D620 /$ 53 PUSH EBX
- 0047D621 |. 56 PUSH ESI
- 0047D622 |. 57 PUSH EDI
- 0047D623 |. 55 PUSH EBP
- 0047D624 |. 83C4 F8 ADD ESP,-8
- 0047D627 |. 8BF9 MOV EDI,ECX
- 0047D629 |. 8BEA MOV EBP,EDX ; //EBP=EDX
- 0047D62B |. 890424 MOV DWORD PTR SS:[ESP],EAX
- 0047D62E |. 8BC7 MOV EAX,EDI
- 0047D630 |. 8B1424 MOV EDX,DWORD PTR SS:[ESP] ; //假码第1-10位
- 0047D633 |. E8 B06DF8FF CALL MagicPho.004043E8
- 0047D638 |. 8BC7 MOV EAX,EDI
- 0047D63A |. E8 5D72F8FF CALL MagicPho.0040489C
- 0047D63F |. 8B1424 MOV EDX,DWORD PTR SS:[ESP] ; //假码
- 0047D642 |. 8A12 MOV DL,BYTE PTR DS:[EDX] ; //取假码第一位
- 0047D644 |. 8810 MOV BYTE PTR DS:[EAX],DL ; //保存
- 0047D646 |. 8B0424 MOV EAX,DWORD PTR SS:[ESP]
- 0047D649 |. E8 FE6FF8FF CALL MagicPho.0040464C ; //取假码长度
- 0047D64E |. 2C 02 SUB AL,2
- 0047D650 |. 72 3A JB SHORT MagicPho.0047D68C
- 0047D652 |. 40 INC EAX
- 0047D653 |. 884424 04 MOV BYTE PTR SS:[ESP+4],AL ; //AL=9
- 0047D657 |. B3 02 MOV BL,2 ; //BL=2
- 0047D659 |> 8BC7 /MOV EAX,EDI
- 0047D65B |. E8 3C72F8FF |CALL MagicPho.0040489C
- 0047D660 |. 8BF3 |MOV ESI,EBX
- 0047D662 |. 81E6 FF000000 |AND ESI,0FF
- 0047D668 |. 8B1424 |MOV EDX,DWORD PTR SS:[ESP]
- 0047D66B |. 8A5432 FF |MOV DL,BYTE PTR DS:[EDX+ESI-1] ; //从第2位起,依次取假码的ASCII码
- 0047D66F |. 0FB7CD |MOVZX ECX,BP ; //ECX=BP,BP初始值为100
- 0047D672 |. C1E9 08 |SHR ECX,8 ; //ECX右移8位
- 0047D675 |. 32D1 |XOR DL,CL ; //DL=DL xor CL
- 0047D677 |. 885430 FF |MOV BYTE PTR DS:[EAX+ESI-1],DL ; //保存异或结果
- 0047D67B |. 8B07 |MOV EAX,DWORD PTR DS:[EDI]
- 0047D67D |. 0FB64430 FF |MOVZX EAX,BYTE PTR DS:[EAX+ESI-1] ; //取异或结果
- 0047D682 |. 66:03E8 |ADD BP,AX ; //BP=BP+AX
- 0047D685 |. 43 |INC EBX
- 0047D686 |. FE4C24 04 |DEC BYTE PTR SS:[ESP+4]
- 0047D68A |.^ 75 CD \JNZ SHORT MagicPho.0047D659 ; //循环
- 0047D68C |> 59 POP ECX
- 0047D68D |. 5A POP EDX
- 0047D68E |. 5D POP EBP
- 0047D68F |. 5F POP EDI
- 0047D690 |. 5E POP ESI
- 0047D691 |. 5B POP EBX
- 0047D692 \. C3 RETN
复制代码 由上可知,软件是注册码进行运算,这个过程即可加密也可解密
**************************************************************
【破解总结】
本程序将用户名和注册码都变形后比较,是无法作内存注册机的,如果看不懂算法流程只有走爆破之路,如果再设计几个暗桩就比较完美了,值得学习。
--------------------------------------------------------------
【算法总结】
--------------------------------------------------------------
【算法注册机】
〖易语言代码〗
.版本 2
.子程序 _按钮1_被单击
.局部变量 A, 整数型
.局部变量 B, 整数型
.局部变量 C, 整数型
.局部变量 D, 整数型
.局部变量 X, 文本型
.局部变量 i, 整数型
.如果 (取文本长度 (编辑框1.内容) = 0)
编辑框2.内容 = “请输入用户名!”
.否则
X = 编辑框1.内容
B = 256
.计次循环首 (取文本长度 (X) - 1, i)
A = 取代码 (X, i + 1)
C = 右移 (B, 8)
D = 位异或 (A, C)
X = 文本替换 (X, i + 1, 1, 字符 (D))
B = B + D
.计次循环尾 ()
编辑框2.内容 = 文本替换 (X, 11, 1, “U”)
--------------------------------------------------------------
感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及徐超等所有帮助过我的论坛兄弟姐妹们!谢谢
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! |
|