不脱壳破解(Aspack壳)
本帖最后由 buzhifou01 于 2019-12-1 11:44 编辑1.破解软件
1.1软件介绍
我现在要破解的软件名称为Hide Private File Pro,这款软件需要输入正确的用户名和key才能永久使用,那么接下来我要做的就是获取特定用户名的key。
1.2查壳
查壳发现该软件加的壳为Aspack壳
1.3软件运行
2.破解过程
2.1第一种方法
OD加载之后按f9运行,任意输入用户名和Key,摁注册,弹出一个错误提示框
按f12暂停程序,按alt+k进入栈窗口,用鼠标右击最后的函数,点击show call,跳到CPU窗口中的47A7F9,接着往上拉,找到程序的头部,然后在头部下硬件断点,这里不能下其它断点,应为加了壳,其它断点会被抵消掉,起不到作用。
接着再按f9,点击注册,程序就断了下来,接着看堆栈窗口,可以看到key值,说明该程序采用的是用明码比较,继续单步运行分析下面代码。
运行到47A7E4发现一个关键函数SendMessage,说明接下要发送提醒消息,接着再运行,进入到一个循环结构中,说明进入到了程序的算法部分,循环计算注册码,破解的时候不能用f4打断这个循环,否则计算不出注册码并且会影响下面代码分析
2.2第二种方法
[*]OD加载后,单步,在ESP右边标红处,右键到内存跟随,在内存窗口下断,f9(跟ESP定律一样),单步到oep,接着搜索字符串,即可定位到弹出提示框的地方。
[*]这里我再介绍一种,通过查找字符串定位提示框的方法,OD加载后,f9,按alt+c,alt+e会看到该进程的主模块,点击进入,就可以成功查找字符串了。
[*]这里介绍一种错误的查找方法,OD加载后,f9,直接查找,对于加壳程序,这样查找会失败。
[*]查找到User Name or Key error! Register faild!字符串后,进入CPU窗口,往上找,找到程序入口,发现有不少混淆代码,选push ebp作为入口点并下硬件断点
[*]输入用户名和key注册,然后单步到004ed4df,就可发现注册码了,再单步就可以发现接下来要比较输入的注册码和正确的注册码了。
[*]接着做一个用户注册机,打开keymake,按f8选中exe文件,接着点击添加,填入信息,中断信息指的是调用比较函数的地址,第一个字节指的是004ed4df地址处指令的第一个字节,指令长度为该地址处的指令长度,填入信息的时候不要填写‘’保存下列信息为注册码‘’下面的信息,否则生成的注册机会有问题,接着填写右边栏信息,右边栏有寄存器方式和内存方式,如果注册码含有字母就用内存方式,如果纯数字就用寄存器方式。
[*]寄存器选中eax,后面空在那,因为字符串是以ASCII的形式存在,而不是Unicode,因此不能勾选宽字符,点击生成。接着运行注册机,任意输入用户名和key,会自动生成正确的key。
[*]当输入的注册码不对时,就 跳过注册成功,接着提醒注册失败。
小螃蟹」 发表于 2020-2-10 04:11
楼主 想拜托你一个事情,感觉全坛都找不到人还是真的挑战难度太大了 没人愿意,一个游戏的第三方插件辅助...
求破会被拉小黑屋的! 后面两张图片是多余的 谢谢分享 谢谢分享 谢谢分享
谢谢分享 写的不错,思路清晰 这个是32位的破解么?64位的软件是不是比较难破解? 谢谢分享这么好的教程 感谢分享,又学到一种新方法