buzhifou01 发表于 2019-12-1 11:42

不脱壳破解(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。








[*]当输入的注册码不对时,就 跳过注册成功,接着提醒注册失败。



MSS 发表于 2020-2-11 01:40

小螃蟹」 发表于 2020-2-10 04:11
楼主 想拜托你一个事情,感觉全坛都找不到人还是真的挑战难度太大了 没人愿意,一个游戏的第三方插件辅助...

求破会被拉小黑屋的!

小螃蟹」 发表于 2020-2-10 04:11

buzhifou01 发表于 2019-12-1 11:54

后面两张图片是多余的

Tralee 发表于 2019-12-1 12:24

谢谢分享

白泽1994 发表于 2019-12-1 12:36

谢谢分享

阿甘阿Q 发表于 2019-12-1 13:50

谢谢分享

cptw 发表于 2019-12-1 15:14


谢谢分享

朦胧的睡了 发表于 2019-12-1 16:37

写的不错,思路清晰

lock6969 发表于 2019-12-1 16:51

这个是32位的破解么?64位的软件是不是比较难破解?

china08 发表于 2019-12-2 06:45

谢谢分享这么好的教程

dutyzqly 发表于 2019-12-2 08:12

感谢分享,又学到一种新方法
页: [1] 2 3
查看完整版本: 不脱壳破解(Aspack壳)