吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4101|回复: 6
收起左侧

[原创] 160个CM之22

  [复制链接]
肥牛 发表于 2017-6-15 09:45
CM22是一个VB写的程序,我对VB程序的调试是很抵触的。我觉得VB做的程序,反编译后代码的可读性实在是太差,而且它对寄存器的使用也非常奇怪,所以一直以来遇到VB的程序我都是绕着走。
这次看到CM22应该是属于入门级的,闲来无事,拿它练手也是不错的。

程序运行后,只有一个注册码的输入框,类似这样的情况,要么是读了机器的特征码而计算出的注册码,要么就是固定的注册码。
随便输入一个,弹出错误提示。 1.png
另外,我们还注意到这个CM还有菜单,
2.png
Restart就是重启该程序,Quit就是退出程序,点击About,会弹出下面的窗口,好像没有什么特别吧?
3.png
我的习惯,调试前先用工具反编译查看代码。所以用VB Decompiler Pro去反编译一下。虽然用这个工具反编译的结果往往不尽如人意,但聊过于无,至少有助于我们理解程序的算法逻辑。
首先是注册点击按钮的事件。
4.png
这个时间中先调用了rgr这个函数,而且调用完直接就判断是否是正确的注册码,说明rgr这个函数是关键的注册码生成函数。那我们再去看rgr函数。
5.png
这个函数就很好理解了,前面那么多变量其实是同一个,就是About窗口的Label1的内容。后面那段
var_ret_5 = Mid(var_1C, 6, 1) + Mid(var_20, 9, 1) + Mid(var_24, 143, 1) + Mid(var_28, 16, 1) + Mid(var_2C, 161, 1) + Mid(var_30, 171, 1)
var_ret_7 = var_ret_5 + Mid(var_34, 166, 1) + Mid(var_38, 168, 1)
其实就是把Label1的内容,分别取第6、9、143、16、161、171、166、168个字符重新组合起来就是注册码。
那么Label1的内容是什么?
在VB Decompiler Pro中看不到,从刚才About窗口显示的内容大概能猜出来,可是因为是字符的组合,差一点儿都不行,必须要确认。
没办法,只能用OD了。
在OD中按步骤调试,因为我们刚才通过VB Decompiler Pro的rgr函数,看到地址是00403373,所以Ctrl+G在这里下断点,随便输入注册码后,点击注册按钮,断下,F8单步跟踪。
因为程序中反复调用msvbvm50.rtcMidCharVar函数,所以我们很容易就能在调用这个函数之前的EAX中找到Label1的内容,见下图:
6.png
当然,这是内存的部分,我把它复制出来。
[Asm] 纯文本查看 复制代码
001629C4  62 00 50 00 65 00 20 00 43 00 72 00 61 00 63 00  b.P.e. .C.r.a.c.
001629D4  6B 00 4D 00 65 00 20 00 20 00 20 00 76 00 31 00  k.M.e. . . .v.1.
001629E4  2E 00 30 00 20 00 20 00 20 00 20 00 20 00 20 00  ..0. . . . . . .
001629F4  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162A04  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162A14  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162A24  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162A34  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162A44  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162A54  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162A64  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162A74  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162A84  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162A94  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162AA4  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162AB4  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162AC4  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162AD4  20 00 20 00 20 00 20 00 20 00 54 00 68 00 69 00   . . . . .T.h.i.
00162AE4  73 00 20 00 43 00 72 00 61 00 63 00 6B 00 4D 00  s. .C.r.a.c.k.M.
00162AF4  65 00 20 00 69 00 74 00 27 00 73 00 20 00 74 00  e. .i.t.'.s. .t.
00162B04  6F 00 20 00 74 00 72 00 61 00 69 00 6E 00 65 00  o. .t.r.a.i.n.e.
00162B14  72 00 20 00 79 00 6F 00 75 00 72 00 20 00 56 00  r. .y.o.u.r. .V.
00162B24  42 00 20 00 63 00 72 00 61 00 63 00 6B 00 69 00  B. .c.r.a.c.k.i.
00162B34  6E 00 67 00 20 00 61 00 62 00 69 00 6C 00 69 00  n.g. .a.b.i.l.i.
00162B44  74 00 79 00 20 00 20 00 20 00 20 00 20 00 20 00  t.y. . . . . . .
00162B54  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162B64  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162B74  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162B84  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162B94  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162BA4  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162BB4  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162BC4  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162BD4  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162BE4  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162BF4  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162C04  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162C14  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162C24  20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00   . . . . . . . .
00162C34  20 00 20 00 20 00 20 00 20 00 44 00 65 00 76 00   . . . . .D.e.v.
00162C44  65 00 6C 00 6F 00 70 00 65 00 64 00 20 00 62 00  e.l.o.p.e.d. .b.
00162C54  79 00 20 00 43 00 61 00 72 00 4C 00 69 00 74 00  y. .C.a.r.L.i.t.
00162C64  6F 00 5A 00                                      o.Z.

从这段内存中可以看到,Label1是由三段文字组成,并且每段之间是用若干空格分开。而且是Unicode字符,每个字符占两个字节。
我们把它转为ANSI格式,就形成了如下的文字:
7.png
于是,按照刚才得到的算法,取第6、9、143、16、161、171、166、168个字符,组成的字符串就是“rkh1oyie”。
在CM22中输入此字符串,注册成功!
8.png
注册以后,程序就变为已注册状态,不能再次注册了。
9.png
其实,从上面的代码中我们也能看出来,其实是把注册信息写到了c:\windows\MTR.dat文件中了,这里我们就不管它了。
如果想重新注册,就点菜单里的Restart就好了。

附上CM22的程序,供大家练手。
CarLitoZ.1.zip (6.88 KB, 下载次数: 10)

免费评分

参与人数 8吾爱币 +10 热心值 +8 收起 理由
yangcg + 1 + 1 我很赞同!
alin168 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
siuhoapdou + 1 + 1 谢谢@Thanks!
小青年78 + 1 + 1 谢谢@Thanks!
色调分离 + 1 + 1 热心回复!
Sound + 5 + 1 已经处理,感谢您对吾爱破解论坛的支持!
snccwt + 1 用心讨论,共获提升!
zzbb0011 + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

snccwt 发表于 2017-6-15 14:05
热心帮顶帖
ricroon 发表于 2017-6-15 20:57
这些cm能一次性打包下载吗?第一次看到这个帖子。
铜江998 发表于 2017-6-16 18:25
上善若水app 发表于 2017-6-17 15:20
好详细,学习了,楼主66哒
违规昵称109 发表于 2017-6-19 14:07 来自手机
666练练手
snddman 发表于 2017-6-21 09:45
谢谢分享,有空下载下来练习练习。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-26 05:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表