首页
社区
课程
招聘
[旧帖] [原创]我爱MV1.3.0破解和算法分析手迹 0.00雪花
发表于: 2011-7-18 12:55 3423

[旧帖] [原创]我爱MV1.3.0破解和算法分析手迹 0.00雪花

2011-7-18 12:55
3423

【文章标题】: 我爱MV1.3.0破解和算法分析手迹
【文章作者】: Tocky
【下载地址】: 80aK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4y4Z5j5i4u0W2N6$3q4J5k6g2)9J5k6i4y4C8P5h3y4F1i4K6u0W2j5$3!0E0i4K6u0r3M7$3!0X3N6q4)9J5c8U0t1K6y4U0p5#2i4K6u0W2K9s2c8E0
【使用工具】: OllyDBG PEID LordPE 
【软件介绍】: 『我爱MV』是一款方便快捷的MV制作软件,它拥有独创的动感歌词技术,实现漂亮大方、精确同步的卡拉OK字幕效果,配合几十种转场特效和灵活的文字动画,产生富有个性、动感十足的MV,不失为送给恋人、亲朋好友的一份别致的礼物!
【操作平台】: Windows XP SP3
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!小弟初来看雪,希望和各位多多交流,第一次写破文,不对之处请指出。还望哪位朋友能给个邀请码,先行谢过。
--------------------------------------------------------------------------------
【详细过程】
破解之旅开始,信心指数 0  

软件安装好后,试运行了下,点击帮助-->输入注册码,弹出这个界面

注意看红色字体部分,呵呵,软件作者想的真周到呢,连软件的注册验证方式完完本本的都告诉我们了,只差没说下注册算法了呢(事实上注册算法也比较简单,下文会分析到)

OK,填写下注册信息吧,点击注册按钮

也不知道软件作者说的真的假的,咱还是具体验证下吧。打开注册表,搜索下注册名Tocky和注册码123456789 (一般建议使用自己设定的复杂点的数字和用户名,以防注册表中其他重复数据的干扰,这里我可以保证我的注册表中没有可以干扰的重复数据,所以就暂用他拉)


看到这,哈哈,注册码信息已经写入注册表了,并且明文存储没有加密,这样我们就不用去辛辛苦苦的去找软件的注册验证方式拉,刚开始破解信心指数就猛的+1 

关掉软件,上PEID来查下壳吧

PEID查壳显示nothing found * ,是不是未知壳呢?看链接器版本显示8.0,查看区块,没有什么异常,初步断定这是VC++8.0写的软件,并且没有加壳。事实上以我个人经验来说,VC++7.0以上版本写的软件,PEID大都会显示nothing found *,这是因为VC++7.0以上版本写的软件的入口特征都不一样,和VC++6.0固定的入口特征完全不同,PEID还识别不了。这样简单的判断后,原来不是未知壳,破解信心指数再次+1 

OD载入软件,点击运行。。。等等,出现了异常(如果你的OD异常选项没有忽略所有异常的话)
这是怎么回事呢?是不是软件有加壳呢?还是软件自身产生了这些异常?试一试忽略所有异常和忽略最近发生的异常,对软件进行调试,发现可以正常调试,初步判定软件并没有加壳,出现异常是软件自身产生的。这里需要特别说明的是,判断软件是否加壳有很多方法,有时需要多种方法的结合(例如看输入表有没加密,有没增加可疑的区块等等),但是更多的时候需要我们调试软件的经验和感觉,调试的软件多了,见的壳多了,直觉都能告诉我们软件有没加壳。
这样判断下来,软件没有加壳,哈哈,信心指数陡然+3 

既然是通过注册表存储注册信息,那启动时必然要读取注册表,再加以判断。一般来说查询注册表用2个API函数RegQueryValueA和RegQueryValueExA,看下这个软件的输入表,里面只有一个注册表查询函数RegQueryValueExA,又省事多了啊,注册表存储注册码的键名是 Key ,这样我们可以下条件断点来到从注册表中获取注册码的地方。

命令行输入: bp RegQueryValueExA,[SRING [ESP+8]]=="Key"

说明:条件断点的知识可以在OD帮助手册中找到

中断下来啦,F2取消断点,ALT+F9执行到用户代码 ---->这个软件使用了mfc80.dll,如果你的OD没有导入mfc80.lib库的话,需要先导入下,这样才能看到mfc80.dll中的函数名,我导入mfc80.lib库以后,函数名显得有些乱码,原因不明,还望知道的朋友告诉我一声。

来到这里:

00410ED5  |.  FF15 0C804400 CALL DWORD PTR DS:[<&ADVAPI32.RegOpenKeyExA>]     ; \RegOpenKeyExA
00410EDB  |.  3BC3          CMP EAX,EBX
00410EDD  |.  0F85 13010000 JNZ MV_Build.00410FF6
00410EE3  |.  8B7424 14     MOV ESI,DWORD PTR SS:[ESP+14]
00410EE7  |.  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]
00410EEB  |.  51            PUSH ECX
00410EEC  |.  8D5424 28     LEA EDX,DWORD PTR SS:[ESP+28]
00410EF0  |.  52            PUSH EDX
00410EF1  |.  68 64BB4400   PUSH MV_Build.0044BB64                            ;  ASCII "Key"
00411088  |.  E8 93560200   CALL MV_Build.00436720                            ;  算注册码关键函数,将注册码压栈了且栈中有机器码
0041108D  |.  83C4 08       ADD ESP,8
00411090  |.  8BCD          MOV ECX,EBP
00411092  |.  C68424 300100>MOV BYTE PTR SS:[ESP+130],2
0041109A  |.  FF15 0C854400 CALL DWORD PTR DS:[<&MFC80.#??B?$CSimpleStringT@D>;  MFC80.#?GetString@?$CSimpleStringT@D$00@ATL@@QBEPBDXZ_3397
004110A0  |.  50            PUSH EAX                                          ;  EAX=机器码
004110A1  |.  8D4C24 20     LEA ECX,DWORD PTR SS:[ESP+20]                     ;  ecx=经过计算后得到的注册码的地址
004110A5  |.  FF15 20854400 CALL DWORD PTR DS:[<&MFC80.#?Compare@?$CStringT@D>;  MFC80.#?Compare@?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@QBEHPBD@Z_1482

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
  • 6.JPG (58.46kb,112次下载)
  • 1.jpg (83.92kb,114次下载)
  • 2.JPG (50.19kb,113次下载)
  • 3.JPG (30.72kb,113次下载)
  • 4.JPG (23.16kb,114次下载)
  • 5.JPG (54.20kb,113次下载)
收藏
免费 7
支持
分享
最新回复 (5)
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
中国居然也有收费软件啊,有市场不哦
2011-7-18 13:13
0
雪    币: 1015
活跃值: (235)
能力值: ( LV12,RANK:440 )
在线值:
发帖
回帖
粉丝
3
顶搂主一个,搂主在标题前面加上"申请邀请码"字样吧,版主看了之后好决定是否发送邀请码给你。
2011-7-18 14:43
0
雪    币: 386
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好像不能用啊
显示试用版
2011-7-18 23:55
0
雪    币: 386
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
函数名有些乱码,是因为什么呢?
2011-7-28 21:54
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
拜读大作了
2011-8-7 23:38
0
游客
登录 | 注册 方可回帖
返回