先运行程序打开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. python3.5------用户的三次验证

    笔者QQ: 360212316 逻辑图 代码 #/usr/bin/python # -*- coding: utf-8 -*- lock = open("black_user_list.tx ...

  2. type

    MollyPages.org"You were wrong case.To live here is to live." Home Pages / Database / Forms ...

  3. svg绘制圆弧

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

  4. Myeclipse2016部署tomcat服务(别的服务类似)配置环境

    1.在工具MyEclipse的项目管理菜单中,右单机找Properties或者快捷键alt+enter,(或者直接搜索Runtimes)myEclipse/Targeted Runtimes 2.ne ...

  5. oracle 学习笔记2

    1.oracle 中rowid和rownum的区别 oracle 数据库中,每一行都有一个唯一行的标识符,ROWID,数据库内部用来存储行的物理位置.ROWID是一个18位数字,采用base-64编码 ...

  6. python时间函数学习

    格式化当前日期: import time print time.strftime('%Y-%m-%d') 获取一天前的日期: import datetime import time onedayago ...

  7. 关于apache httpd.conf脚本的理解

    新人一枚,这两天一直在研究lamp的搭建,感觉自己对apache理解的不够深彻,决定写这一篇(翻译)httpd.conf文件 未完待续 cat /usr/local/apache/conf/httpd ...

  8. flask文件的上传和下载

    from werkzeug.utils import secure_filename from flask import Flask,render_template,jsonify,request i ...

  9. ios 按钮点击无反应

    今天项目遇到有个UIButton无法点击,弄了半天,总结出以下几个结论 1.如果一个UIButton的frame超出父视图的frame,UIButton还是可以显现的,但响应不了点击事件了,当开发中, ...

  10. Mysql:Forcing close of thread xxx user: 'root' 的解决方法

    MySQL server在中午的时候忽然挂掉.重启mysql也尽是失败,只有重启电脑才能解决,然而重装了MySQL也是不行,晚上还是挂, 去看mysql的errorlog,只能看到类似如下的信息: F ...