老文章档案 · 2003 年

Magic convertor 2.8注册码算法分析

赢政天下 [WINZHENG.COM] · 网络学院 · 2003-06-27 · 作者:alphakk 人气: · 出处:嬴政天下整理收藏)

Magic convertor 2.8注册码算法分析

===================================

简介:

功能强大的图像转换工具。包括图像浏览、批量转换、图像增强及作品预览四大部分。图像增强包括调整图像大小、调整层次、旋转、镜象,还有锐化、模糊、马塞克、浮雕、底片、旋涡、喷雾等效果。你可以将这些效果自定义成方案,然后再进行批量转换。而且它还支持拖入文件到批量转换列表。它的输出格式为:bmp、jpg、gif、png、tif、wmf、emf、tga、ico,还包括txt、rtf、htm、mmc等特效格式。特效格式包括正常模式、缩小一倍、缩小两倍、原图大小、彩字单一、彩字规律。同时它还能方便的将图像生成.EXE可执行文件。

主要功能:

1、可以方便的浏览图像。支持BMP,JPG,GIF,TIF,PNG,PCX等大部分图像格式

2、可方便的转换不同的图像文件

3、支持拖入文件到批量转换

4、能快速的批量转换出你想要的图像格式

5、输出的图像格式为:BMP、JPG、GIF、ICO(支持32位图标)、PNG、TIF、WMF、EMF、TGA

6、能转换出TXT、HTM、RTF等特效格式,可用于欣赏也可用于聊天室灌水

7、能将图片生成.EXE可执行文件

8、能将图标生成MIRC聊天室的图形格式(.MMC)

9、能对图像进行增强。包括图像大小、调整层次、旋转、镜象,还有锐化、模糊、马塞克、浮雕、底片、旋涡、喷雾等效果

10、支持WINDOWS右键菜单功能

11、能对图像进行优化,保存为网页图像格式

=======================================================

未注册的限制

未注册版只提供30天的使用,转换ICO文件后会贴上魔法转换图标,而且创建EXE文件后会留下版权信息,每次打开主程序还会出现关于窗口。

注册版将提供无限期的使用和全部功能

======================================================

分析:

在注册框中用户名输入:alpha

注册码输入:98765432

bpx hmemcpy下断,按F12数下直到第一次看到地址167:004xxxxx停下,换F10继续跟踪,

来到如下地址处:

:00583543 837DFC00 cmp dword ptr [ebp-04], 00000000 <<----比较用户名是否为空

:00583547 7533 jne 0058357C <<-----非空则跳

。继续跟踪

来到:

:005877D3 8B1544F65900 mov edx, dword ptr [0059F644] <<------黑名单->EDX

:005877D9 8B45FC mov eax, dword ptr [ebp-04] <<------用户名->EAX

:005877DC E8EBCBE7FF call 004043CC <<------比较函数,测试用户名是否在黑名单中

:005877E1 85C0 test eax, eax

:005877E3 744C je 00587831 <<------不同则跳

。继续跟踪

来到:

:005835A3 E8CC57EBFF call 00438D74 <<------输入的注册码的长度->EAX

:005835A8 8B45F0 mov eax, dword ptr [ebp-10] <<------输入的注册码的首地址->EAX

:005835AB 50 push eax <<------EAX入栈

:005835B5 E8BA57EBFF call 00438D74 <<------输入的用户的长度->EAX

:005835BA 8B45E8 mov eax, dword ptr [ebp-18] <<------用户名的首地址

:0058844F 8BC7 mov eax, edi <<------用户名->EAX

:00588451 E88ABCE7FF call 004040E0 <<------取得用户名的长度并送入EAX

:00588456 85C0 test eax, eax

:00588458 0F8EBF000000 jle 0058851D

:0058845E 8945F4 mov dword ptr [ebp-0C], eax <<------保存EAX的值

:00588461 BE01000000 mov esi, 00000001 <<------ESI赋初值

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

|:00588517(C)

|

:00588466 33C0 xor eax, eax <<--------EAX清零,注册码算法开始

:00588468 8A4437FF mov al, byte ptr [edi+esi-01] <<---------用户名的第一个字母"a"的ASCII码送入AL

:0058846C 99 cdq

:0058846D F7FE idiv esi <<---------EAX IDIV ESI->EAX

:0058846F 8945FC mov dword ptr [ebp-04], eax <<---------保存EAX的值

:00588472 8BC7 mov eax, edi <<----------用户名送入EAX

:00588474 E867BCE7FF call 004040E0 <<-----------取得用户名的长度并送入EAX

:00588479 50 push eax <<------------保存EAX

:0058847A 8B45FC mov eax, dword ptr [ebp-04] <<-----------取得58846F处保存的值送入EAX

:0058847D 5A pop edx <<-----------用户名的长度送入EDX

:0058847E 8BCA mov ecx, edx

:00588480 99 cdq

:00588481 F7F9 idiv ecx <<------------EAX IDIV ECX->EAX

:00588483 33D2 xor edx, edx <<------------EDX清零

:00588485 8A5437FF mov dl, byte ptr [edi+esi-01] <<----------用户名的第一个字母"a"的ASCII码送入DL

:00588489 83C203 add edx, 00000003

:0058848C F7EA imul edx <<------------EAX IMUL EDX->EAX

:0058848E 8D4DF0 lea ecx, dword ptr [ebp-10]

:00588491 BA03000000 mov edx, 00000003

:00588496 E8DD0FE8FF call 00409478 <<------------将EAX中的值(此处是76C)转化为字符串”76C"并保存

:0058849B 8B55F0 mov edx, dword ptr [ebp-10] <<-----------串"76C"的首地址->EDX

:0058849E 8D45F8 lea eax, dword ptr [ebp-08]

:005884A1 E842BCE7FF call 004040E8

:005884A6 8B45F8 mov eax, dword ptr [ebp-08]

:005884A9 E832BCE7FF call 004040E0 <<----------取得串"76C"的长度->EAX

:005884AE 50 push eax

:005884AF 8B45FC mov eax, dword ptr [ebp-04] <<----------用户名的第一个字母"a"送入EAX

:005884B2 5A pop edx <<----------串"76C"的长度->EDX

:005884B3 8BCA mov ecx, edx

:005884B5 99 cdq

:005884B6 F7F9 idiv ecx

:005884B8 8B55F8 mov edx, dword ptr [ebp-08] <<----------串"76C"的首地址->EDX

:005884BB 0FB65432FF movzx edx, byte ptr [edx+esi-01] <<------串"76C"的第一个字符"7"的ASCII码送入EDX

:005884C0 83C202 add edx, 00000002

:005884C3 F7EA imul edx <<-----EAX IMUL EDX->EAX(此处EAX=720)

:005884C5 8D4DEC lea ecx, dword ptr [ebp-14]

:005884C8 BA02000000 mov edx, 00000002

:005884CD E8A60FE8FF call 00409478 <<------将EAX的值(此时为720)转化为串("720")并保存

:005884D2 8B55EC mov edx, dword ptr [ebp-14]

:005884D5 8BC3 mov eax, ebx

:005884D7 E80CBCE7FF call 004040E8

:005884DC 8B03 mov eax, dword ptr [ebx] <<-------串"720"的首地址->EAX

:005884DE E8FDBBE7FF call 004040E0 <<-------取得串"720"的长度->EAX

:005884E3 83F808 cmp eax, 00000008

:005884E6 7D10 jge 005884F8

:005884E8 8B0B mov ecx, dword ptr [ebx]

:005884EA 8BC3 mov eax, ebx

* Possible StringData Ref from Code Obj ->"M0C"

|

:005884EC BA58855800 mov edx, 00588558

:005884F1 E836BCE7FF call 0040412C <<-------连接串"M0C"与"720"并将新串的长度送入EAX

:005884F6 EB1B jmp 00588513

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

|:005884E6(C)

|

:005884F8 8B03 mov eax, dword ptr [ebx]

:005884FA E8E1BBE7FF call 004040E0 <<------计算所得注册码的长度

:005884FF 83F80C cmp eax, 0000000C

:00588502 7E0F jle 00588513

:00588504 53 push ebx

:00588505 8B03 mov eax, dword ptr [ebx]

:00588507 B90C000000 mov ecx, 0000000C

:0058850C 33D2 xor edx, edx

:0058850E E8D5BDE7FF call 004042E8

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:

|:005884F6(U), :00588502(C)

|

:00588513 46 inc esi

:00588514 FF4DF4 dec [ebp-0C]

:00588517 0F8549FFFFFF jne 00588466

==============================

:005835C5 8B55EC mov edx, dword ptr [ebp-14] <<-------计算所得的注册码->EDX

:005835C8 58 pop eax <<-------输入的注册码

:005835C9 E8220CE8FF call 004041F0 <<-------比较函数

:005835CE 0F85F6000000 jne 005836CA <<-------不同则跳走

==============================

以上所给的注释均为第一遍运算时的值

==============================

以用户名”alpha"为例:

算法思想为:

1。由用户名的第一个字符“a”计算得值76C并将其转化为字符串“76C”

2。取字符串“76C”的第一个字符“7”与用户名的第一个字符“a”进行运算,得值720并将其转化为字符串“720”

3。连接字符串“M0C”与“720”,并计算新串的长度,比较其是否大于8,小于则跳回,继续运算,如果大于或等于8,则跳走,并继续比较其是否大于12,大于则停止运算,否则循环1。2。3。

==============================

================Open Cracking Group====================

=

=

=

=Magic convertor 2.8注册码算法分析 - OCG

=

=

= CrAcKeD BY alphakk/OCG

=

= http://www.newclw.com/lllufh/cgi-bin/leoboard.cgi

======================================================== (出处:嬴政天下整理收藏)

相关文章:

·语音界面2.0算法分析及注册机源码!

·侠客系统修改器1.21破解手记--算法分析

·中文拨号上网计时计费器 V4.12注册算法分析

·ClockWise 3.22e注册码算法分析

·CoolClock V1.02注册算法分析

·Directory Scanner v1.5 注册算法分析

·Disk Chief 1.2 简单注册算法分析

·EffeTech HTTP Sniffer 3.2注册算法分析

·eLib2.01算法分析

·EZ MP3 Recorder 1.15 注册算法分析

相关软件:

→ 特别推荐

→ 热点TOP10

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史