[学习笔记]修改关键跳无效且关键CALL又不存在的情况
先用DI查下壳,VC++写的,无壳。


然后,打开软件看一下软件注册的情况

有弹窗,那载入OD看看能不能搜索到字符串

回到反汇编窗口,发现有两个JE都跳过了注册成功的代码

似乎很简单的样子,只要NOP掉这两个JE,不就可以了注册成功了。
分别下断点,F9运行,点VIP功能,程序被断下来,发现第一个JE的跳转没实现,不管它。
看下一个断点,跳转实现了,NOP掉。
再F9运行,发现虽然弹窗显示已经是VIP,但依然要求输入注册码。

看来不止这一处验证,必须得找到用来验证注册的关键CALL才行。
从下断点的JE处向上翻找,发现直到段首都没有找到关键CALL
但是有一段代码非常可疑,貌似实现了关键CALL的作用

既然这个的EAX这么关键,那就查找一下是在什么地方写入的数据
F9运行一下程序,点击VIP功能,让程序重新停在断点处。
寄存器窗口选中EAX-,右键----数据窗口中跟随

然后在数据窗口中找到的位置上点击右键---断点---硬件写入---DWord

下好断点后,禁止掉之前设置的断点,查看一下刚下的硬件写入断点

F9运行,程序被成功断了下来,下个断点,观察一下。

回车进CALL看看

既然怀疑这是关键CALL,试着修改段首,然后运行看看注册是否成功。

修改完后,F9运行,点击VIP功能,程序被断在断点处,删除所有断点,再运行程序,点击VIP功能,发现已经可以使用了

总结:
1 修改跳转不能实现破解的时候,要去寻找这些跳转调用的关键CALL。
2 如果没有发现关键CALL,要注意这些跳转上面的代码有没有赋值和比较的内容。
如果有,还是可以跟随到数据窗口来下各种硬件断点来尝试破解
[学习笔记]修改关键跳无效且关键CALL又不存在的情况的更多相关文章
- 微信小程序开发:学习笔记[8]——页面跳转及传参
微信小程序开发:学习笔记[8]——页面跳转及传参 页面跳转 一个小程序拥有多个页面,我们可以通过wx.navigateTo推入一个新的页面.在首页使用2次wx.navigateTo后,页面层级会有三层 ...
- 深入浅出MFC学习笔记 第三章 MFC六大关键技术之仿真
0:MFC类层次结构 1:MFC程序的初始化过程CWinApp::InitApplication()CMyWinApp::InitInstance()CMyFrameWnd::CMyFrameWnd( ...
- ARM学习笔记2——分支跳转指令
一.Arm指令条件码和条件助记符 二.跳转指令B 1.作用 跳转指令B使程序跳转到指定的地址执行程序(跳转范围是PC-32MB到PC+32MB) 2.指令格式(注:B后面如果有条件,条件就是紧跟在B后 ...
- Silverlight学习笔记之页面跳转
在进行项目开发的时候,经常遇到页面之间的跳转,包括silverlight之间以及silverlight和html之间的跳转. silverlight之间的页面跳转包含两点: 1.主窗体和子窗体 用户新 ...
- Sharepoint学习笔记—修改SharePoint的Timeouts (Execution Timeout)
有时在Sharepoin中有些执行任务可能会超过Sharepoint环境默认的Timout限制,这种情况下系统会报"Request Timed out"错误.对此我们可以在两个层次 ...
- Django学习笔记-修改Django的默认的数据库
1.修改设置settings中的配置 DATABASES = { 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os ...
- vue常用操作及学习笔记(路由跳转及路由传参篇)
路由跳转 - 超链接方式跳转 html: <div id="app"> <h1>Hello App!</h1> <p> <!- ...
- <WP8开发学习笔记>修改panorama全景控件的标题的大小
panorama(全景)控件非常具有WinPhone特色,但是那个巨大的标题许多时候会让人觉得违和.怎么修改它呢? 最开始想到的是加一个FontSize,结果毫无影响.╮(╯-╰)╭ <phon ...
- IntelliJ IDEA 学习笔记 - 修改编码
感谢原文作者:codeke 原文链接:https://blog.csdn.net/cgl125167016/article/details/78666432 仓库:https://github.com ...
随机推荐
- GUI学习之七——单选框QRadioButton和QButtonGroup的学习总结
一.单选框QRadioButton的使用 1.类的描述 a.单选框按钮用于给用户提供若干选项中的单选操作,当一个被选中时,会自动取消选中的那个.(如果只有一个时可以通过单击该按钮改变其状态:而存在多个 ...
- IDEA快捷键 日常整理
F9 : debug Ctrl+” +/- ” : 当前方法展开.折叠 Ctrl+Shift+”+/-” : 全部展开.折叠 Alt+1 : 工程面板 Alt+4:控制台 Alt+7:查看本类方法 S ...
- CRT-常用命令
1 目录操作 mkdir a ;(新建文件夹) mkdir -p a/b;(新建多及目录文件夹) Rmdir a (a只能是空目录) Rmdir -p a (a可以是多级目录) 2 文件操作 touc ...
- Tomcat 500error: Could not initialize class
Web 项目报错Could not initialize class ,出现500,说明服务器是起来了,可能是这个类的驱动有问题,缺少初始化需要的文件 查到有相关情况: 考虑是jar 包的问题,检查了 ...
- 前端面试题---vue部分
1.vue的两大核心思想 组件化和数据驱动 2.如何理解vue中的MVVM模式 Model-View-ViewModel(简称为mvvm)是一种设计思想,model层代表数据模型,也可以再model中 ...
- unity中的Culling Mask
摄像机按层渲染 Camera.cullingMask = 1<<x;//渲染x层 Camera.cullingMask = ~(1<<x);//渲染除去x的所有层 Camera ...
- java -version显示版本和JAvA_HOME配置不一样
当你需要安装多个版本的jdk时,可能会遇到更改了JAVA_HOME后java -version不变的情况. 一般情况下,将你的JAVA_HOME改为你要用的jdk的安装路径,然后你使用的就是这个版本的 ...
- 小白的CTF学习之路6——阶段测评
刚才考了自己一次,下面我把题和答案放到下面 CPU中不含有以下选项中的 C A: 运算器 B: 寄存器 C: 内存 D: 时钟 这是一道送分题,CPU包含以下几种原 ...
- selenium批量执行脚本操作
import unittest import os from HTMLTestRunner import HTMLTestRunner # 待执行用例的目录 def allcase(): #引入执行用 ...
- mysql查询前一天的数据
curdate()表示当天日期 统计前一天的日志sql语句: day); 要求: 统计从昨天开始统计前7天的日志包括昨天 day) --------------------- date_sub( ...