先运行程序打开about,发现这是一个未注册的软件需要注册后才能使用里面的工具,所以随便注册一下,跳出一个提示说注册的是非法的邮箱,所以就可以以此做为突破口来破解这个程序
将提示的语句作为关键字去找出这段程序,重新载入程序,右键查找-所有参考文本字串
拉到最上面右键-查找文本
然后输入关键字
找到这个关键字的所在地址,双击进入这行程序
找到程序之后发现这是在一个跳转之内的而这个跳转之后就是提示“谢谢您的注册”所以这是一个关键跳转,给它加上注释
然后往上看,发现判断这个跳转是否实现是这个指令,如图
这里al al的值是为0的并且不能修改,而test起到的是and(与)的意思不能修改al的值只能修改标志位Z,两个值都为0,跳转就不能实现,给它加上注释,然后再往上看,发现了一个call语句(调用一个函数),是可以修改al的值的。
为了待会能够准确的走出来给这个call语句也下注释
在这里下个断点然后执行,跳出窗口点击about,用刚刚注册的那个邮箱再注册一次
点击注册,跳到断点处,然后f7跟进。
观察整个程序,发现下面有个call,call下面有 test al,al 也会影响al的值,所以给call做注释
然后继续往下走其中会经过很多个call,但是里面的eax值使一个地址,所以这和注册与否是没有关系的,所以跳过
然后一直走,最后走出来了
然后执行程序,打开about再注册一次点击确定再次来到断点处
然后f7跟进去,f8继续走,走到需进入2,进去。然后发现又有一个call。但是先不急着用f7进去不然进去就出不来了。
走到call那行,按回车键进去看看。发现并没有什么
然后f8继续走就走出来了,然后继续往下走就发现了关键点。这里有一行是al的值赋给bl,然后隔几行是bl又赋值给了al。然后猜测这里很有可能就是判断是否注册的点,因为不想al的值被下面的call改变,所以先赋给了bl
所以上面的那个call是需要进入看一看的,记下注释
进入之后发现其实就是bl的值赋给了al
然后又走了出来
然后继续走,走到需进入3再进去看看,然后发现需进入3和需进入2里面是一样的,然后继续走就走出来了
然后走了一圈又出来了,然后重新注册再进入走到需进入2,然后再进入需进入4,然后f8一直走,走到这停下来,发现这是个关键点,最终目的是为了把bl的值赋给al
然后试着把al的值改成1,变成已注册
然后运行。。发现成功了。。

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

  1. OD使用教程

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

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

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

  3. OD使用教程11

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

  4. OD使用教程7

    破解程序获得使用权限:       破解思路:其实程序加密或者添加neg窗口都是为了让消费者付出更多的代价来解决这些问题.然而身为一个技术人员是可以靠技术来使这些东西消失的.只要我们找到那些东西出现的 ...

  5. OD使用教程12

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

  6. OD使用教程10

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

  7. OD使用教程8

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

  8. OD使用教程4

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

  9. OD使用教程5

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

随机推荐

  1. Go Data Structures: Interfaces

    refer:http://research.swtch.com/interfaces Go Data Structures: Interfaces Posted on Tuesday, Decembe ...

  2. http://www.cnblogs.com/zhaoguihua/tag/%E9%AB%98%E6%80%A7%E8%83%BD%E7%BD%91%E7%AB%99/

    http://www.cnblogs.com/zhaoguihua/tag/%E9%AB%98%E6%80%A7%E8%83%BD%E7%BD%91%E7%AB%99/

  3. CGRectGet *** 获取控件坐标的方法

    CGRectGetHeight返回label本身的高度 CGRectGetMinY返回label顶部的坐标 CGRectGetMaxY 返回label底部的坐标 CGRectGetMinX 返回lab ...

  4. (转载)iOS 极光推送SDK 集成指南

    iOS SDK 集成指南 使用提示 本文匹配的 SDK版本:r1.2.5 以后. 查看最近更新了解最新的SDK更新情况. 产品功能说明 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能 ...

  5. VC++ 两种动态调整控件位置的方法(CButton设置为Radio形式会出现错误)

    ((CButton*)GetDlgItem(IDC_CHECK1))->MoveWindow(, cy - , , ); ((CButton*)GetDlgItem(IDC_CHECK2))-& ...

  6. 我的第一个web应用开发搭建-环境配置

    MyEclipse 2014 破解图文详细教程 MyEclipse作为Java EE最受欢迎的IDE,最新版本为2014版,MyEclipse 2014破解的方法. 一.安装完成MyEclipse20 ...

  7. zstuoj 4243 牛吃草 ——(二分+两圆交)

    这题上次补了以后忘记写博客了,现在补一下. 有两个注意点,第一是两圆相交的模板.可以通过任意一种情况手推出来. 第二是,实数二分要注意不用ans记录为妙,因为可能因为eps过小,导致ans无法进入记录 ...

  8. node中global

    global:表示Node所在的全局环境,类似于浏览器的window对象.需要注意的是,如果在浏览器中声明一个全局变量,实际上是声明了一个全局对象的属性,比如var x = 1等同于设置window. ...

  9. C++函数重载和函数模板

    1.函数重载 这是小菜鸟写的一个例子. 函数重载应该注意以下几点: 1.1重载函数有类似的功能: 1.2只能以参数的类型(形参个数和类型)来重载函数, int max(int a,int b);flo ...

  10. sql server中自连接的使用

    一.用SQL自连接查询处理列之间的关系 SQL自身连接,可以解决很多问题.下面举的一个例子,就是使用了SQL自身连接,它解决了列与列之间的逻辑关系问题,准确的讲是列与列之间的层次关系.SQL代码如下: ...