需要破解的程序

输入用户名和序列号,点击 Check,程序会进行校验

用 OD 打开程序

按快捷键 Ctrl+F9 跟随表达式 GetDlgItemTextA

点击 ok

在这里调用了 GetDlgItemTextA,按 F2 下一个断点

按这个 C 字母,快捷键为 Alt+C 回到程序的起始处

然后按 F9 运行程序,将弹出对话框

输入用户名 sch01ar,序列号 123456,然后点击 Check

程序将在断点处停下

此时的程序没有弹出序列号错误的对话框,因为程序只运行到断点处

按 F7 进行程序的运行

运行到 call 指令这个位置,可以按 F7 进入函数内,但是函数内没什么内容

跳出函数,按 F8 继续往下走

在这个地址看到了刚才输入的用户名

可以在 hex 中进行确认

继续按 F8 可以得到

EAX 中存放着序列号,EDX 中存放着用户名,EBX 中存放着用户名的长度

push 分别把 EAX,EDX,EBX 入栈,这三个是 call 调用地址为 00401340 函数的参数

这个函数可能是验证序列号的,直接看函数的返回值,按 F8 步过,往下走

运行到这,test 判断 EAX 是否为 0,如果为 0,零标志位 Z 就为 1

0 为 False,即结果不正确

按 F8 执行 test eax, eax

这时的 Z 的值就为 1 了,说明函数返回的是 False

双击 Z 的 1,变为 0

成功

把这个判断给去掉,双击这个 je 指令,或者按空格

改为 nop

接下来保存文件

选择这两行 nop,右键 -> 复制到可执行文件 -> 选择

然后在上面这个界面右键 -> 备份 -> 保存数据到文件

保存完后打开该程序

可以运行的

接下来看看有没有绕过序列号的验证

输入用户名 aaaaaa,序列号 111111,点击 Check

成功绕过了序列号验证

最新文章

  1. 运用php做投票题,例题
  2. UI自动化,你值得拥有
  3. 比较器:Compare接口与Comparator接口区别与理解
  4. <转>Win7系统下利用U盘安装Ubuntu_12.04实现双系统教程
  5. sqlalchemy 实体属性提前加载
  6. Android 播放电影时滑动屏幕调整屏幕亮度(转)
  7. Python循环嵌套
  8. (medium)LeetCode 238.Product of Array Except Self
  9. UVA 11865 Stream My Contest 组网 (朱刘算法,有向生成树,树形图)
  10. 第一部分 android display(sufaceflinger & overlay)
  11. login-登录
  12. [C++ 2011 STL (VS2012 Update4) 源代码阅读系列(2)]熟悉一些宏定义和模版偏特化或叫模版专门化
  13. hdu1251统计难题
  14. The Hungarian algorithm Template
  15. RecyclerView.Adapter优化了吗?
  16. VUE 参数共享问题
  17. 2018.12.08 codeforces 939E. Maximize!(二分答案)
  18. Nginx端口占用问题
  19. C#网络编程TCP通信实例程序简单设计
  20. Openning SharePoint - 80 website gives HTTP 404 Error, The webpage cannot be found ! on SharePoint 2013

热门文章

  1. Leetcode 814. Binary Tree Pruning
  2. 基于Ubuntu16.04的GeForce GTX 1080驱动安装,遇到的问题及对应的解决方法
  3. 汇编语言---键盘KeyCode值列表
  4. PHP convet class to json data
  5. matlab下利用K-Means进行图像分类
  6. mysql 时间转换 用EXCEL实现MySQL时间戳格式和日期格互转
  7. huawei机试题目
  8. 每天一个linux命令(文件操作):【转载】find命令之xargs
  9. Excel VBA to Interact with Other Applications
  10. 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦!