-
-
休闲麻将 1.5 Build 88 [SmartCheck 分析]
-
发表于:
2004-10-30 21:03
5648
-
休闲麻将 1.5 Build 88 [SmartCheck 分析]
休闲麻将 1.5 Build 88 -- SmartCheck 分析
作者:GoOdLeiSuRe
错误难免,肯请提出。
介绍:
1、本软件是《斗地主》的姊妹篇,以国标“麻将”为基础,结合各地玩法,能自定多种规则。
2、游戏界面完全个性化,拥有一套完整的人物管理系统,可自定义游戏者,并赋予其丰富的个性特征,为游戏增添真实性与乐趣。
3、内置网络模块,可支持2-4人联网对战,允许局域网、Internet、点对点多种联机方式。联机时每个人有充分的自由,可随时加入或退出,且不影响别的网友继续玩牌。网络通讯采用QQ方式,具有悄悄话功能;
4、内置MP3播放器,自定歌曲列表,并有多种播放形式,可定制游戏音效,声图并茂!
5、可随时保存载入游戏进度,能抓住牌局的每一瞬间,实现网上交流;
6、本软件正在不断完善,为让大家都能在其中找到喜欢的玩法,也欢迎来信告知当地流行的规则,我将酌情加入软件。
7、本软件保证麻将分配的绝对真实性,即:完全随机分配,不会让电脑有目的的配牌。真正让游戏者体会到休闲的乐趣。
8、操作方便,鼠标、嫔盘双通,多种操作方式可自由选择,极易上手。附有快速隐藏、限时出牌等实用小功能。
9、兼容性好,可在全系列Windows系统中使用,有长期的网站技术支持,售后服务有保证且更新方便。
分析:
软件用UPXv1.2加壳,最好脱一下壳。
填好用户名和假注册码,弹出对话框,原来在启动时验证其正确性,“确定”后自动关闭。
用SmartCheck分析,打开节点“gamemj_Load”。
从上往下,可以分别找到:输入的用户名,换成小写的用户名,机器码。然后,将机器码的前三位换成“zjm”。往下看是“Asc returns Integer:122”,是“z”的ASCII码,接下来求小写用户名各个字母的ASCII码,而后没有求取“j”的ASCII码,估计第一位就已经核对错误?
继续,找到该段求算的最后一个ASCII码,查看详细信息,看到“VarBstrFromI4”,展开此节点,看到“wcslen returns size_t:1”,值为一个字符(是个数字),是不是该字符为注册码的第一个字符呢?
重新来一次,输注册码时第一位用上面的字符,重新分析。这次得到了更多的信息,而且又能得到一个字符。这样的话,嘿嘿,一编一编来吧。
看最后求得的注册码,估计此注册码算法很简单,可能是这样计算(部分猜测):
1.将机器码的前三位换成“zjm”
2.求出各个码的ASCII码
3.求出用户名的各个ASCII码,并求和,用10减去和值的个位数
4.将ASCII码减去第3部计算的差值
5.再取数值的个位数做为对应的注册码。
用户名和注册码存在注册表内,位置为:HKEY_LOCAL_MACHINE\SOFTWARE\NetMj\Infomation
RegName存放用户名
RegCode存放注册码
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课