破解程序获得使用权限:

      破解思路:其实程序加密或者添加neg窗口都是为了让消费者付出更多的代价来解决这些问题。然而身为一个技术人员是可以靠技术来使这些东西消失的。只要我们找到那些东西出现的地方并且想办法跳过它们就成功了。
      OD的两种断点:软件断点、硬件断点。(内存断点属于软件断点,并且每次只能设置一个,设置了另外一个上一个就会自动删除,设置一个内存断点会改变整块(4KB(4千字节))的内存,会明显降低OD的性能,因为OD经常会校对内存)
      
      
      
      打开程序然后Ctrl+f8将会遇到一个循环
          为了跳出循环在循环的下一个指令下一个断点
          点击运行跳出循环跳出之后取消断点,然后Ctrl+F8继续走,直到跳出窗口
         在跳出窗口的这个指令下下一个断点
然后重新加载程序按f9来到断点处然后f7进入,进入之后取消断点
 然后继续点击f8直到再一次跳出那个窗口
   然后继续下断点重新载入再点击f9到达这个指令,再f7进入这个断点
进入断点之后继续按f8然后窗口再一次跳了出来
然后继续下断点重新加载再进入
然后发现进入的是动态链接库,进入动态链接库之后下的就是硬件断点了
      然后Ctrl+f8继续走然后。。。。。。。。。窗口又跳出来了耶~。。。。。
      然后下硬件断点。。(右键-断点-硬件执行)在试调硬件断点中可以看断点有没有下
然后重新加载程序点击f9到达断点处,进入。进入之后点击试调硬件断点删除上次做的断点。
然后Ctrl+f8继续执行到窗口。。。。。。。再一次。。出现(同时返回了软件的领空)
然后再一次下断点重新载入f9到达断点处经研究证明这个断点不需要进入,证明如下
点击进入点击f8跳出jump
跳出之后继续按Ctrl+f8直到窗口跳出
跳出窗口,鉴于是动态链接库的领空所以下硬件断点
 进去之后就会一直无限循环所以证明不用进入这个断点。
所以回到这个断点点击f8,就会执行那个程序跳出窗户
发现eax的值为1,所以上面那个call语句实际上是返回值为1
所以我们可以将call汇编成为1
保存文件,重新加载修改过的文件就可以直接打开了
去广告:
执行程序发现广告
执行程序关掉留下广告,暂停,点击K可以看到所有调用过的函数,发现要么属于软件领空要么属于数据链接库领空,所有带问号的是广告
双击进入
用Nop填充,然后就修改好了。就去掉了广告
还有另一种方法就是修改所有跳转,比较麻烦暂不记录

OD使用教程7的更多相关文章

  1. OD使用教程

    OD使用教程: 跳转指令.满足才能跳转成功  

  2. 简单详细的OD破解教程

    2007-08-04 15:46作者:CCDebuger注:昨天在网上见到了这篇文章,但缺少插图,从另外一篇文章中也看到了类似的的教程文章,里面的插图质量实在不敢恭维.在一个论坛中正好下载了文章中所介 ...

  3. OD使用教程11

    首先把安装好的软件拖入PEID,看看它是用什么语言写的    然后用OD载入程序,查找关键字,步骤看上一个笔记 双击到达代码处,发现这在一个跳转里面.可能第一反应是修改跳转,经试验后发现这是没用的所以 ...

  4. OD使用教程12

    载入程序输入关键字: 双击进入程序 仔细看发现并没有跳转直接跳到这个mov,往上看发现retn上面有一个push,在这种编写手法当中这种组合相当于一个jmp, 跳到离它最近的一个值(在这就是004A5 ...

  5. OD使用教程10

       首先载入程序,然后Ctrl+N打开输入输出表 然后直接输入要找到函数,找到之后下断点,右键-在每个参考上设置断点 然后运行程序来到第一个断点处 然后f8走,开始找注册码没找到就换一个函数,然后看 ...

  6. OD使用教程9

    先运行程序打开about,发现这是一个未注册的软件需要注册后才能使用里面的工具,所以随便注册一下,跳出一个提示说注册的是非法的邮箱,所以就可以以此做为突破口来破解这个程序 将提示的语句作为关键字去找出 ...

  7. OD使用教程8

    方式一基本的打补丁方式:   打开程序之后首先会跳出一个nag窗口,从中我们知道了可以将nag窗口作为切入点,只要找到了nag的触发点就等同于找到注册与未注册的判断的点 右键-查找-所有参考文本字串 ...

  8. OD使用教程4

    去除nag窗口: 方法一将je改成jmp跳过messageboxA 方法二全部填充成Nop,选中右键二进制Nop填充 第三种方法push的值改成1使句柄不存在 获得模块句柄: 第四种修改入口地址 点击 ...

  9. OD使用教程5

    怎样恢复数据被改过的代码 点击m进入内存分布图 双击进入文件头 将过大的值一一修改为正常值 普通程序没有动态链接表所以值改为0 保存:首先记住地址 其次 选中差不多的长度,保存 正常的程序

随机推荐

  1. subversion(SVN)常规使用

    语法: svn <subcommand> [options] [args]      使用“svn help <subcommand>” 显示子命令的帮助信息.      使用 ...

  2. jquery实现幻灯片

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. 循序渐进Python3(十)-- 0 -- RabbitMQ

    RabbitMQ     RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息 ...

  4. 新版react踩坑总结

    使用es6语法与原本es5语法几个有区别的地方 1.React.creatClass与React.Component var Component = React.createClass({ rende ...

  5. MySql索引简介

    从"找"到B+树 索引是用来查找的. 折半查找是一种很优秀的方式.适合于 范围查找,固有缺点就是需要元素是有序的.二叉搜索树就是对折半查找的一种基础的实现. 但二叉搜索树当遇到特殊 ...

  6. 关于 The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. 异常处理

    导入Excel在本地环境没有问题,但部署到服务器上后出现异常. 经排查,是系统问题,因为本地是32位系统,而服务器上则是64位系统. 解决方法: 1.打开IIS管理器 2.右击应用程序所在的连接池 3 ...

  7. C#实现JSON序列化与反序列化

    1.使用 JavaScriptSerializer类实现序列化 namespace: System.Web.Script.Serialization eg: // 序列化 private string ...

  8. iOS 判断设备型号

    + (NSString*)deviceString { // 需要#import "sys/utsname.h" struct utsname systemInfo; uname( ...

  9. PagedDataSource、Repeater以及AspNetPager在ASP.NET上分页。

    一.前台使用服务器标签 1.1使用Repeater控件 <asp:Repeater ID="Repeater1" runat="server"> & ...

  10. form表单提交路径action="" 时的一种特殊情况

    一.说明: 当页面的form表达的action=""时,表示表单会提交到当前页面,但是如果当前页面的URL里已经带有一个参数了,每次提交表达时这个参数依然存在,不管form表单里有 ...