X86逆向11:F12暂停法的妙用
本节课将介绍F12暂停法的使用技巧,F12暂停法的原理其实很简单,当我们点击OD中的暂停按钮时,OD会将当前的堆栈状态保存起来,并暂停当前窗体的线程执行,直到我们点击运行按钮OD才会唤醒全部线程并继续执行程序,我们可以在OD暂停的时候得到一些有价值的东西,这在软件破解中也是一个很不错的技巧。
------------------------------------------------------------
本章难度:★★★☆☆☆☆☆☆☆
课程课件:CM_11.zip
------------------------------------------------------------
1.在实战之前先来用一个CM程序来演示F12暂停法的使用技巧,OD直接载入CM程序,然后运行程序点击关闭按钮,会弹出一个提示框,我们将使用F12暂停法把这个弹窗去除掉,好了直接开搞。

2.出现弹窗后,直接点击暂停按钮或按下【F12】,程序在暂停后有时会弹出一个窗口,提示是否等待5秒,这里我们选择否,不然又会等5秒。

3.紧接着我们按下【Alt+K】,会出现以下提示信息,这个就是堆栈的当前状态,只不过被暂停了,以下我们可以看到MessageBox提示框。

4.直接右键,选择显示调用,回来到反汇编窗口。

5.直接在这个调用位置,下一个F2断点,然后重新载入程序。

6.运行后,我们直接关闭程序,然后回到OD,会发现OD被断下了,直接接单步【F8】出这个CALL。

7.出CALL后,会发现这一层并没有能跳过弹窗的关键跳转,不要犹豫【Ctrl + F9】执行到程序返回,【F8】直接出CALL。

8.出CALL后发现一个关键跳转,默认是没有跳转的所以弹窗了,我们这里强制它跳转直接改成JMP,然后保存,OK去弹窗成功。

实战:破解HyperSnap 7专业版
免责声明:该教程仅用于技术交流,并无任何商业目的,您不得将下述内容用于商业或者非法用途,否则后果自负,如果您喜欢该程序,请支持正版软件,购买注册 ,得到更好的正版服务,如有侵权请邮件联系作者!
1.直接OD载入程序,然后运行,运行后会弹出如下窗口,我们直接按下【F12】让程序暂停。

2.暂停后,直接按下【Alt + K】,然后直接在【GetMessageW】函数上,右键,选择【显示调用】。

3.然后会看到如下代码,这里是系统领空无法直接修改,所以直接在断尾下断,并重新载入程序。

4.重新载入后,运行程序,程序会断在【retn】的位置,然后我们单步【F8】出这个CALL。

5.这个位置还是系统领空,我们直接在断尾直接下一个断点,然后重新载入程序。

6.重新载入程序后,回到程序点击【继续】按钮,回到OD中,我们直接出这个CALL,然后会看到如下,依然是系统领空,直接单步出CALL。

可能会出现程序跑飞的情况,直接在跑飞的call的下面下断,然后激活所有线程,然后继续单步出这个CALL。

7.出CALL后,终于回到了程序领空了,我们向上找,看看有没有能够跳过这个CALL的关键跳转吧。

8.这里第二个JNZ能够跳过验证CALL,但有跳转进来了就是第一个JNZ。

9.直接把第一个JNZ改成NOP,然后把第二个JNZ改成JMP无条件跳转,就可破解完成,直接保存文件即可。

