zoukankan      html  css  js  c++  java
  • Crackme_1_Acid_burn

    打开exe文件,查看主要的流程

    1.首先是一个弹窗:

    2.其次三个按钮(两个注册码,一个退出:

    serial/name:

    serial:

    peid查壳

    欸~没有壳

    破解serial/name:

    暴力破解:

    输入假码后发现有弹窗和字符串

    然后就搜索字符串:

    我们看到有两个sorry字符串,根据上面提示,我们需要找的是两个serial,所以才有两个serial,现在我们随便找到一个sorry进入查看是不是我们需要的:


    我们看到前面的关键跳,下断点后运行程序查看这个sorry字符串是不是我们需要的字符串:

    我们看到这个这个跳转实现了,也就是说这个sorry不会显示,也就等于这不是我们找的sorry,然后我们继续向下执行,去查找我们需要的sorry字符串:

    image-20200701151034276

    我们往后,又看到了一个sorry,这肯定就是我们需要的sorry了,在这个sorry上方有一个good job,我们可以猜测这就是正确的弹窗,于是我们找到good job 的关键跳改为nop就行了:

    寻找注册码:

    因为我们要找注册码是如何生成的,所以我们要单步运行程,我们先打断点输入假码,然后步过:

    在运行到good job的关键跳前面,我们发现了两个数据的比较:

    所以我们猜测这个CW-4018-CRACKED就是注册码,于是我们退出试一遍:

    name为1111111111的时候成功了,那我们把name改为22222222呢:

    失败了,由此我们可以得到,注册码是随着name改变而改变的。

    于是我们回到OD,继续查看

    然后我们在goodjob上方发现一串运算代码:

    这串代码就代表着注册码的生成机制,先取name的第一个字符的ASNI的值,然后与固定的0x29相乘,在将得出的值翻倍,然后前面加上CW-,后面加上-CRACKED。就是注册码了。

    破解serial

    serial通过观察,可以发现,它是固定的,因此我们直接搜索字符,输入假码,进行比较就好了。

  • 相关阅读:
    仿360拖拽
    js 鼠标拖拽元素移动
    js 随机生成颜色
    vue多视图
    vue 全局组件的注册
    一键分享到QQ空间、QQ好友、新浪微博、微信代码
    vuex如何管理需要即时更新的全局变量
    js检测是哪个浏览器
    for in,Object.keys()与for of的用法与区别
    js三元运算符
  • 原文地址:https://www.cnblogs.com/lex-shoukaku/p/13225180.html
Copyright © 2011-2022 走看看