您尚未登录,请登录后浏览更多内容! 登录 | 注册并了解

QQ登录

只需一步,快速开始

 找回密码
 注册并了解

QQ登录

只需一步,快速开始

查看: 2335|回复: 4
收起左侧

[逆向工程] 1、爆破

[复制链接]

点击这里给我发消息

QQ

发表于 2013-11-29 13:59:18 | 显示全部楼层 |阅读模式
爆破 顾名思义就是暴力修改程序的代码来达到破解的目的
当然根据共享软件的注册方式我们可以对症下药
比如说没有注册的软件有功能限制、使用次数限制、使用日期限制等
我们就可以分别对待了!我们只需要解除这些限制自然就达到了破解的目的了!

暴力破解的一般流程

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

如果没有提示,我们可以使用很多断点来完成这些操作
现今软件的保护方式有

1、序列号保护方式(注册码=f(机器码/序列号))
2、警告(NAG)窗口
3、时间限制/次数限制。。
4、菜单功能限制
5、Key File保护
6、CD-Check
7、只运行一个实例

一些软件通过把注册码保存在.ini文件、注册表、.dat文件等等方式进行注册验证
常见断点设置
字符串
  1. bp GetDlgItemTextA(W) ****
  2. bp GetDlgItemInt
  3. bp GetWindowTextA(W) ****
  4. bp GetWindowWord
  5. bmsg XXXX wm_gettext
复制代码
对话框
  1. bp MessageBeep
  2. bp MessageBoxA(W) ****
  3. bp MessageBoxExA(W)
  4. bp DialogBoxParamA(W)
  5. bp GreateWindowExA(W)
  6. bp ShowWindow
  7. bp UpdateWindow
  8. bmsg XXXX wm_command
复制代码
对于VB的程序用bp MessageBoxA是无法断下来的,bp rtcMsgBox
注册表相关
  1. bp RegCreateKeyA(W)
  2. bp RegDeleteKeyA(W)
  3. bp RegQueryValueA(W)
  4. bp RegCloseKey
  5. bp RegOpenKeyA(W) ****
复制代码
时间相关
  1. bp GetLocalTime
  2. bp GetFileTime
  3. bp GetSystemtime
复制代码
CD-ROM或磁盘相关
  1. bp GetFileAttributesA(W)
  2. bp GetFileSize
  3. bp GetDriveType
  4. bp GetLastError
  5. bp ReadFile
  6. bpio -h (CD-ROM端口地址) R
复制代码
软件狗
  1. bpio -h 278R
  2. bpio -h 378R
复制代码
INI初始化文件相关
  1. bp GetPrivateProfileStringA  ****
  2. bp GetPrivateProfileInt
  3. bp WritePrivateProfileString
  4. bp WritePrivateProfileInt
复制代码
文件访问相关
  1. bp ReadFile
  2. bp WriteFile
  3. bp CreateFileA  ****
  4. bp SetFilePointer
  5. bp GetSystemDirectory
复制代码
另外还有一类软件通过网络验证、重启验证来判断程序是否注册

当然前者一般应用于外挂程序上较多,一般是改网络验证为本地验证达到欺骗远程网络主机的目的达到通过验证!

后者也是很常见的,他一般把用户输入的注册码直接或者是通过加密运算后得到的数值保存到文件、注册表中,然后提示用户重启验证是否注册,当然当你重新打开程序的时候他会从文件或者是注册表中读取用户输入的注册码,再通过程序注册算法来进行比照,正确者当然就成为正版,错误的自然就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相似,只是它只能用于异步读操作,并包含了一个完整的回调




上一篇:汇编常用指命
下一篇:常见语言特征 OEP

QQ

发表于 2016-3-5 04:31:23 | 显示全部楼层
谢谢,过来支持一下

QQ

发表于 2016-3-6 18:33:39 | 显示全部楼层
支持楼主,加油。加油!

QQ

发表于 2016-3-7 16:19:02 | 显示全部楼层

QQ

发表于 2016-3-8 14:05:33 | 显示全部楼层
支持楼主,加油。加油!
您需要登录后才可以回帖 登录 | 注册并了解

本版积分规则

       
    闽ICP备12002833号

GMT+8, 2024-3-29 09:02 , Processed in 0.386330 second(s), 49 queries .

返回顶部