[学习笔记]修改关键跳无效且关键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 ...
随机推荐
- 密码与安全新技术专题之WEB应用安全
学号 2018-2019-2 <密码与安全新技术专题>第1周作业 课程:<密码与安全新技术专题> 班级: 1892 姓名: 李熹桥 学号:20189214 上课教师:谢四江 上 ...
- 【MySQL】初识数据库及简单操作
一.数据库概述 1.1 什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机. ...
- SHELL脚本学习-练习写一个脚本4
#编写一个脚本时,自动生成”#!/bin/bash”这一行和相关注释信息. 把以下的代码保存为一个sh文件,比如test.sh , 新建脚本是使用 bash test.sh newfile 即可. ...
- 使用PYTHON完成排序(堆排序)
class HeapStructure: def __init__(self, ls): self.ls = ls def shift_up(self, index): # 上移使符合堆要求 if i ...
- xbee PRO S2C的多固件烧写
XBee and XBee-PRO ZB 嵌入式射频模块是与ZigBee/IEEE 802.15.4兼容的解决方案,可以满足低成本低功耗无线传感网络的特殊需求.该模块易于使用,极低的功耗,以及提供设备 ...
- 卸载HDP大数据平台
使用以下说明卸载HDP: 停止所有已安装的HDP服务.请参阅HDP参考指南中的停止HDP服务. 如果安装了Knox,请在所有群集节点上运行以下命令: 对于RHEL / CentOS / Oracle ...
- JavaScript基础视频教程总结(091-100章)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 谈谈websocket集群的解决方式
上文我们已经利用websocket实现微信二维码支付的业务. 上述实现在单机环境中实现是没有什么问题的,无非就是客户端连接服务端,首先将连接的websocketsession存在一个map里面,当异步 ...
- django安装及简单使用
1 web应用2 cs和bs架构3 http协议----重点 -特点:1 2 3 4 -请求头: 请求首行 get / http/1.1\r\n key:value\r\n key:value\r\n ...
- JS入门经典第二章总结
document:在对网页编写脚本时,我们使用document对象代表网页.要引用一个属性,只需在document对象后加一个“.”号,然后再加上要引用的属性名. alert():该函数弹出一个消息框 ...