Crack学习笔记[二]

VB程序:

1、VBExplorer查找按钮事件
2、有提示框则bp rtcMsgBox
3、通过bp __vbaStrCmp/__vbaStrComp/__vbaVarTstEq
4、万能断点法(816C24法)

E语言:

一、脱壳

1、如果是E的第1个版本。。。基本不需要处理附加数据
2、如果是第2版本。。就一定要处理附加数据

二、辨认方法

1、如果PEID查得是VC++ 6.0且入口OEP是3831
2、查找字符串 有E的两个库
3、有.eCode区段

三、破解方法:

1、借助辅助工具查找按钮事件,E-Code Explorer
2、下消息断点,查看堆栈返回
3、eCode法–刚好断在按钮事件上

Delphi:

1、DEDE、PE Explorer作为强有力的辅助工具找按妞事件
2、Point-H法
3、bp GetDlgItem/GetDlgItemTextA(断输入框)
4、bp MessageBoxA(W)(断对话框)—Ctrl+N
5、字符串法—插件/搜索所有参考文本
6、如果程序界面标题有[未注册/注册/VIP版/标准版/钻石版] 之类字样的
可以通过查找FormCreate/FormShow—-DEDE,找到关键标志位!
来判断程序怎么样的判断是否注册或者用户类型

1、有注册错误/正确提示

bp MessageBoxA

bp rtcMsgBox

用户输入信息

|||||

软件判断是否正确

(je/jne/jz/jnz…)

|||||

Y————–N

|||||                   |||||

正确提示          错误提示

如果事先找不到按钮事件

可以通过下消息断点,返回后回嗍即可找到按钮事件起始位置

2、无任何提示

bp GetDlgItem                bpGetWindowTextA

用户输入信息

|||||

信息保存(reg/ini/dll…)

|||||

Y————–N

|||||                 |||||

无提示         无提示

或者

|||||                  |||||

————–

|||||

提示信息保存,需要重启

$$$$$$下次启动的时候来判断Y/N$$$$$$

可以通过bp GetDlgItem获取按钮事件代码

3、未注册一启动或者关闭就跳出个注册框或者提示框

bp RegOpenKey(A)

bp CreateFileA

bp GetPrivateProfileStringA

软件启动的时候,是怎么知道自动打开注册框或者提示框的呢?

那么他在启动的时候一定是读取到某个东西来判断的

是什么东西?reg/ini/dll/其他

至于保存到什么文件,可以使用以下方法

1、查找字符串,看是否有可疑文件名或者注册表键名

2、猜。。。下断点观察

3、按钮事件跟踪

4、未注册一启动或者关闭就打开网页链接

bp ShellExecuteA

类似的组合

Cmp/test/其他判断

Je/jne/jne/jz XXXXXXXX

00409D4E   68 48B54300PUSH 0043B548             ;ASCII “http://www.*.com”

00409D53   68 40B54300PUSH 0043B540              ;ASCII “open”

00409D58   50 PUSH EAX

00409D59FF1528134300 CALL DWORD PTR DS:[<&SHELL32.ShellExecuteA>]     ;SHELL32.ShellExecuteA

软件启动—判断是否注册—是否Open

断下后回嗍代码即可找到关键点,常用的方法,转存跟踪法

5、未注册就功能使用限制

判断是否注册—某种功能是否让你使用—如果不能够用,一定会有提示的,或是错误提示或是弹出注册框等

那么从提示入手即可找到解除限制的关键

不完美破解:解除功能限制

6、未注册就日期限制

bp GetLocalTime 获取本地时间

bp GetSystemTime 获取系统时间

bp GetFileTime 获取文件时间

一般下这几个断点比较难分析关键

捷径:查找字符串–找可疑文件–一般以DLL多见

只要不让它读取到这个DLL即可解除限制

7、Demo(演示试用版)–功能残缺

这个和上面的功能限制不一样哦

功能限制是软件本身就有这个功能,对程序而言,相对应的功能代码也存在

Demo即是没这个功能,空架子一个而已

一句话:破解也无用!

8、网络验证

无法登陆有错误提示者:下消息断点回嗍代码,找按钮事件,从来来过,从按钮事件开始跟踪,找网络验证CALL(所需要登陆的地址在这个CALL里面),接下来就是分析返回值或者改登陆地址为本地(127.0.0.1),再后面就需要改某些跳转了

无法登陆自动退出者:下bp ExitProcess断下(一般可以断下)回嗍代码,找按钮事件,从来来过,从按钮事件开始跟踪,找网络验证CALL(所需要登陆的地址在这个CALL里面),接下来就是分析返回值或者改登陆地址为本地(127.0.0.1),再后面就需要改某些跳转了

9、狗加密

一般狗加密软件,一启动就会检测所需要的狗文件,若没有狗文件,提示错误

这里我们有两个入手点

1、“一启动就会检测所需要的狗文件”,下bp CreateFileA等断点,断下后,回嗍

2、“若没有狗文件,提示错误”,下bp MessageBoxA,断下后,回嗍

总结:

从上面的介绍说明可以看出,有这么一个共同点—按钮事件

可以这么说,按钮事件是我们的思路之门

按钮事件可以这样得来:

1、            通过下相应断点,回嗍代码

2、            通过辅助工具快捷的得到(VBExplorer、DEDE)