找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 1250|回复: 0

暴力破解的一般流程

[复制链接]

64

主题

14

回帖

162

牛毛

一级牛人

SEO

积分
162
发表于 2010-8-28 16:23:04 | 显示全部楼层 |阅读模式 来自 重庆市渝北区
破 顾名思义就是暴力修改程序的代码来达到破解的目的
当然根据共享软件的注册方式我们可以对症下药
比如说没有注册的软件有功能限制、使用次数限制、使用日期限制等
我们就可以分别对待了!我们只需要解除这些限制自然就达到了破解的目的了!
暴力破解的一般流程
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断点,来调试了
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-4-26 17:45 , Processed in 0.158545 second(s), 30 queries .

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表