OD调试3--获取使用执照

本文所用实验程序如下:

这次实验用的很多是关于跳转的。这里给大家分享张图片,是在OD 调试中各种跳转指令。

接下里,我们首先分析下这个程序,总体浏览程序,我们可以发现三个对话框,

1

2

3

分析:  请注意标记或者圈起来的地方,MessageBoxA,我们学过MFC的都知道这是一个对话框函数,当程序运行到这里,对话框就会弹出来,上面的信息也会显示在框中。我们的目的就是跳转到第三个。但是它是怎么切换的呢?仔细看,它都有一些跳转,第一个有些特殊,运行过后就结束了,可不是我们需要的。后两个是在第一个运行的后面,所以要切换到到第三个也就是正确的对话框,必须跳过第一个和第二个。中间的一些跳转位置需要我们注意。小心修改。

第一步:加载程序,我们先看下运行效果。(F8运行)运行到光标处,也就是MessageBoxA处,点击‘确定’程序结束。

第二步,我们来修改这个程序。按F8运行到jnz处,我们可以发现一个跳转,正好可以跳过第一个对话框。那我们就修改这个jnz的标志位,或者修改汇编。

对于jnz,前面我们说过,z标志位为0时跳转,那就修改为1,

修改会变得话就改为jmp,这个命令就是强制跳转。

这样我们就跳过第一个对话框,接着运行。

第三步:我们会发现又碰到一个跳转,而这个跳转正好到第二个对话框。

对于这种情况,我们只需把jmp修改为nop让它不起作用。点击右键汇编,修改。因为jmp占两个字节,所以nop也是两个。

第二个跳转修改完毕,接着往下走。

第四步:走着走着又发现一个跳转 jl.同理和第一个跳转原理相同,修改标志位或者汇编。

对于jl,标志位s!=o时跳转,那我们就修改为s=0,

修改汇编,就是改为nop,不让它跳。这里就不给出截图了。

修改完毕,接着运行。

第五步:接着走我们会发现两个小跳转,但不会跳到第二个错误的对话框,可以接着往下走。又碰到一个跳转,这个是调到第二个对话框,需要修改。

又是烦人的jl,当然了修改的道理同上了。修改后接着走。

第六步:又到了一个小跳转,这个跳转就有点意思了。指的不是第二个对话框,往下拉。就看到了惊喜。第三个对话框。上图说话:

第七步,我们来看下最后的运行结果。

这样程序就修改结束了。接下来就是保存的问题了。

强调:1.标志位的修改是不能保存的,所以如果我们想要保存为可执行文件的话,所有的修改方式都要用修改汇编的方法。这样才可以保存。

2.这部分内容都是用的跳转命令,所以文章开头的图片是很有用的。

试验程序下载:www.fishc.com

时间: 2024-10-30 06:54:31

OD调试3--获取使用执照的相关文章

OD调试9—实例:深入分析代码完成软件破解

OD调试9—实例:深入分析代码完成软件破解  爆破,是最初级的解决方案,不到万不得已,我们不直接修改JNZ通关.因为这样子的话,我们就享受不到破解.逆向的真正乐趣了. 了解程序背后按照剧情发展经常会出的一些走法,逆向程序的算法,才能体会逆向的真正乐趣! 所以,今天的主题是:是男人,就跟进去吧~ 这次还是使用一个比较简单的程序,不然太复杂的话,一步步跟进程序可能会把自己搞崩溃,脑子恐怕不够搞.大家凭自己的能力,能进入多少就进入多少,一分不少,一寸不多!能力是培养出来的,耐心! 试验软件:MrBil

OD调试一个小程序的思考总结

最近用OD调试了一些小程序,有一些感悟,和大家分享一下 我用了一个多窗口的的程序(软件的试用),对如何去掉弹窗提供一些自己的看法,为大家提供一些思路 首先单步调试,会出现3个弹窗 1.通过对反汇编代码的分析,发现一个关键跳je,我们将je跳转改为jmp无条件跳转,使其直接跳过弹窗的程序 2.修改窗口句柄的值,学习过win32的人都知道,hOwner是一个父窗口的句柄,将他的值改为push 0x1,使他的子窗口失效 3.修改PE文件,alt+m进入内存映射的窗口并双击PE文件的内部 向下寻找,发现

