简单演示程序序列号的破解

您所在的位置:网站首页 软件注册码要如何破除 简单演示程序序列号的破解

简单演示程序序列号的破解

2024-02-04 05:44| 来源: 网络整理| 查看: 265

目录 前言一、测试平台二、测试步骤1.查找Message Box2.比较函数选择3.序列号寻找(前三部分)4.第四组序列号破解 总结

前言

本次破解的程序为一个简单演示程序,当输入错误的序列号时会弹出相关的错误信息,可知序列号为16位。

demo

一、测试平台

实验平台:VMware Workstation Pro,WIN 7系统,内存4GB,硬盘60GB 使用工具:demo.exe,OllyDbg 对OllyDbg的简单使用可以查看我的另一篇文章:OllyDbg使用

二、测试步骤 1.查找Message Box

当我们输入序列号错误时,系统会弹出输入错误的窗口,而且我们知道,弹出窗口函数一般为Message Box,从而我们可以以此作为突破点。使用查找名称功能,进行该函数查找,双击进入该函数以后,设置断点,运行程序,使用F7 F8单步调试功能,查看其返回主函数的位置。

主函数位置

2.比较函数选择

序列号判断我们知道肯定会使用cmp比较指令,所以我们选择最上面一个cmp指令设置断点,而后运行程序,若是程序会在断点处中止,即可知道该处为序列号判断的地方。 中断点

3.序列号寻找(前三部分)

进行比较总会有两个数值,一个是我们自己输入的值,另一个是正确的序列号,因此我们可以发现它判断的是[ESP+0x20]与CX,而通过地址查找我们发现EXP+0x20处存放的数据是我们的输入值1111,因此可以确定前四位序列号为cx所存放的值,为0836,而后进行验证发现正确,通过相同方法我们可以找到第二组四位序列号存放在dx中,第三组四位序列号存放在ax中,从而可以得到它们的值分别为:0004与0076。 破解

4.第四组序列号破解

当我们找完三组序列号后发现,第四组序列号并不是按照四个为一组进行比较的,所以我们并不能使用之前破解前三组时使用的方法,通过查看代码我们发现,后面有四个cmp比较指令,而我们判断它是将后面四位分开进行比较,而又因为我们刚开始并不明白0x69772661这个数字的含义,所以在这我使用了穷举法,进行暴力破解,发现正确的第四组第一个序列号为a,而后进行破解,我们发现我们都可以找到比较的双方,最后将四位组合而成第四组序列号,为aFF0,f与0会使用其ASCII码进行比较。并且在此过程中,我们可以使用地址查询,找到该地址存放的数据,与我们的输入数据比较后,更可以验证我们的验证正确性。 破解成功至此,该序列号破解成功。

总结

有任何问题都可以在评论区和我交流~~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3