爆破的一般思路与断点的设置
程序员文章站
2022-09-09 10:14:53
破 顾名思义就是暴力修改程序的代码来达到破解的目的
当然根据共享软件的注册方式我们可以对症下药
比如说没有注册的软件有功能限制、使用次数限制、使用日期限制等
我们... 08-10-08...
破 顾名思义就是暴力修改程序的代码来达到破解的目的
当然根据共享软件的注册方式我们可以对症下药 比如说没有注册的软件有功能限制、使用次数限制、使用日期限制等
我们就可以分别对待了!我们只需要解除这些限制自然就达到了破解的目的了! 暴力破解的一般流程
1、有壳者自然得先脱壳
2、试注册看看有何提示,让我们抓抓小尾巴
3、若有提示,用od动态调试器或者是w32静态调试器查找错误提示
4、来到错误提示处分析代码找关键call、关键跳!
5、修改代码
6、复制保存! 如果没有提示,我们可以使用很多断点来完成这些操作
现今软件的保护方式有
1、序列号保护方式(注册码=f(机器码/序列号))
2、警告(nag)窗口
3、时间限制/次数限制。。
4、菜单功能限制
5、key file保护
6、cd-check
7、只运行一个实例 一些软件通过把注册码保存在.ini文件、注册表、.dat文件等等方式进行注册验证 常见断点设置(后面带"*" 的为常用的) 字符串
bp getdlgitemtexta(w) ****
bp getdlgitemint
bp getwindowtexta(w) ****
bp getwindowword
bmsg xxxx wm_gettext 对话框
bp messagebeep
bp messageboxa(w) ****
bp messageboxexa(w)
bp dialogboxparama(w)
bp greatewindowexa(w)
bp showwindow
bp updatewindow
bmsg xxxx wm_command 对于vb的程序用bp messageboxa是无法断下来的,bp rtcmsgbox 注册表相关
bp regcreatekeya(w)
bp regdeletekeya(w)
bp regqueryvaluea(w)
bp regclosekey
bp regopenkeya(w) **** 时间相关
bp getlocaltime
bp getfiletime
bp getsystemtime cd-rom或磁盘相关
bp getfileattributesa(w)
bp getfilesize
bp getdrivetype
bp getlasterror
bp readfile
bpio -h (cd-rom端口地址) r 软件狗
bpio -h 278r
bpio -h 378r ini初始化文件相关
bp getprivateprofilestringa ****
bp getprivateprofileint
bp writeprivateprofilestring
bp writeprivateprofileint 文件访问相关
bp readfile
bp writefile
bp createfilea ****
bp setfilepointer
bp getsystemdirectory
vb程序专用断点:
bpx msvbvm60!rtcmsgbox
bpx msvbvm60!__vbastrcmp
bpx msvbvm60!__vbastrcomp
bpx msvbvm60!__vbastrcompvar
bpx msvbvm60!__vbastrtextcmp
bpx msvbvm60!__vbafileopen
bpx msvbvm60!__vbainputfile
bpx msvbvm60!__vbafileseek
bpx msvbvm60!__vbawritefile
bpx msvbvm60!__vbafileclose
bpx msvbvm60!rtcfileattributes
bpx msvbvm60!rtcfiledatetime
bpx msvbvm60!rtcfilelen
bpx msvbvm60!rtcfilelength
bpx msvbvm60!__vbavarint
bpx msvbvm60!__vbavarcmpge
bpx msvbvm60!__vbavarcmpgt
bpx msvbvm60!__vbavarcmple
bpx msvbvm60!__vbavarcmplt
bpx msvbvm60!__vbavarcmpne
bpx msvbvm60!__vbavartextcmpeq
bpx msvbvm60!__vbavartextcmpge
bpx msvbvm60!__vbavartextcmpgt
bpx msvbvm60!__vbavartextcmple
bpx msvbvm60!__vbavartextcmplt
bpx msvbvm60!__vbavartextcmpne
bpx msvbvm60!__vbavartexttsteq
bpx msvbvm60!__vbavartexttstge
bpx msvbvm60!__vbavartexttstgt
bpx msvbvm60!__vbavartexttstle
bpx msvbvm60!__vbavartexttstlt
bpx msvbvm60!__vbavartexttstne
bpx msvbvm60!__vbavartsteq
bpx msvbvm60!__vbavartstge
bpx msvbvm60!__vbavartstgt
bpx msvbvm60!__vbavartstle
bpx msvbvm60!__vbavartstlt
bpx msvbvm60!__vbavartstne
注意:vb程序仍然可以使用普通api函数,只要函数“最终”call了这个函数
上面的断点对应vb6程序,如果是vb5程序则将msvbvm60改成msvbvm50即可
当然根据共享软件的注册方式我们可以对症下药 比如说没有注册的软件有功能限制、使用次数限制、使用日期限制等
我们就可以分别对待了!我们只需要解除这些限制自然就达到了破解的目的了! 暴力破解的一般流程
1、有壳者自然得先脱壳
2、试注册看看有何提示,让我们抓抓小尾巴
3、若有提示,用od动态调试器或者是w32静态调试器查找错误提示
4、来到错误提示处分析代码找关键call、关键跳!
5、修改代码
6、复制保存! 如果没有提示,我们可以使用很多断点来完成这些操作
现今软件的保护方式有
1、序列号保护方式(注册码=f(机器码/序列号))
2、警告(nag)窗口
3、时间限制/次数限制。。
4、菜单功能限制
5、key file保护
6、cd-check
7、只运行一个实例 一些软件通过把注册码保存在.ini文件、注册表、.dat文件等等方式进行注册验证 常见断点设置(后面带"*" 的为常用的) 字符串
bp getdlgitemtexta(w) ****
bp getdlgitemint
bp getwindowtexta(w) ****
bp getwindowword
bmsg xxxx wm_gettext 对话框
bp messagebeep
bp messageboxa(w) ****
bp messageboxexa(w)
bp dialogboxparama(w)
bp greatewindowexa(w)
bp showwindow
bp updatewindow
bmsg xxxx wm_command 对于vb的程序用bp messageboxa是无法断下来的,bp rtcmsgbox 注册表相关
bp regcreatekeya(w)
bp regdeletekeya(w)
bp regqueryvaluea(w)
bp regclosekey
bp regopenkeya(w) **** 时间相关
bp getlocaltime
bp getfiletime
bp getsystemtime cd-rom或磁盘相关
bp getfileattributesa(w)
bp getfilesize
bp getdrivetype
bp getlasterror
bp readfile
bpio -h (cd-rom端口地址) r 软件狗
bpio -h 278r
bpio -h 378r ini初始化文件相关
bp getprivateprofilestringa ****
bp getprivateprofileint
bp writeprivateprofilestring
bp writeprivateprofileint 文件访问相关
bp readfile
bp writefile
bp createfilea ****
bp setfilepointer
bp getsystemdirectory
vb程序专用断点:
bpx msvbvm60!rtcmsgbox
bpx msvbvm60!__vbastrcmp
bpx msvbvm60!__vbastrcomp
bpx msvbvm60!__vbastrcompvar
bpx msvbvm60!__vbastrtextcmp
bpx msvbvm60!__vbafileopen
bpx msvbvm60!__vbainputfile
bpx msvbvm60!__vbafileseek
bpx msvbvm60!__vbawritefile
bpx msvbvm60!__vbafileclose
bpx msvbvm60!rtcfileattributes
bpx msvbvm60!rtcfiledatetime
bpx msvbvm60!rtcfilelen
bpx msvbvm60!rtcfilelength
bpx msvbvm60!__vbavarint
bpx msvbvm60!__vbavarcmpge
bpx msvbvm60!__vbavarcmpgt
bpx msvbvm60!__vbavarcmple
bpx msvbvm60!__vbavarcmplt
bpx msvbvm60!__vbavarcmpne
bpx msvbvm60!__vbavartextcmpeq
bpx msvbvm60!__vbavartextcmpge
bpx msvbvm60!__vbavartextcmpgt
bpx msvbvm60!__vbavartextcmple
bpx msvbvm60!__vbavartextcmplt
bpx msvbvm60!__vbavartextcmpne
bpx msvbvm60!__vbavartexttsteq
bpx msvbvm60!__vbavartexttstge
bpx msvbvm60!__vbavartexttstgt
bpx msvbvm60!__vbavartexttstle
bpx msvbvm60!__vbavartexttstlt
bpx msvbvm60!__vbavartexttstne
bpx msvbvm60!__vbavartsteq
bpx msvbvm60!__vbavartstge
bpx msvbvm60!__vbavartstgt
bpx msvbvm60!__vbavartstle
bpx msvbvm60!__vbavartstlt
bpx msvbvm60!__vbavartstne
注意:vb程序仍然可以使用普通api函数,只要函数“最终”call了这个函数
上面的断点对应vb6程序,如果是vb5程序则将msvbvm60改成msvbvm50即可
上一篇: Angular路由简单学习