设置断点:爆破的思路和断点设置

来源:安全中国

破 顾名思义就是暴力修改代码来达到破解
当然根据共享软件Software注册方式我们可以对症下药

比如说没有注册软件Software有功能限制、使用次数限制、使用日期限制等
我们就可以分别对待了!我们只需要解除这些限制自然就达到了破解了!

暴力破解般流程
1、有壳者自然得先脱壳
2、试注册看看有何提示让我们抓抓小尾巴
3、若有提示用OD动态调试器或者是W32静态调试器查找提示
4、来到提示处分析代码找关键CALL、关键跳!
5、修改代码
6、复制保存!

如果没有提示我们可以使用很多断点来完成这些操作
现今软件Software保护方式有
1、序列号保护方式(注册码=f(机器码/序列号))
2、警告(NAG)窗口
3、时间限制/次数限制
4、菜单功能限制
5、Key File保护
6、CD-Check
7、只运行个例子

些软件Software通过把注册码保存在.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 Gettime

CD-ROM或磁盘相关
bp GetFileAttributesA(W)
bp GetFileSize
bp GetDriveType
bp GetLastError
bp ReadFile
bpio -h (CD-ROM端口地址) R

软件Software狗
bpio -h 278R
bpio -h 378R

INI化文件相关
bp GetPrivateProfileStringA  ****
bp GetPrivateProfileInt
bp WritePrivateProfileString
bp WritePrivateProfileInt

文件访问相关
bp ReadFile
bp WriteFile
bp CreateFileA  ****
bp SetFilePoer
bp GetDirectory
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即可

另外还有类软件Software通过网络验证、重启验证来判断是否注册
当然前者般应用于外挂上较多般是改网络验证为本地验证达到欺骗远程网络主机达到通过验证!
后者也是很常见般把用户输入注册码直接或者是通过加密运算后得到数值保存到文件、注册表中然后提示用户重启验证是否注册当然当你重新打开时候他会从文件或者是注册表中读取用户输入注册码再通过注册算法来进行比照正确者当然就成为正版自然就88了另外以重启验证软件Software般是把注册码保存在注册表或文件中!

下面来说说解决这类软件Software般思路方法!

重启验证类软件Software大致验证过程
1、运行软件Software输入注册信息点注册后般软件Software会提示你重新运行软件Software以便验证注册信息正确性(如FlashGet);
也有只在你输入正确注册信息时才有这个提示不然会告诉你输入注册信息有问题(此软件Software就属这类)

2、要破解这种软件Software首先是判断下她把注册信息存在哪里(她重启验证时要用)大致有两种存放方式种是放在注册表里;第 2种是放在文件里(我们可以在输入注册信息点击确定前利用监视类软件Software来查看如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(A) 创建窗口 
 bp ShowWindow 显示窗口 
 bp UpdateWindow 更新窗口 
 bp GetWindowText(A) 获取窗口文本 
拦截消息框:
 bp MessageBox(A) 创建消息框 
 bp MessageBoxExA 创建消息框 
 bp MessageBoxIndirect(A) 创建定制消息框 
拦截警告声:
 bp MessageBeep 发出系统警告声(如果没有声卡就直接驱动系统喇叭发声) 
拦截对话框:
 bp DialogBox 创建模态对话框 
 bp DialogBoxParam(A) 创建模态对话框 
 bp DialogBoxIndirect 创建模态对话框 
 bp DialogBoxIndirectParam(A) 创建模态对话框 
 bp CreateDialog 创建非模态对话框 
 bp CreateDialogParam(A) 创建非模态对话框 
 bp CreateDialogIndirect 创建非模态对话框 
 bp CreateDialogIndirectParam(A) 创建非模态对话框 
 bp GetDlgItemText(A) 获取对话框文本 
 bp GetDlgItemInt 获取对话框整数值 
拦截剪贴板:  
 bp GetClipboardData 获取剪贴板数据 
拦截注册表:
 bp RegOpenKey(A) 打开子健 
 bp RegOpenKeyEx 打开子健
 bp RegQueryValue(A) 查找子健
 bp RegQueryValueEx 查找子健
 bp RegSetValue(A) 设置子健 
 bp RegSetValueEx(A) 设置子健
功能限制拦截断点:
 bp EnableMenuItem 禁止或允许菜单项 
 bp EnableWindow 禁止或允许窗口 
拦截时间:
 bp GetLocalTime 获取本地时间 
 bp GetTime 获取系统时间 
 bp GetFileTime 获取文件时间 
 bp GetTickCount 获得自系统成功启动以来所经历毫秒数 
 bp GetCurrentTime 获取当前时间(16位) 
 bp SetTimer 创建定时器 
 bp TimerProc 定时器超时回调
拦截文件: 
 bp CreateFileA 创建或打开文件 (32位) 
 bp OpenFile 打开文件       (32位) 
 bp ReadFile 读文件         (32位) 
 bp WriteFile 写文件         (32位) 
拦截驱动器:  
 bp GetDriveTypeA 获取磁盘驱动器类型 
 bp GetLogicalDrives 获取逻辑驱动器符号 
 bp GetLogicalDriveStringsA 获取当前所有逻辑驱动器根驱动器路径 

 ★★VB专用断点★★
 bp __vbaStrCmp 比较串是否相等 
 bp __vbaStrComp 比较串是否相等 
 bp __vbaVarTstNe 比较变量是否不相等 
 bp __vbaVarTstEq 比较变量是否相等 
 bp __vbaStrCopy 复制串 
 bp __vbaStrMove 移动串 
 bp MultiByteToWideChar ANSI串转换成Unicode串 
 bp WideCharToMultiByte Unicode串转换成ANSI串 



  • 篇文章: Crack力量!收费共享软件Software破解思路浅析

  • 篇文章: 加密技术方方面面知识
  • Tags:  eclipse设置断点 如何设置断点 不能设置断点 设置断点

    延伸阅读

    最新评论

    发表评论