OD调试学习笔记7—去除未注册版软件的使用次数限制

OD调试学习笔记7—去除未注册版软件的使用次数限制 本节使用的软件链接 (想自己试验下的可以下载) 一:破解的思路 仔细观察一个程序,我们会发现,无论在怎么加密,无论加密哪里,这个程序加密的目的就是需要你掏腰包来获得更多的功能或者解除限制.那么我们就可以逆向的来思考,如果该程序成功的注册后,那么程序的行为必将发生变化,如NAG去除了,如功能限制没有了等等.也就是说,程序的代码的走法也会跟未注册的时候截然不同.因为程序的行为改变了,那么决定它所有行为的代码走法也会发生变化. 二:认识OD的两种断点

OD调试篇7--笔记及解题报告

MFC:微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量.其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组 件的封装类.----名词解释 开始OD调试     目的是去除软件的使用次数限制 载入程序后F8走走看 发现了弹窗 不是进入程序的窗口   那我们F2设置断点

OD调试1--第一个win32程序

OD调试一:第一个Win32程序的修改 在软件开发的过程中,程序员会使用一些调试工具,以便高效地找出软件中存在的错误.而在逆向分析领域,分析者也会利用相关的调试工具来分析软件的行为并验证分析结果.由于操作系统都会提供完善的调试接口,所以利用各类调试工具可以非常方便灵活地观察和控制目标软件.在使用调试工具分析程序的过程中,程序会按调试者的意愿以指令为单位执行. 调试逆向分为动态分析技术和静态分析技术. 动态分析技术指的是使用调试工具加载程序并运行,随着程序运行,调试者可以随时中断目标的指令流程,以

OD调试6—使未注册版软件的功能得以实现

OD调试6—使未注册版软件的功能得以实现 继续开始我OD调试教程的学习笔记. 本次试验对真正的程序进行逆向.(之前的都是为破解而专门设计的小程序) 这次试图对一个“太监版”的程序进行完整化,也就是把限制的功能恢复,把阉割的功能添加等等.用到的知识也是之前提到的,但是会有不同的地方. 试验软件:PixtopianBook.exe(一个通讯录软件) 打开原始程序运行,观察界面: 这是一个通讯录软件,老外写的,很显然,当前是未注册版,试验后发现有功能限制,限制是只能有三个分组,每组不能超过4个人.也就

逆向---02.je & jmp & jnz 、OD调试

OD调试基础: nop是删除跳转,你别问我,我看不见也听不见 je是条件跳转,满足条件就跳转,不满足就不跳转 jnz也是条件跳转,不满足条件就跳转 jmp是无条件跳转,管你啥呢,先跳再说  (姑且可以这么理解) 快捷键:F2下断点.F8单步执行,F9运行,重新载入:点 << 按键 (在工具栏下方的图标栏中) EIP是32位机的指令寄存器,Z标志位1~真,0~假(案例中1代表je跳转实现,0代表je跳转不实现) OD寄存器修改或者标志位修改是不能保存修改的,一般用于调试(类似于VS调试时自己临时

OD调试4--绕过nag窗口

先看一下程序的运行情况 先跳出了一个nag窗口 点确定 又跳出了一个NAG窗口,这是一些程序编写的时候常用的方法,设法让你购买正版软件, 于是今天呢,学会了四种绕过NAG的方法 我们先用OD加载进入这个程序 F8单步调试,会发现一个跳转,我们可以用*第一种老办法,将je改为jmp无条件跳转就可以绕过第一个nag. 那么*第二种方法就是用nop填充. 着重讲一下*第三种方法,就是messagebox这个函数 它有一个父句柄,那么如果父句柄呗消灭,那么它的子程序 就会被消灭 我们看到它的父句柄为NU

用OD调试DLL

http://www.360doc.com/content/15/0523/09/12129652_472617986.shtml 步骤如下: 1.打开DLL,OD会提示是否要启动LOADDLL.EXE来加载DLL,选是,然后就停在了DLL的入口处,这里我随便找了一个DLL 2.此时如果F8或者F7的话进的是DLL的主函数,如果不想跟这些主函数的话可以直接F9,然后OD会再停下来,在最下方的消息栏会提示DLL初始化完成,LIKE THIS 3.点菜单栏的 调试->调用DLL输出,会出现如下的对话