常用来设置断点的API

怎样查找API:
方法一:
1、命令栏输入“? MessageBoxA“(区分大小写),查看提示的hex地址
2、反汇编窗口-右键–Goto-Expression–输入地址,显示API实现代码
3、命令栏输入”bp MessageBoxA“,设置断点
方法二:
1、反汇编窗口-右键-Search for—Name(label)in current module Ctrl+N 获取API列表
2、按M键,光标自动定位到第一个函数名称以M开始的API上
3、找到API,右键-Follow import in Disassembler 转到反汇报窗口,显示API实现代码
4、找到API,右键-Toggle breakpoint on import,设置断点

1.序列号保护
定位判断序列号的代码段
1)获取字符串(序列号)
GetWindowTextA、GetWindowWord、GetDlgItemTextA、GetDlgItemInt等。
2)对话框
MessageBoxA、MessageBoxExA、DialogBoxParamA、DialogBoxIndirectParamA、CreateDialogIndirectParamA、CreateDialogParamA、CreateWindowEx、GetProfileStringA、ShowWindow、UpdateWindow、MessageBeep等。
3)比较序列号
test、cmp–>跳转je/jne(是否相等)、jz/jnz(是否等于0)等。
破解:定位后,修改跳转条件,即不论输入什么都返回序列号正确。

2.警告窗口(提醒用户购买正版)
去除警告窗口的弹出
1)显示窗口
MessageBoxA、MessageBoxExA、DialogBoxParamA、ShowWindow、CreateWindowExA等
(DialogBoxParamA一般和EndDialog配对使用)
破解:找到创建窗口的代码和关闭窗口的代码后,跳过(jmp+地址)。

3.时间限制
1)计时器
SetTimer(KillTimer取消)、timeSetEvent(精度高)、GetTickCount(两次获得系统运行时间后相减来计时)等。
2)取得系统时间
GetSystemTime、GetLocalTime、GetFileTime等。
破解:跳过SetTimer函数(jmp),或者让WM_TIMER消息不发挥作用(用空指令替代)

4.菜单功能限制
一些功能在试用版不能使用,购买正式版才能使用,需要恢复被限制的功能
1)将菜单或窗口变为不可用
EnableMenuItem、EnableWindow等。
破解:修改相应函数的参数

5.KeyFile保护
KeyFile是注册文件,包含注册用户的用户名、注册码等信息,放在购买的软件的指定目录以供验证。
1)有关文件的操作
FindFirstFileA、CreateFileA、GetFileSize、GetFileAttributesA、SetFilePointer、ReadFile、WriteFile、GetSystemDirectory等
破解:用FileMon等工具找出KeyFile文件名–>伪造一个同名的文件,放入有规律的数字(如12345…),分析处理KeyFile文件中数据的算法。这样根据用户名,就可以推出对应的KeyFile文件内容。

6.网络验证
拦截服务器返回的数据包,分析处理数据包的算法(发送的、接收的)。
1)传送数据
send、recv(TCP的两端)
破解:方法一,写个服务器,模拟服务器接收和发送数据
方法二,去除send和recv功能

7.CD-Check光盘检测
在程序启动时,检查光盘中是否有特定的文件,来判断是否正版
1)光盘相关的函数
GetDriveType(磁盘驱动类型,检查文件是否在光驱)、GetLogicalDrives(逻辑驱动符号)、GetLogicalDriveStrings(根驱动路径)、GetFileAttributesA(判断文件属性)、CreateFileA(打开光盘文件)等。
破解:修改检查结果,通过修改跳转语句

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
aardio 是一款集成开发环境(IDE),可以方便地编写、调试和运行程序。在 aardio 中设置断点是一种常用的调试方法,用于在程序执行过程中暂停执行,并观察程序状态以及变量值的改变。 在 aardio 中,我们可以通过以下步骤来设置断点: 1. 首先,打开 aardio IDE,并找到要设置断点的代码所在的文件。 2. 在代码编辑区域中,找到需要设置断点的那一行代码。一般来说,我们会选择在程序中有可能出错或需要进一步观察的地方设置断点。 3. 在该行代码的左侧空白处单击一次,就会在该行的左侧出现一个红点,表示已成功设置断点。 4. 接下来,我们可以开始调试程序。点击 aardio IDE 上方的“调试”按钮,选择“启动调试”选项,或者使用快捷键 F5,即可开始程序的调试。 5. 一旦程序执行到设置断点的位置,程序会在该处暂停执行,同时调试控制台会显示当前断点所在的位置。 6. 在断点暂停的地方,我们可以观察程序的状态,查看变量的值,以及检查程序是否按照预期执行。 7. 在调试过程中,可以使用 aardio IDE 提供的调试工具来继续执行、单步执行、跳过当前断点等操作。 8. 如果需要取消断点,只需单击设置断点的那一行代码的左侧空白处,断点会消失。 通过设置断点,我们可以更加方便地进行程序调试,及时发现和解决代码中的问题,提高开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值