可以达到不脱壳的妙用。含义:把补丁写入程序代码,就叫内嵌补丁
那我们先看看今天的程序

是一个写DVD目录的程序,点continue就可以进入使用了      发现一个还有29天 就过期了   ,点enter reg.code的时候,乱输出现not valid的窗口  ,当然我们改一下日期  ,它的continue就会灰掉 ,然后这个程序就不能用了,需要购买或者是注册码。

把时间改掉之后后改回来,发现还是灰色的 不能用了。   说明它把使用日期肯定写入了电脑的某个地方,可能是注册表之类的。

我们先查壳

发现 没有壳,是用VC6写的,那我们用OD载入,让程序跑起来


跑起来,试着输入一下注册码。发现OD没有反应。那我们输入好名字和注册码之后,不要点OK,返回程序,ctrl+n  搜索killtimer这个函数

设置完断点后,点击OK,然后就会发现程被断下来了,经过观察上面跳转,来到跳转的起初

正常的,这里传了个值给eax   只要把它改为4   这个程序就成功了,但是发现汇编之后,程序的代码都变了,于是要用到我们的内嵌补丁。什么是内嵌补丁呢?

有一些用机器码填充的地方,我们就可以利用这些地方,我们先到上面设置个书签

书签的作用就是可以随时回去,不至于跑丢了,那我们用二进制复制这两个代码

到我们刚刚想去的那个被机器码填充的地方  可以提前记录一下
相当于把这部分的代码转移到另一个地方实现


那我们保存一下    看看行不行
发现成功运行了,,,但是这个程序死掉了
我们可以具体单步来看看
发现只有成功执行到B才能够走出程序
于是我们把之前的修改再修改下  改为mov eax,0B   试着打开程序   发现OK了。

就是这样了。















OD调试15的更多相关文章

  1. 逆向---03.mov、test等汇编指令、EAX、关键Call、OD调试技巧

    上一篇:逆向---02.je & jmp & jnz .OD调试 基础知识:(栗子中也会说的)栗子:链接: https://pan.baidu.com/s/1qZbbTvQ 密码: i ...

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

    MFC:微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows AP ...

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

    OD调试9—实例:深入分析代码完成软件破解  爆破,是最初级的解决方案,不到万不得已,我们不直接修改JNZ通关.因为这样子的话,我们就享受不到破解.逆向的真正乐趣了. 了解程序背后按照剧情发展经常会出 ...

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

    OD调试学习笔记7—去除未注册版软件的使用次数限制 本节使用的软件链接 (想自己试验下的可以下载) 一:破解的思路 仔细观察一个程序,我们会发现,无论在怎么加密,无论加密哪里,这个程序加密的目的就是需 ...

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

    OD调试6—使未注册版软件的功能得以实现 本节使用的软件下载链接 (想动手试验的朋友可以下载来试试) 继续开始我OD调试教程的学习笔记. 本次试验对真正的程序进行逆向.(之前的都是为破解而专门设计的小 ...

  6. OD调试4--去除NAG窗口

    OD调试4--去除NAG窗口 nag本意是烦人的意思,nag窗口是软件设计者用来时不时提醒用户购买正版的警告窗口.软件设计者可能认为当用户忍受不了试用版中的这些烦人的窗口时,就会考虑购买正式版本. 一 ...

  7. OD调试3--reverseMe

    OD调试3:reverseMe.exe(reverse就是逆向的意思) 运行效果图: 1关于寄存器 寄存器就好比是CPU身上的口袋,方便CPU随时从里边拿出需要的东西来使用.今天的程序中涉及到九个寄存 ...

  8. OD调试2---TraceMe

    OD调试2---TraceMe 拆解一个Windows程序要比拆解一个DOS程序容易得多,因为在Windows中,只要API函数被使用,想对寻找蛛丝马迹的人隐藏一些东西是比较困难的.因此分析一个程序, ...

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

    OD调试一:第一个Win32程序的修改 在软件开发的过程中,程序员会使用一些调试工具,以便高效地找出软件中存在的错误.而在逆向分析领域,分析者也会利用相关的调试工具来分析软件的行为并验证分析结果.由于 ...

随机推荐

  1. thinkjs——session

    工作中又遇到了session问题,于是整理一下有关thinkjs中的session使用小方法: 需要用户登录的网站基本上都离不开 Session,ThinkJS 里默认支持多种类型的 Session, ...

  2. js判断qq浏览器

    if(navigator.userAgent.toLowerCase().toString().indexOf('qqbrowser') > -1){ console.log('qq');}el ...

  3. html中frameset简介

    1, 只 要 <FRAMESET> <FRAME> 两个标签,框架便是网页画面分成几个框窗,同时取得多个 URL. 2, 该框架只记录如何划分,不会显示任何资料.所以不必放入 ...

  4. 主流 SQLServer 迁移到 MySQL 工具对比

    首次需要数据转换是测试环节,当时为了快速验证新研发云产品性能与结果准确性(算法类),所以需大量的原始数据,最快的办法就是使用老产品的真实数据.因为在前期数据转换时主用于内部验证,并没有花很多心思去处理 ...

  5. git检出与创建的过程

    Command line instructions Git global setup git config --global user.name "bingo" git confi ...

  6. 关于setInterval() 和setTimeout()的使用

    参照W3C标准: setInterval() 方法 使用对象为 HTML DOM Window 对象 定义和用法 setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. ...

  7. JSP内置对象---response 响应

    将response.jsp 页面的html标签(包括html.head.body)全部删掉. <%@ page language="java" import="ja ...

  8. AAS代码第2章

    [root@node1 aas]# pwd /root/aas [root@node1 aas]# wget http://archive.apache.org/dist/spark/spark-1. ...

  9. 关于ZendFramework环境的配置

    在运用PHP进行网站建设的时候,使用框架能够很好的提高编程效率,PHP语言的框架很多,现在普遍使用的是由Zend公司开发的ZendFramework框架,本篇文章是关于ZendFramework的运行 ...

  10. Secondary NameNode:的作用?

    前言 最近刚接触Hadoop, 一直没有弄明白NameNode和Secondary NameNode的区别和关系.很多人都认为,Secondary NameNode是NameNode的备份,是为了防止 ...