• OD使用教程9


    先运行程序打开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,变成已注册
    然后运行。。发现成功了。。
  • 相关阅读:
    数独游戏 C++ 回溯法
    DirectX 90 3D 网格一
    DirectX 90 3D SetRenderState 设置渲染状态
    DirectX90 3D 字体
    DirectX 90 3D 外接体
    VS2005下配置OGRE
    DirectX 90 3D 网格二
    Java反射机制
    UBUNTU下安装 APACHE+PHP+MYSQL文本服务器!
    关于那个SMTP类及一个例子
  • 原文地址:https://www.cnblogs.com/chenxiaoqi/p/4923665.html
Copyright © 2020-2023  润新知