拦截窗口:
bp
bp
bp
bp
bp
拦截消息框:
bp
bp
bp
MessageBoxIndirect(A) 创建定制消息框
拦截警告声:
bp
拦截对话框:
bp
bp
bp
bp
bp
bp
bp
bp
bp
bp
拦截剪贴板:
bp
拦截注册表:
bp
bp
bp
bp
bp
bp
功能限制拦截断点:
bp
bp
拦截时间:
bp
bp
bp
bp
bp
bp
bp
拦截文件:
bp
bp
bp
bp
bp
拦截驱动器:
bp
bp
bp
★★VB程序专用断点★★
bp
bp
bp
bp
bp
bp
bp
bp
解自校验
bpx
bpx
bpx
bpx
F12堆栈调用
破解思路
C类
Point-H法
bp
bp
字符串法
F12堆栈调用
B、D类
DEDE、PE
关键还是找按妞事件
Point-H法
bp
bp
字符串法
F12堆栈调用
V类
VBExplorer、GetVBRes、SmatCheck作为强有力的辅助工具
关键还是找按妞事件
bp
*********************************
如果是重启验证就使用最开始的那些断点
C类语言破解
1、bp
2、Point-H法
3、bp
4、字符串法—插件/搜索所有参考文本
Delphi/BC++语言破解
1、DEDE结合PE
2、Point-H法
3、bp
4、bp
5、字符串法—插件/搜索所有参考文本
6、如果程序界面标题有[未注册/注册/VIP版/标准版/钻石版]
VB语言破解
1、VBExplorer查找按钮事件
2、有提示框则
3、通过bp
4、万能断点法(816C24法)
5、字符串法—插件/搜索所有参考文本
易语言破解
1、借助E-Code
2、下消息断点,查看堆栈再返回
3、eCode法–断按钮事件
4、字符串法—插件/搜索所有参考文本
按钮事件固定模式:
0040EC78 837D F4 00 cmp dword ptr ss:[ebp-C],0 ;关键判断 0040EC7C 0F84 3B000000 je dcse.0040ECBD ;关键跳 0040EC82 68 04000080 push 80000004 0040EC87 6A 00 push 0 0040EC89 68 EC904000 push dcse.004090EC 0040EC8E 68 01030080 push 80000301 0040EC93 6A 00 push 0 00 40EC95 68 00000000 push 0 0040EC9A 68 04000080 push 80000004 0040EC9F 6A 00 push 0 0040ECA1 68 F1904000 push dcse.004090F1 0040ECA6 68 03000000 push 3 0040ECAB BB 00030000 mov ebx,300 0040ECB0 E8 92000000 call dcse.0040ED47 0040ECB5 83C4 28 add esp,28 0040ECB8 E9 36000000 jmp dcse.0040ECF3 0040ECBD 68 04000080 push 80000004 0040ECC2 6A 00 push 0 0040ECC4 68 CC904000 push dcse.004090CC 0040ECC9 68 01030080 push 80000301 0040ECCE 6A 00 push 0 0040ECD0 68 00000000 push 0 0040ECD5 68 04000080 push 80000004 0040ECDA 6A 00 push 0 0040ECDC 68 02914000 push dcse.00409102 0040ECE1 68 03000000 push 3 0040ECE6 BB 00030000 mov ebx,300 0040ECEB E8 57000000 call dcse.0040ED47 0040ECF0 83C4 28 add esp,28 0040ECF3 8BE5 mov esp,ebp 0040ECF5 5D pop ebp 0040ECF6 C3 retn
******************************************************************************************************************************************
按钮事件
1、有注册错误/正确提示
bp
bp
如果事先找不到按钮事件,可以通过下消息断点,返回后回溯即可找到按钮事件起始位置
2、无任何提示
bp
可以通过bp
3、未注册一启动或者关闭就跳出个注册框或者提示框
bp
bp
bp
文件:
至于保存到什么文件,可以使用以下方法
1、查找字符串,看是否有可疑文件名或者注册表键名
2、猜。。。下断点观察
4、未注册一启动或者关闭就打开网页链接
bp
类似的组合
Cmp/test/其他判断
Je/jne/jne/jz
软件启动—>判断是否注册—>是否Open
断下后回溯代码即可找到关键点,常用的方法,转存跟踪法
5、未注册就功能使用限制
判断是否注册—>某种功能是否让你使用,如果不能够用,一定会有提示的,或是错误提示或是弹出注册框等,那么从提示入手即可找到解除限制的关键
不完美破解:解除功能限制
6、未注册就日期限制
bp
bp
bp
一般下这几个断点比较难分析关键
捷径:查找字符串–找可疑文件–一般以DLL多见
只要不让它读取到这个DLL即可解除限制
7、Demo(演示试用版)–功能残缺
这个和上面的功能限制不一样
功能限制是软件本身就有这个功能,对程序而言,相对应的功能代码也存在
Demo即是没这个功能,空架子一个而已
一句话:破解也无用!
8、网络验证
无法登陆有错误提示者:下消息断点回溯代码,找按钮事件,从头来过,从按钮事件开始跟踪,找网络验证CALL(所需要登陆的地址在这个CALL里面),接下来就是分析返回值或者改登陆地址为本地(127.0.0.1),再后面就需要改某些跳转了
无法登陆自动退出者:下bp
9、狗加密
一般狗加密软件,一启动就会检测所需要的狗文件,若没有狗文件,提示错误
这里我们有两个入手点
1、“一启动就会检测所需要的狗文件”,下bp
2、“若没有狗文件,提示错误”,下bp
总结:
从上面的介绍说明可以看出,有这么一个共同点—按钮事件,可以这么说,按钮事件是我们的思路之门
按钮事件可以这样得来:
1、通过下相应断点,回溯代码
2、通过辅助 工具 快捷的得到(VBExplorer、DEDE)
******************************************************************************************************************************************
重启验证
80%-90%的软件基本都是重启验证类型
1、注册表类型
Bpx
Bpx
2、ini文件类型(*.reg/*.ini)
Bpx
3、其他文件类型(*.dat/*.lic…)
Bpx
Bpx
4、DLL文件操作类型
如果没有什么有效的拦截函数,不妨试一下Bpx
注意:建议使用Bpx断点,这样,比较快捷、准确。尚若Bpx失效,再尝试bp
方便断点设置的有以下3个断点插件,APIBreak中国版(不带Point-H),APIBreak英文版(带Point-H)、+BP-Olly
******************************************************************************************************************************************
去nag框的方法
1、若是Delphi&BCB程序,可以通过FormCreate法查找到FormCreate,再单步跟踪,找到窗口的调用CALL,一般它的具体形式是call
2、OD载入程序后,单步跟踪,找到窗口的调用CALL
******************************************************************************************************************************************
两种经典方法
1、Point-H法
此法类似下断点bp
GetWindowText(A/W),但是,在某些Point-H断不下来的情况下,bp
2、转存跟踪法
到底是byte/word/Dword断点,一般情况下是byte,其他特殊情况大家临场判断
******************************************************************************************************************************************
灰色按钮
有两种情况:通过代码和控件属性
VB语言:
代码:ctrl+b查找
控件属性:VBExplorer
Delphi/BC++语言:
代码:通过DEDE找FormCreate,记下地址,改
控件属性:相关辅助工具改属性
易语言:
代码:bp
控件属性:用十六进制工具查找
破解时常用断点:
VB
VB破解
1、VBExplorer查找按钮事件
2、有提示框则bp
3、通过bp
bp
bp
4、万能断点法(816C24法)
注册验证程序可以用这个断点下断,一般离程序访问注册表很近:
bp
5.F12堆栈调用
总结:
VB程序破解的关键跳转,一般与其它语言的不同,没有JPM
一般以
JE/JNE XXXXXXXXX 跳转记录一般不会很远(虽然是短距离跳转,但是关键就在这里,可以设置大量的信息) 。如果发现False/True
VB:
XXXXXXX
JE/JNE XXXXX
设置信息
Delphi BC++ 易语言 VC++ 汇编:
XXXXXXX
JE/JNE XXXXX
设置信息
XXXXXXX
JMP XXXXX
设置信息
VC++ 汇编(有的 一段,一段的):
XXXXXXX
JE/JNE XXXXX
设置信息
retn
push
xx
设置信息
retn
push
xx
设置信息
retn
易语言
1. 信息框法 bp MessageBoxA(断对话框)
查看易语言文本信息:
bp
或者在区段为”.data”/”.ecode”下断,运行
3.窗口标题法 bp SetWindowTextA
4.F12堆栈调用
0040C0CB=易语言.0040C0CB
DELPHI破解:
1、DEDE、PE
2、Point-H法
3、bp
4、bp
5、字符串法—插件/搜索所有参考文本
6、如果程序界面标题有[未注册/注册/VIP版/标准版/钻石版]
可以通过查找FormCreate/FormShow—-DEDE,找到关键标志位!
来判断程序怎么样的判断是否注册或者用户类型
7.
8.F12堆栈调用
注册表:
bpx
bp
注册码: Rc1-420+用户名(不能为整数,)+C00L
C+破解
C类
Point-H法
bp
bp
字符串法
F12堆栈调用
窗口标题法
★★C+程序专用断点★★
bp
bp
C类程序的经典断点:
bp
bp
bp
bp
ds:[004021C8]=77C01881
BC++破解
1、DEDE、PE
2、Point-H法
3、bp
4、bp
5、字符串法—插件/搜索所有参考文本
6、如果程序界面标题有[未注册/注册/VIP版/标准版/钻石版]
可以通过查找FormCreate/FormShow—-DEDE,找到关键标志位!
来判断程序怎么样的判断是否注册或者用户类型
7.窗口标题法
8.F12堆栈调用
bpx
bp
MASM32
入口点
:
004011C7 6A 00 push 0 004011C9 E8 5E070000 call 0040192C 004011CE A3 70614000 mov dword ptr ds:[406170],eax 004011D3 6A 00 push 0 004011D5 68 EE114000 push MASM32.004011EE 004011DA 6A 00 push 0 004011DC 68 C8000000 push 0C8
Point-H法
bp
bp
字符串法
F12堆栈调用
窗口标题法
OD常用断点2
1、限制程序功能函数
EnableMenuItem
EnableWindow
2、对话框函数
CreateDialog
CreateDialogParam
CreateDialogIndirect
CreateDialogIndirectParam
DialogBox
DialogBoxParam
DialogBoxIndirect
DialogBoxIndirectParam
EndDialog
MessageBox
MessageBoxEx
MessageBoxIndirect
GetDlgItemInt
GetDlgItemText
GetDlgItemTextA
Hmemcpy
3、磁盘处理函数1273?GAMEHK所有–admin?11326
GetDiskFreeSpaceA
GetDiskFreeSpaceExA
GetDriveTypeA
GetLogicalDrives
GetFullPathNameA
GetVolumeInformationA
GetWindowsDirectoryA
GetSystemDirectoryA
4、文件处理函数
CreateFileA
OpenFile
ReadFile
ReadFileEx
WriteFile
WriteFileEx
SetFilePointer
SetEndOfFile
CloseHandle
_lcreat
_lopen
_lread
_lwrite
_llseek
_lclose
_hread
_hwrite
OpenFileMappingA
CreateFileMappingA
MapViewOfFile
MapViewOfFileEx
CreateDirectoryA
CreateDirectoryExA
RemoveDirectoryA
SetCurrentDirectoryA
MoveFileA
DeleteFileA
CopyFileA
CompareFileTime
SetFileAttributesA
SetFileTime
FindFirstFileA
FindNextFileA
FindClose
SearchPathA
GetBinaryTypeA
GetFileAttributesA
GetFileSize
GetFileTime
GetFileType
5、注册表处理函数
RegOpenKeyA
RegOpenKeyExA
RegCreateKeyA
RegCreateKeyExA
RegDeleteKeyA
RegDeleteValueA
RegQueryValueA
RegQueryValueExA
RegSetValueA
RegSetValueExA
RegCloseKey
6、时间处理函数
CompareFileTime
GetFileTime
GetLocalTime
GetSystemTime
GetTickCount
SetFileTime
SetLocalTime
SetSystemTime
7、进程函数
CreateProcessA
ExitProcess
FindExecutableA
FreeLibray
GetCurrentProcess
GetCurrentProcessId
GetCurrentThread
GetExitCodeProces
GetExitCodeThread
GetModuleHandleA
GetPriorityClassA
LoadLibraryA
LoadLibraryExA
LoadModule
TerminateProcess
结束一个进程
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法设计与分析基础
Anany levitin / 潘彦 / 清华大学出版社 / 2007-1-1 / 49.00元
作者基于丰富的教学经验,开发了一套对算法进行分类的新方法。这套方法站在通用问题求解策略的高度,能对现有的大多数算法都能进行准确分类,从而使本书的读者能够沿着一条清晰的、一致的、连贯的思路来探索算法设计与分析这一迷人领域。本书作为第2版,相对第1版增加了新的习题,还增加了“迭代改进”一章,使得原来的分类方法更加完善。 本书十分适合作为算法设计和分析的基础教材,也适合任何有兴趣探究算法奥秘的读者......一起来看看 《算法设计与分析基础》 这本书的介绍吧!