先用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又不存在的情况的更多相关文章

  1. 微信小程序开发:学习笔记[8]——页面跳转及传参

    微信小程序开发:学习笔记[8]——页面跳转及传参 页面跳转 一个小程序拥有多个页面,我们可以通过wx.navigateTo推入一个新的页面.在首页使用2次wx.navigateTo后,页面层级会有三层 ...

  2. 深入浅出MFC学习笔记 第三章 MFC六大关键技术之仿真

    0:MFC类层次结构 1:MFC程序的初始化过程CWinApp::InitApplication()CMyWinApp::InitInstance()CMyFrameWnd::CMyFrameWnd( ...

  3. ARM学习笔记2——分支跳转指令

    一.Arm指令条件码和条件助记符 二.跳转指令B 1.作用 跳转指令B使程序跳转到指定的地址执行程序(跳转范围是PC-32MB到PC+32MB) 2.指令格式(注:B后面如果有条件,条件就是紧跟在B后 ...

  4. Silverlight学习笔记之页面跳转

    在进行项目开发的时候,经常遇到页面之间的跳转,包括silverlight之间以及silverlight和html之间的跳转. silverlight之间的页面跳转包含两点: 1.主窗体和子窗体 用户新 ...

  5. Sharepoint学习笔记—修改SharePoint的Timeouts (Execution Timeout)

    有时在Sharepoin中有些执行任务可能会超过Sharepoint环境默认的Timout限制,这种情况下系统会报"Request Timed out"错误.对此我们可以在两个层次 ...

  6. Django学习笔记-修改Django的默认的数据库

    1.修改设置settings中的配置 DATABASES = { 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os ...

  7. vue常用操作及学习笔记(路由跳转及路由传参篇)

    路由跳转 - 超链接方式跳转 html: <div id="app"> <h1>Hello App!</h1> <p> <!- ...

  8. <WP8开发学习笔记>修改panorama全景控件的标题的大小

    panorama(全景)控件非常具有WinPhone特色,但是那个巨大的标题许多时候会让人觉得违和.怎么修改它呢? 最开始想到的是加一个FontSize,结果毫无影响.╮(╯-╰)╭ <phon ...

  9. IntelliJ IDEA 学习笔记 - 修改编码

    感谢原文作者:codeke 原文链接:https://blog.csdn.net/cgl125167016/article/details/78666432 仓库:https://github.com ...

随机推荐

  1. java将pdf文件转为word

    import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.Output ...

  2. union: git command

    # switch one tag # warning: if do that, can't commit any change git clone $project_path git checkout ...

  3. AndroidStudio 问题点 - app:preFUNDebugAndroidTestBuild

    Error:Execution failed for task ':app:preFUNDebugAndroidTestBuild'. >Conflictwith dependency 'com ...

  4. Java中如何创建一个新的对象的/Creating Objects/

    The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't ...

  5. inet_pton, inet_ntop

    Linux下这2个IP地址转换函数,可以在将IP地址在“点分十进制”和“整数”之间转换而且,inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6.算是比较新的函数了. inet_ ...

  6. Toggle组件切换开关,控制开关图片显示与隐藏

    UGUI_Image 组件简单笔记 Rect Transform:用于控制 UI 物体的基本属性 Image 基本使用 1.Image 组件是用于显示图片资源的.使用方式有两种:1.显示纯粹的颜色:2 ...

  7. Linux 防火墙管理及操作

    1.关闭firewall:systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止fire ...

  8. vim配置文件.vimrc

    20171127备份 syntax on "自动语法高亮 set number "显示行号 set autoindent "回车后自动缩进 set tabstop=4 & ...

  9. Node.js中实现套接字服务

    后端服务的一个重要的部分是通过套接字进行通信的能力. 套接字允许一个进程通过一个IP地址和端口与另一个进程通信 同一个服务器上的两个不同进程的进程间通信(IPC)或者访问一个完全不同 的服务器上运行的 ...

  10. 管道/FIFO

    管道: #include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<string.h&g ...