zoukankan      html  css  js  c++  java
  • 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,变成已注册
    然后运行。。发现成功了。。
  • 相关阅读:
    新浪微盘又是一个给力的产品啊,
    InfoQ: 百度数据库架构演变与设计
    列式数据库——Sybase IQ
    MapR初体验 淘宝共享数据平台 tbdata.org
    IBM正式发布新一代zEnterprise大型机(组图) 大型机,IBM,BladeCenter,美国,纽约 TechWeb News
    1TB is equal to the number of how many GB? 1PB equal to is equal to the number of TB? 1EB PB? | PCfault.com
    Cassandra vs HBase | WhyNosql
    The Hadoop Community Effect
    雅虎剥离开源软件平台 Hadoop ,与风投新建 Hortonworks 公司 品味雅虎
    RowOriented Database 、ColumnOriented Database 、KeyValue Store Database 、DocumentOriented Database
  • 原文地址:https://www.cnblogs.com/chenxiaoqi/p/4923665.html
Copyright © 2011-2022 走看看