课前自泼凉水:

前两课的介绍的方法,不管是NOP填充还是JUM的无条件跳转,其实都有极大的局限性。

甚至单纯就效果而言,几乎无用。

且不说利用OD搜索关键字本身就很难搜得到。

就现在的软件保护而言,也几乎不存在只有一处验证的情况。有几处,十几处,甚至更多处验证的情况并不特殊。

所以,这些课程包括之后的,多半也是熟悉一下原理罢了。摆正心态,抱着一个学习的态度就好。

基于上面的原因,这节课引入了两个概念:关键跳和关键CALL。

顾名思义,关键跳就是关乎验证密码或者注册码的最直接的一个je.如果找到这个je,且软件只有这一处验证的话,就很容易跳过验证。

而关键CALL的意义在于,JE是否实现跳转是取决于关键CALL的运算结果以及其返回值。

也就是说JE跳与不跳,CALL说了算。

而且,如果软件采取多处验证的方式,修改JE令其跳过一次验证是达不到破解目的的。

而软件中,有可能多个关乎验证的JE都是取决于同一个CALL,那么找到这个关键CALL,从它直接下手,效率和成功率都会高一些。

那么,如何去确定这个关键跳的位置呢

一步一步来。

第一步还是老规矩,看一下报错信息,然后导入OD查找关键字

搜索“注册”,双击找到的结果,返回反汇编窗口

看上图,最右侧的红圈标记就是搜索关键词“注册”得到结果

从这一行向上找,发现红圈标记的JE,点击一下发现,这个JE完整的跳过了注册成功提示的这部分代码(观察红线)。

确定这个JE就是一个关键跳。

再向上两行发现一个CALL,这个CALL下面有一个test al,al

这里注意下,JE上面会有一个关键CALL来决定这个JE是否跳转,这个关键CALL通常会是JE的上面的三个CALL中的一个

第二步  如何去确定哪一个是关键CALL呢?可以通过验证来确定!

在这一行下断点,然后F9运行软件,在弹出的软件注册界面填上用户名和注册码“111111111111111111111111111111”

程序到达断点暂停,按F8向下运行。此时程序到了CALL下面一行:test al,al

这一行什么意思呢?看下图右侧的寄存器窗口的第一行EXA 00000000

EAX的值一共是8个0,其中E的值是前4个0,AX表示后4个0.AX又分为AH和AL,AL就是最后两个0(如上图右上红圈所示)

test命令是逻辑与操作,test al,al 就是EAX的最后两位进行比较,0和0逻辑与操作的结果还是0

其结果会反映到Z标志位。如果AL为0,则Z标志位为1.AL若为非0,则Z标志位为0

如上图可以看到,AL的值是00,Z标志位为1.所以它下面的JE实现了跳转的。

就是因为CALL先把运行的结果给了AL,这个结果反映在Z标志位上,令它下面的JE实现了跳转的,跳过了验证成功的部分!

由此可以确定:设置断点位置的这个CALL就是决定JE跳转与否的关键CALL

(其实以后看见test语言就可以预判,然后下断点验证了)

第三步 修改关键CALL的结果

选中关键CALL那一行,按F7进入CALL内部,在第一行按下空格键,输入“MOV EAX,1”,然后“retn”跳出CALL

MOV EAX,1 意思是将1 赋值给EAX,RETN 是跳出CALL

这样,实际上这个CALL只运行了两行代码:赋值和跳出。后面的代码就不会执行了。实际上破解就完成了。

最后一步 保存修改并验证。

从破解好的软件进入,发现已经没有弹出注册界面了。点击注册发现,注册按钮已经变灰。

转载于:https://www.cnblogs.com/vawa1900/p/10568145.html

