爆破理念与断点设置
注释:该漏洞的名称是程序代码被暴力修改以达到破解的目的。当然,按照共享软件的注册方式,我们可以采取补救措施。
例如,未注册的软件有功能限制、频率限制、使用日期限制等。
我们可以互相对待,我们只需要解除这些限制,自然达到打破它的目的!
蛮力
该漏洞的名称是程序代码被暴力修改以达到破解的目的。
当然,按照共享软件的注册方式,我们可以采取补救措施。
例如,未注册的软件有功能限制、频率限制、使用日期限制等。
我们可以互相对待,我们只需要解除这些限制,自然达到打破它的目的!
暴力破裂的一般过程
1,贝壳人自然得先脱下贝壳。
2。试着注册一个提示。让我们抓住一条小尾巴。
三.如果你有一个提示,使用OD动态调试器或W32静态调试找到错误提示
4,来到错误提示,分析代码,找到键调用,键跳转!
5。修改代码
6,复制和保存!
如果没有提示,我们可以使用大量断点来完成这些操作。
现在有保护软件的方法。
1,序列号保护模式(注册码= F(机器码/序列号))
2,警告(NAG)窗口
3、时限/时间限制。
4、菜单功能限制
5、密钥文件保护
6、光盘检查
7。只运行一个实例
有些软件通过在INI文件、注册表、DAT文件中保存注册代码来实现注册验证。
常用断点设置(后跟常用)
字符串
BP getdlgitemtexta(W)*
BP getdlgitemint
BP getwindowtexta(W)*
BP获得指定窗口结构的信息
英国商人服务协会XXXX wm_gettext
对话框
bp MessageBeep
BP MessageBoxA(W)*
BP messageboxexa(W)
BP dialogboxparama(W)
BP greatewindowexa(W)
BP ShowWindow
BP UpdateWindow
英国商人服务协会XXXX wm_command
VB程序不能与BP MessageBoxA破碎,BP rtcmsgbox
注册表相关
BP regcreatekeya(W)
BP regdeletekeya(W)
BP regqueryvaluea(W)
BP regclosekey
BP regopenkeya(W)*
时间相关
获取本地时间
获取文件时间
BP GetSystemTime
光盘或磁盘相关
BP getfileattributesa(W)
BP得到指定文件的大小
BP GetDriveType
BP GetLastError
BP ReadFile
及H(光盘端口地址)R
软件狗
278r及H
378r及H
初始化文件关联
BP getprivateprofilestringa * * * * * * * * *
BP getprivateprofileint
BP WritePrivateProfileString
BP writeprivateprofileint
文件访问相关
BP ReadFile
BP WriteFile
BP CreateFileA * * * * * * * * *
BP SetFilePointer
BP getsystemdirectory
特定断点程序:
创建msvbvm60!rtcmsgbox
创建msvbvm60!__vbastrcmp
创建msvbvm60!__vbastrcomp
创建msvbvm60!__vbastrcompvar
创建msvbvm60!__vbastrtextcmp
创建msvbvm60!__vbafileopen
创建msvbvm60!__vbainputfile
创建msvbvm60!__vbafileseek
创建msvbvm60!__vbawritefile
创建msvbvm60!__vbafileclose
创建msvbvm60!rtcfileattributes
创建msvbvm60!rtcfiledatetime
创建msvbvm60!rtcfilelen
创建msvbvm60!rtcfilelength
创建msvbvm60!__vbavarint
创建msvbvm60!__vbavarcmpge
创建msvbvm60!__vbavarcmpgt
创建msvbvm60!__vbavarcmple
创建msvbvm60!__vbavarcmplt
创建msvbvm60!__vbavarcmpne
创建msvbvm60!__vbavartextcmpeq
创建msvbvm60!__vbavartextcmpge
创建msvbvm60!__vbavartextcmpgt
创建msvbvm60!__vbavartextcmple
创建msvbvm60!__vbavartextcmplt
创建msvbvm60!__vbavartextcmpne
创建msvbvm60!__vbavartexttsteq
创建msvbvm60!__vbavartexttstge
创建msvbvm60!__vbavartexttstgt
创建msvbvm60!__vbavartexttstle
创建msvbvm60!__vbavartexttstlt
创建msvbvm60!__vbavartexttstne
创建msvbvm60!__vbavartsteq
创建msvbvm60!__vbavartstge
创建msvbvm60!__vbavartstgt
创建msvbvm60!__vbavartstle
创建msvbvm60!__vbavartstlt
创建msvbvm60!__vbavartstne
注意:VB程序仍然可以使用普通api函数,只要函数最终调用函数即可。
断点以上对应VB6的程序,如果它是VB5程序的msvbvm60改为msvbvm50
还有一类软件,验证并重新启动验证,以确定程序是否已注册。
当然,前者主要应用于插件程序。一般情况下,将其改为网络验证以实现本地验证,从而达到欺骗远程网络主机的目的。
后者也很常见,他把一般用户输入注册码直接或通过加密算法保存到文件,后值的注册表,然后提示用户重启是否登记,当然,当你重新打开程序,他将从文件或注册表读取用户输入的注册码,然后通过对配准算法比较当然正确的程序已成为真正的、天然的误差为88,除了重新启动软件一般是验证存储在注册表或文件的注册码!
下面是解决这类软件的一般方法!
重新启动验证类软件的一般验证过程。
1、运行软件,输入注册信息,注册后,软件会提示你重新运行软件为了验证注册信息的正确性(如FlashGet);
当你输入正确的注册信息时,也只有这个提示,或者你会告诉你输入信息是有问题的(软件属于这一类)。
2。破解这个软件,首先是法官,她已登记信息(因为她重新验证)。大约有两种类型的存储,第一个是在注册表中,二是在文档中。(我们可以输入注册信息,点击确定,并使用监控软件检查,如filemon和regshot,等)
3,当您知道注册信息的位置时,您可以选择相应的API断点进行调试。
访问注册表类常用api
BP regopenkeya打开一个现有的注册表项*
BP RegOpenKeyExA打开一个现有的注册表项*
BP regcreatekeya创建或打开一个项目指定的项下
一个更复杂的一个指定项下创建新项目BP regcreatekeyexa方式
BP regdeletekeya删除一个指定的子项下面的现有项目
BP regdeletevaluea删除下面指定的项的值
BP regqueryvaluea获取项的设定值
BP regqueryvalueexa获取项的设定值
BP regsetvaluea设置指定项或子项的值
BP regsetvalueexa设置指定项的值
BP regclosekey关闭一个项目(或关键)在系统注册表中
访问文件类常用api
BP CreateFileA打开和创建文件、管道、邮件槽、通信服务、设备和控制台*
BP openfile函数可以执行大量不同的文件操作
BP ReadFile从文件中读取数据
BP ReadFileEx类似ReadFile,但它只能用于异步读操作,包含一个完整的回调
======================================================
常见断点(OD)
拦截窗口:
BP CreateWindow创建窗口
(一)BP CreateWindowEx创建窗口
BP ShowWindow显示窗口
BP UpdateWindow更新窗口
BP GetWindowText(一)获取窗口的文本
拦截消息框:
(一)BP MessageBox创建一个消息框
BP messageboxexa创建一个消息框
BP messageboxindirect(一)创建一个自定义的消息框
拦截警告语音:
bp MessageBeep发出系统警告(如果没有声卡直接驱动系统的喇叭)
拦截器对话框:
创建模态对话框创建一个模态对话框
BP dialogboxparam(一)创建一个模态对话框
BP模态对话框创建一个模态对话框
BP dialogboxindirectparam(一)创建一个模态对话框
BP createdialog创建非模态对话框
BP createdialogparam(一)创建一个非模态对话框
BP createdialogindirect创建非模态对话框
BP createdialogindirectparam(一)创建一个非模态对话框
BP getdlgitemtext(一)获取对话框文本
BP getdlgitemint获取对话框的整数
截取剪贴板:
BP getclipboarddata获取剪贴板数据
截获注册表:
BP regopenkey(一)打开Zi Jian
BP RegOpenKeyEx打开Zi Jian
BP regqueryvalue(一)查找Zi Jian
BP或者变量查找Zi Jian
BP regsetvalue(一)Zi Jian
(一)Zi Jian BP RegSetValueEx
函数限制截取断点:
禁止或允许菜单项禁止或允许的菜单项
BP的禁止或允许Windows
拦截时间:
获取本地时间获取本地时间
BP GetSystemTime获取系统时间
获取文件时间获取文件时间
BP函数得到的毫秒数自系统启动成功
BP的取得时间获取当前时间(16位)
BP SetTimer创建一个定时器
BP的TimerProc回调函数的定时器超时
拦截文件:
BP CreateFileA创建或打开一个文件(32位)
BP打开文件打开文件(32位)
BP ReadFile读取文件(32位)
BP WriteFile写入文件(32位)
拦截驱动:
BP这个获取磁盘驱动器的类型
BP getlogicaldrives获取逻辑驱动器符号
BP getlogicaldrivestringsa获取当前所有逻辑驱动器的根驱动器路径
***特殊断点程序
BP __vbastrcmp比较字符串相等
BP __vbastrcomp比较字符串相等
BP是否__vbavartstne比较变量不相等
BP __vbavartsteq比较变量相等
BP __vbastrcopy字符串复制
BP __vbastrmove移动字符串
BP MultiByteToWideChar ANSI字符串转换为Unicode字符串
BP WideCharToMultiByte这两个函数Unicode字符串转换为ANSI字符串