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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2818|回复: 3
收起左侧

[CrackMe] 【吾爱2013CM大赛解答】-- 2013CM_无邪 算法分析

[复制链接]
playboysen 发表于 2013-12-16 13:02
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

本帖最后由 playboysen 于 2013-12-16 18:14 编辑

该文是针对以下CM的分析:
http://www.52pojie.cn/thread-228707-1-1.html

先踩点吧,打开主程序“2013CM_无邪.exe”随便输入信息注册测试,中间的标签文字变成了红色“失败了?没事,加油,你可以的!”,有提示就有入口点,改变标签文字和颜色可以尝试SetWindowTextA、SetBkColor、SetBkMode等API(真正玩逆向才发现要想深入必须学编程,打开程序随便点几下猜一猜程序内部具体做了哪些动作,可能用了哪些API等等,这样关键时候事半功倍,知道的越多办法越多做的越快),OK找到了一个突破点

OD加载主程序分析发现字符串很多都是乱七八糟,但关键的正确或错误提示却没有,看来作者是想调戏一下玩个游戏,eXeScope加载主程序资源菜单也没有关键字符,算了,放弃追踪字符串

翻看一下程序入口看到了kernel32.GetVersion,猜测编程语言应该是C系列或者是易语言(新版入口代码仿C),下断点GetWindowTextA和GetWindowTextW,看看取编辑框文本能否断下来,F9运行测试果然断下来了,不过断在了User32.dll里面,Alt+F9让代码继续执行到主程序领空(如图)


这段代码主要是取编辑框文本和计算长度,点击函数入口第一行0045BE68处,发现OD提示“LocalCalls from 00403F74, 00404005......”这个函数有N个调用,说明该函数不是注册验证的关键函数(因为注册时一般都是验证一两次),F8走出该函数发现进入了一个Switch循环,继续单步走了几十下发现代码都在处理消息传递什么的,看来我们误入歧途了

闭上眼睛换换思路,既然主程序读取了一个编辑框内容要它肯定会判断内容的正确性,也就是说主程序一定用到GetWindowTextA读出的内容,OK我们重新加载输入假码当GetWindowTextA中断后,往后几步当OD右侧寄存器处出现假码时,选择ECX寄存器右键“在数据窗口跟随”,然后在OD左下数据窗口选中假码下内存访问断点(见图,注意如果GetWindowTextA读出的是用户名请不要设置内存访问断点,只有当寄存器那里出现的是注册码才设置断点,否则无法中断在正确的地方——下图只是为了演示内存访问断点的设置方法)


内存访问断点设置后F9运行程序,发现OD中断继续单步走出四个retn后,发现来到了这里(如图)


看OD右下角堆栈处,假码和字符串"asduiashdihasdjkanksd"同时传入某函数,F7进入该函数发现在比较两者,看来注册码就是"asduiashdihasdjkanksd"了,但输入该注册码后,程序提示失败⊙﹏⊙b汗

然道有什么问题?难道这样一个明码注册码还对用户名有验证??算了,来看看猫腻在哪里

既然已经知道注册码,那我们就更关心程序对用户名的处理,思路是下条件断点,当程序读取用户名编辑框时断下然后跟踪
OD加载主程序F9运行后点击OD菜单“查看——窗口”,找到Edit控件的句柄值


如图经测试用户名Edit句柄是001303E6,在OD代码窗口Ctrl+G输入“GetWindowTextA”确定后找到该API的入口,Shift+F2在API首行下条件断点“[esp+4]==001303E6”(这里提醒下,注册码一定要是"asduiashdihasdjkanksd",程序才会去比对用户名,也就是说你随便输入注册码的话,上面的条件断点根本断不下来)


输入假码"asduiashdihasdjkanksd",用户名"playboysen"确定后程序中断,同样单步走出四个retn后来到了关键地方,见图


至此全部分析完成,挑战题目“2013CM_无邪”注册码为"asduiashdihasdjkanksd",用户名是"sadsadasdsafaffdsfadasd"


因为不涉及什么算法,用不着写注册机和制作补丁
不过还是做了个Loader,谁叫这样有加分呢(*^__^*) ……

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 3热心值 +3 收起 理由
围剿 + 1 我很赞同!
20120427 + 1 已答复!
Chief + 1 吾爱破解2013CM大赛,有你更精彩!

查看全部评分

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

Phantom可 发表于 2013-12-16 13:29
吾爱破解2013CM大赛,有你更精彩!
kooood 发表于 2013-12-16 13:36
20120427 发表于 2013-12-17 09:44
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-4-29 03:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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