乐于分享
好东西不私藏

注册码明码比较的加壳程序-软件逆向零基础入门新手也能破

注册码明码比较的加壳程序-软件逆向零基础入门新手也能破

免责声明

本文档所有内容仅供安全研究、学术交流与技术学习使用,严禁用于任何未经授权的逆向破解、网络攻击、隐私窃取、恶意软件开发。使用者应确保已获得目标软件权利人的合法授权并自行承担因使用本文档内容所产生的一切法律责任与后果,作者不对任何直接或间接损害承担任何责任,继续阅读即视为您已知悉并同意上述全部条款。


    这是一个非常简单的明码比较的Crackme。非常适合入门新手练习,熟悉流程!在以往的文章中也有非常多的样例逆向破、解文章。如果有阅读到某一篇都可以按文章中方法对本例进行逆向分析。
程序要求输入正确的用户名和注册码完成注册!
    打开工具 exeinfope,查下软件信息。
这次的软件和之前分析的不同,它加壳了。 对于这种加壳的软件,分析时需要让程序直接运行后查找字符串。不然壳没解密,是查不到任何数据的
    打开调试软件 Ollydbg把要分析的程序拖入OD内,点击内存窗口查看可以看到加壳程序的区段名也改了。
UPX保护壳
    程序未运行时,我们CTRL+G来到软件0x401000位置,程序未解密,都是空字符
    这就是为什么有人说查不到任何字符的原因。
此时数据解密了,我们使用搜索字符串,看有没我们需要的信息。
插件--中文搜索引擎--智能搜索
搜索出字符串后,继续在字符串窗口CTRL+F搜索提示信息。
提示信息:
查不到这个字符,那说明软件作者或加密壳对关键字符串信息做了处理。那从查找字符串找关键位置这个方法就不适用了。既然又提示框那么是不是就用到了消息提示函数?我们对消息提示框API下断点。
    MessageBoxA下断点,重新加载程序看能否断下了。
按下注册按钮后,程序被正常断下。
看到调用地址:0X43D146,在堆栈窗口中往下翻,找到最上层调用的位置就能找到关键的算法位置。
按下回车键查看反汇编代码
向上翻看看到了我们需要的字符串,在段首下断点。开始分析。
单步F8我们往下分析,
这个位置在对用户名进行比较。F7进入查看代码,F8单步往下分析注意这里
我们看到ESI,EDI传入的值。在对字节做比较。
这里分析得出输入的用户名要为:“ Registered User”。修改用户名继续重新分析。
这里又对注册码进行比较,这个的CALL是同一个。由此说明它在对输入的注册码和“GFX-754-IER-954”比较。说明这个就是正确的注册码。
    经过上面分析我们输入得到的注册信息,验证程序正常注册成功。
这个程序本身不难,新手分析起来也非常轻松。主要还是多积累调试经验和技巧
获取文中软件可关注后回复:练习样品(CrackMe3
如果喜欢这类的技术文章,请关注喜欢推荐 ♥  后续为大家更新更多实用技术文章。