zoukankan      html  css  js  c++  java
  • 逆向破解之160个CrackMe —— 013

    CrackMe —— 013

    160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序

    CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 cracker,想挑战一下其它 cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破。

    CrackMe简称CM。
    程序下载地址:点击我

    来源 <-点击查看

    编号 作者 保护方式
    013 badboy Name/Serial,Serial(VB5)

    工具 

    x32dbg

    VB Decompiler Pro

    peid

    开始破解之旅

    ON.1

    首先使用x32dbg打开程序搜索字符串,发现只有四个字符串,没有我们想要的,难道被加密了?

    下一步我们用pedi打开程序查看是否加壳了,发现并没有加任何壳

     

    ON.2

    我们使用VB Decompiler Pro打开013号程序在左侧栏内点击Code -> Form1 下拉,发现其中有多个Click函数

    我们点击第一个Click(Combo1_Click)

    仔细看一下我们找到了秘钥生成的代码,红色框内

    var 88 = 当前天数*23+当前月数*2+当前年份*1900

    var 1d0 = (var 88 + var 88) + 当前天数14*1905 +当前天数14*1905

    有人会说为什么乘以1900

    因为VB里面Year(3) => 1900,Year(2020) =>1905

    下面是Python代码

    import datetime
    now = datetime.datetime.now()
    var_88 = now.day * 22 + now.month * 1 + now.year * 1900
    var_1d0 = var_88 * 2 + 13 * 1905 * 2

    我们点击CrackMe 1.0在输入框内输入答案点击Try,bingo ~ 答案正确

    接下来我们来看CrackMe 2.0

    我们点击第二个Click(Combo2_Click)

    将其转换为Python代码为

    var_94 = '0110617121214051216101106141404110614140411091211100810101608040610121608100416'
    name = 'lonenysky'
    var_90 = 0
    var_a8 = 1
    for i in range(3, len(name)):
        var_90 = var_90 + (ord(name[i]) * int(var_94[var_a8 * 3 - 1:var_a8 * 3 - 1 + 3]))
        var_a8 += 1
        if var_a8 + 1 >= 39:
            var_a8 = 0
    var_178 = 0
    var_a8 = 1
    for i in range(3, len(name)):
        var_1cc = ord(name[i]) * ord(name[i - 1]) * int(var_94[var_a8 * 2 - 1:var_a8 * 2 - 1 + 2])
        var_178 = var_178 + var_1cc
        var_a8 += 1
        if var_a8 + 1 >= 39:
            var_a8 = 0
    print(str(var_90) + '-' + str(var_178))

     输入Name =>lonenysky Serial => 145533-911038 点击按钮Try ,提示答案正确

  • 相关阅读:
    windows 按时自动化任务
    Linux libusb 安装及简单使用
    Linux 交换eth0和eth1
    I.MX6 GPS JNI HAL register init hacking
    I.MX6 Android mmm convenient to use
    I.MX6 GPS Android HAL Framework 调试
    Android GPS GPSBasics project hacking
    Python windows serial
    【JAVA】别特注意,POI中getLastRowNum() 和getLastCellNum()的区别
    freemarker跳出循环
  • 原文地址:https://www.cnblogs.com/lonenysky/p/11370649.html
Copyright © 2011-2022 走看看