爆破的思路与断点设置

所属分类: 网络安全 / 黑客教程 阅读数: 1672
收藏 0 赞 0 分享
破 顾名思义就是暴力修改程序的代码来达到破解的目的
当然根据共享软件的注册方式我们可以对症下药

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

暴力破解的一般流程
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字符串



更多精彩内容其他人还在看

总结各大高手的提权思路

c: d: e:..... C:Documents and SettingsAll Users「开始」菜单程序 看这里能不能跳转,我们从这里可以获取好多有用的信息比如Serv-U的路径, C:Documents and SettingsAll UsersApplica
收藏 0 赞 0 分享

黑客攻击数据库的六大手段

普通的黑客从进入到退出一次数据攻击只需用不到10秒钟时间就可完成,这个时间对于数据库管理员来说即使注意到入侵者都几乎不够。因此,在数据被损害很长时间之前,许多数据库攻击都没有被单位注意到。   令人奇怪的是,根据许多专家的介绍,作为企业之“王冠”的大本
收藏 0 赞 0 分享

phpcms2008注射0day

中秋节到了,这里我送上phpcms2008的一枚注射漏洞!!希望各位朋友多多支持本站啊~~ 漏洞存在于ask/search.php文件,以下是漏洞代码: if($keywords) { $where .= " AND title LIKE
收藏 0 赞 0 分享

不用引号的字符注入和XSS

在字符型填字游戏中,'和"往往是决定能否跳出约束进行攻击的关键,于是出现鸟转义字符  ,可以把' "变成残废....这恰恰帮助我们改变了字符内部结构 SQL Injection 在MYSQL中登陆界面 $db->q
收藏 0 赞 0 分享

linux下留本地后门的两个方法

方法一:setuid的方法,其实8是很隐蔽。看看过程: [root@localdomain lib]# ls -l |grep ld-linux lrwxrwxrwx 1 root root 9 2008-06-07 17:32 ld-linux.so.
收藏 0 赞 0 分享

社会工程学入侵三步走

大家一定知道超级黑客凯文·米特尼克吧,深为他的社会工程学所折服,美国国防部、五角大楼、中央情报局、北美防空系统……都是他闲庭信步的地方,没有人怀疑他的真实身份,对于他所想获得的信息如鱼得水,这便是社会工程学的魅力。当然,社会工程学不是那么困难难以撑
收藏 0 赞 0 分享

linux入侵踪迹隐藏攻略

前言: 被警察叔叔请去喝茶时间很痛苦的事情,各位道长如果功力不够又喜欢出风头的想必都有过这样的“待遇”。如何使自己在系统中隐藏的更深,是我们必须掌握的基本功。当然,如果管理员真的想搞你而他的功力又足够足的话,相信没什么人能够真正的“踏雪无痕”。Fore
收藏 0 赞 0 分享

关于趋势科技等网站被攻击的分析

一. 首先在网上找到了这次攻击的新闻报道 http://www.nsfocus.net/news/6697 http://hi.baidu.com/secway/blog/item/e80d8efa4bf73ddab48f31a3.html 通过GOOGLE搜索到
收藏 0 赞 0 分享

实战讲解跨站入侵攻击

很多时候在企业网络安全,特别是服务器上数据库安全防范方面需要特别注意,弥补所有漏洞,减少因设置不当带来的入侵事件的发生。然而在实际使用与维护过程中我们经常会听到一个新的名词——“跨站入侵”,那么什么是“跨站入侵”,他是如何产生如何被利用的呢?今天就请各
收藏 0 赞 0 分享

黑客入侵网络的五十种方法

现在网上的攻击事件越来越多,黑客都是通过什么方法来攻击我们的呢?下面我们给大家总结了黑客入侵网络的五十种方法,让大家做到有备无患。   1.网宽网络有限公司制作的网站基本都有注入漏洞 搜索网宽网络   2.搜索栏里输入   关键字%'and 1=1 and '%'
收藏 0 赞 0 分享
查看更多