• CrackMe_002


    老规矩,先熟悉程序。

    只有一个验证的功能,错误提示You Get 。。。 关闭没有nag窗口

    第一种,暴力破解

    查找字符串,很少,直接双击进入

    可以看到错误提示的跳转来自:

     表示这应该是个重要的跳转,找到位置:

     下面就是You Get  It,很明显,就是这个跳转了,直接nop导出就行。

    第二种 注册机

    接上面,刚刚跳转的位置,向上面找找,看看整个函数,在这个位置能看到string,StrCat之类的注释,尝试这里下断,然后查看功能。发现这里有一些对密码的堆栈,和AKA-487704,唔。。。应该已经完成加密,这就是注册码了(第一个和第三个箭头都是我自己注释的)。注册码应该是“AKA-”+“加密的注册码”

    说明加密的方式还在上面,这里是一个对应的结果。继续向上

     

    看到这个位置:

     这"ValueBstr" (?!) 和 “String” ,唔。。。。很像,下断看一下。 突然出现注册码,应该就是这段了。

     

     分析一下,大概就是:输入的长度*0x17CFB +(第一个字符的十六进制) -》十进制输出,在加上下面的"AKA-"就是了

    Num = input('输入:
    ')
    
    flag = ''
    
    test = hex(0x17CFB*len(Num)+ord(Num[0]))
    
    flag = 'AkA-'+ str(int(test.upper(), 16))
    
    print(flag)

    尝试一下:

    Ok,成功

  • 相关阅读:
    SQL之CASE WHEN用法详解
    MySQL笔记汇总
    Linux常用命令
    TCP/IP速记
    数据结构和算法速记
    多线程相关概念
    线程安全&Java内存模型
    线程通讯wait&notify
    创建多线程的4种方式
    重写ThreadPoolTaskExecutor
  • 原文地址:https://www.cnblogs.com/yidianhan/p/11571992.html
Copyright © 2020-2023  润新知