X86逆向11:F12暂停法的妙用的更多相关文章
- X86逆向14:常见的脱壳手法
本章节内容将介绍软件的脱壳技术.什么是加壳?加壳就是用来压缩或者保护软件不被非法修改破解的一种工具,而脱壳就是将已经加壳的程序从壳中剥离出来,既然能给程序进行加壳,那也就会有相应的脱壳方法,本节课我们 ...
- X86逆向10:学会使用硬件断点
本节课我们将学习硬件断点的使用技巧,硬件断点是由硬件提供给我们的一组寄存器,我们可以对这些硬件寄存器设置相应的值,然后让硬件帮我们断在需要下断点的地址上面,这就是硬件断点,硬件断点依赖于寄存器,这些寄 ...
- X86逆向3:通过修改关键CALL破解
软件逆向第一课中我们通过爆破的方式直接破解了程序的登录限制,但这一种方式很不合理,因为你只是破解了登录这一处的验证,如果程序内部还有其他的验证那么你需要再次爆破第二个验证,显然这种方式是很烦人的,如果 ...
- X86逆向1:软件破解入门课【课件下载】
从本节课开始,我将带领小白入门学习软件破解的相关内容,大佬绕过,以后将会定期更新从最基本的破解知识点开始学习,由简单到复杂循序渐进,难度会逐步提高. 为了防止版权方面的争议,我将自行编写一些破解案例来 ...
- 泛化之美--C++11可变模版参数的妙用
1概述 C++11的新特性--可变模版参数(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数.任意类型的参数.相比C++98/03 ...
- X86逆向13:向程序中插入Dll
本章我们将学习Dll的注入技巧,我们将把一个动态链接库永久的插入到目标程序中,让程序在运行后直接执行这个Dll文件,这一章的内容也可以看作是第八课的加强篇,第八课中我们向程序中插入了一个弹窗,有木有发 ...
- X86逆向9:通过关键常量破解
本章将讲解一下关于关键全局变量的一些内容,关键的全局变量对于软件的破解非常的有用,找到了关键全局变量并改写它同样可以完成完美爆破一个程序,这里我将使用CM小例子来讲解搜索关键变量的一些技巧,最后我们来 ...
- X86逆向8:向程序中插入新区段
本节课我们不去破解程序,本节课学习给应用程序插入一些代码片段,这里我就插入一个弹窗喽,当然你也可以插入一段恶意代码,让使用的人中招, 这里有很多原理性的东西我就不多罗嗦了毕竟是新手入门教程,如果想去了 ...
- X86逆向6:易语言程序的DIY
易语言程序在中国的用户量还是很大的,广泛用于外挂的开发,和一些小工具的编写,今天我们就来看下如何给易语言程序DIY,这里是用的易语言演示,当然这门技术也是可以应用到任何一门编译型语言中的,只要掌握合适 ...
随机推荐
- CF1204A
CF1204A. BowWow and the Timetable 题意: 给你一个2进制数,求这个2进制数在10进制中的 $ 4^i $ 的个数. 解法: 其实就是 $ \ulcorner_{\lo ...
- 在HearthRanger中使用Silverfish
I'm new here and have never used this bot before. But a few days ago I tried it and I liked it :) I ...
- nginx安装(windows下)及配置
1. 正向代理和反向代理 正向代理是一个位于客户端[用户A]和原始服务器[服务器B]之间的服务器[代理服务器Z],为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后 ...
- YOLO: You Only Look Once论文阅读摘要
论文链接: https://arxiv.org/pdf/1506.02640.pdf 代码下载: https://github.com/gliese581gg/YOLO_tensorflow Abst ...
- html提交表单,php在后台获取表单内容的方法_例1
html代码: <html> <head> <meta http-equiv="Content-Type" content="t ...
- RabbitMQ学习之:(二)介绍 (转贴+我的评论)
转自:http://lostechies.com/derekgreer/2012/03/05/rabbitmq-for-windows-introduction/ RabbitMQ for Windo ...
- PLSQL连接本地oracle或远程oracle数据库,实现随意切换
转: PLSQL连接本地oracle或远程oracle数据库,实现随意切换 置顶 2018年01月12日 19:36:45 前方一片光明 阅读数 43542 版权声明:本文为博主原创文章,未经博主 ...
- mysql 截取字符函数substring(param1,param2,param3) 的用法
substring(paramter1,paramter2,paramter3) 截取字段长度 paramter1 被截取的字段paramter2 从第几位开始截取,负数表示从末尾开始数,的位数开始 ...
- Centos 7.2 安装与配置JDK8
系统环境:centos7安装方式:rpm安装软件:jdk-8u25-linux-x64.rpm下载地址:http://www.oracle.com/technetwork/java/javase/do ...
- web系统认证与鉴权中的一些问题
认证鉴权系统的初心: 空间管理: 1.他是谁? 他登陆了没有? 2.他要做什么? 2.1 他要使用什么功能? 他是否有这个功能的权限. 2.2 他要使用这个功能做什么操作? 他是否有这个功能的这个操作 ...