为了顺应当前形势和更好的发展,黑基网已于9月19日正式更名为【安基网】,域名更换为www.safebase.cn,请卸载旧的APP并安装新的APP,给您带来不便,敬请理解!谢谢

黑基Web安全攻防班
安基网 首页 IT技术 安全攻防 查看内容

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

2008-9-18 17:12| 投稿: security

摘要: 破顾名思义就是暴力修改程序的代码来达到破解的目的  当然根据共享软件的注册方式我们可以对症下药  比如说没有注册的软件有功能限制、使用次数限制、使用日期限制等  我们就可...
破顾名思义就是暴力修改程序的代码来达到破解的目的  当然根据共享软件的注册方式我们可以对症下药  比如说没有注册的软件有功能限制、使用次数限制、使用日期限制等  我们就可以分别对待了!我们只需要解除这些限制自然就达到了破解的目的了!  暴力破解的一般流程  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即可  另外还有一类软件通过网络验证、重启验证来判断程序是否注册  当然前者一般应用于外挂程序上较多,一般是改网络验证为本地验证达到欺骗远程网络主机的目的达到通过验证!  后者也是很常见的,他一般把用户输入的注册码直接或者是通过加密运算后得到的数值保存到文件、注册表中,然后提示用户重启验证是否注册,当然当你重新打开程序的时候他会从文件或者是注册表中读取用户输入的注册码,再通过程序注册算法来进行比照,正确者当然就成为正版,错误的自然就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(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 GetSystemTime 获取系统时间    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字符串 

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

最新

返回顶部