破解第三课 关键跳和关键CALL相关推荐

  1. 基于全生命周期的主数据管理:MDM详解与实战学习03 第三章 主数据管理的关键技术

    第三章 主数据管理的关键技术 3.1 数据标准 3.1.1 数据标准的分类 3.1.2 物资类数据标准 1.国际标准 2.国内标准 3.1.3 产品数据标准 3.1.4 财务数据标准 3.2 信息分类 ...

  2. 【梅哥的Ring0湿润插入教程】重磅第三课:Ring0下的PE Loader及重加载内核秒杀一切内核级钩子(上篇)...

    [梅哥的Ring0湿润插入教程] Email:mlkui@163.com 转载请注明出处,谢绝喷子记者等,如引起各类不适请自觉滚J8蛋! 第三课:Ring0下PE Loader及重加载内核绕过一切内核 ...

  3. 说说计算机发展史在你印象里都有哪些内容,第三课 时间的脚印(精选5篇)

    第三课 时间的脚印 2012年3月29日星期四 第三课时 深化学习课文 授课人:热孜完古丽 教学目标: 1 知识点:掌握说明顺序中逻辑顺序. 2 能力点:明确说明对象,理清文章思路:体会本文 生动有趣 ...

  4. 斯坦福大学机器学习第三课“多变量线性回归“

    斯坦福大学机器学习第三课"多变量线性回归(Linear Regression with Multiple Variables)" 斯坦福大学机器学习第四课"多变量线性回归 ...

  5. Lance老师UI系列教程第三课-QQ登录注册界面的实现(android-2012最新版)

    分类: android UI教程2012-08-06 22:37 3731人阅读 评论(6) 收藏 举报 uiandroidqqlayoutbutton UI系列教程第三课:腾讯登录注册界面的实现 今 ...

  6. 第三课 大数据技术之Fink1.13的实战学习-时间和窗口

    第三课 大数据技术之Fink1.13的实战学习-时间和窗口 文章目录 第三课 大数据技术之Fink1.13的实战学习-时间和窗口 第一节 时间定义 1.1 Flink中的时间语义 1.2 两种时间语义 ...

  7. 商务汇报PPT制作的七堂课-第三课:结构搭建

    结构是我们PPT中最核心的部分,我们说ppt的缩写是PowerPoint,那意思是什么?是让观点更有力量,观点更有力量的前提是首先让别人能听得懂,那结构就是解决让别人听得懂的问题. 搭建好结构,你结合 ...

  8. 第三课 go语言改到php仿优酷-阿里云视频上传功能

    第三课 go语言改到php仿优酷-阿里云视频上传功能 tags: Beego 慕课网 categories: go环境安装 Beego框架 阿里云 视频点播服务 文章目录 第三课 go语言改到php仿 ...

  9. 简单c语言for循环例子,C语言第三课 for循环例子.doc

    C语言第三课 for循环例子.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3. ...

  10. 第三课 电子计算机的发展与应用 说课稿,计算机的发展与应用说课稿.doc

    计算机的发展与应用说课稿.doc (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 计算机的发展与应用尊敬的老师们,大家好!我的说课题目 ...

最新文章

  1. Linux系统监测-命令集
  2. PHP 接收 UDP包_PHP早已不是十年前的鸟样!!!
  3. 使用 Portainer UI 管理 Docker 主机
  4. PAT天梯赛 L1-050 倒数第N个字符串
  5. cross-compile/交叉编译 适用于ARM的ko文件
  6. 操作系统设计与实现第3版笔记与minix3心得(3)-操作系统发展历史(1)
  7. java mvc ef_一个简单MVC5 + EF6示例分享
  8. 简述List、Set、Map类型的集合的各自特点
  9. 7/7 第7篇 函数名与函数指针
  10. PP视频怎么把输出声音设置成单声道输出
  11. Redis数据结构之哈希
  12. 几行代码,轻松带你实现Java生成二维码功能!
  13. linux下查询日志sed与或非,Linux命令之sed命令使用介绍
  14. Windows 文件一直被占用,无法删除(对应解决方法)
  15. 深入学习 Redis(1):Redis 内存模型
  16. 易学入门书籍V8.7版
  17. excel转word_Office批量打印精灵教程--Word、PDF、Excel、PPT批量打印及批量转PDF
  18. html js实现搜索框提示功能,js实现智能提示搜索框
  19. 海康威视监控摄像头连接电脑教程
  20. win7计算机睡眠快捷键,Win7系统在桌面创建睡眠模式快捷键的方法

热门文章

  1. 推荐几款好用的云笔记软件
  2. 进阶-第18__深度探秘搜索技术_基于slop参数实现近似匹配以及原理剖析和相关实验
  3. 我的第一次diy装机记录——小白的装机篇
  4. requires that an attribute name is preceded by whitespace异常
  5. 聚类算法及其模型评估指标【Tsai Tsai】
  6. ROSERROR : The root link_base has an inertia specified in the URDF, but KDL does not support ...
  7. 近红外二区量子点CdTe/Zns,CdHgTe,CdTe/CdSe,CdS、CdSe、CdTe,ZnS、ZnSe偶联抗肿瘤药物阿霉素/紫杉醇/顺铂/喜树碱
  8. IBM Tivoli NetView网管软件实战
  9. vue+echarts+springboot实现云词图
  10. Linux内核启动过程和Bootloader