欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

爆破的一般思路与断点的设置

程序员文章站 2022-04-23 23:14:37
破 顾名思义就是暴力修改程序的代码来达到破解的目的 当然根据共享软件的注册方式我们可以对症下药 比如说没有注册的软件有功能限制、使用次数限制、使用日期限制等 我们... 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即可