当前位置: 首页 > news >正文

新160个crackme - 084-slayer_crackme1

运行分析

在这里插入图片描述

  • 点击check,提示注册失败

PE分析

在这里插入图片描述

  • ASM程序,32位,无壳

静态分析&动态调试

在这里插入图片描述
在这里插入图片描述

  • ida搜索到关键字符串
  • 发现注册文件reg.key

在这里插入图片描述
在这里插入图片描述

  • 通过动态调试,获得计算机名称为’CONCEALBEAR’
  • 通过计算得到int_2

在这里插入图片描述

  • 接下来有一个剪贴板判断,将剪贴板的内容和int_2进行计算,得到int_1,要求int_1=0

在这里插入图片描述

  • 最后一步,获得key文件内容,长度大于7,头4为和后4位亦或的值要等于int_2

算法分析

ComputerName = 'CONCEALBEAR'# 计算int_2
int_2 = 0
for i in range(len(ComputerName)):int_2 += ord(ComputerName[i])# 得到Colipdata
Colipdata = ''
for i in range(len(ComputerName)-1):Colipdata += chr(int_2 // len(ComputerName))
Colipdata += chr(int_2//len(ComputerName) + int_2%len(ComputerName))print("剪贴板内容为:" + Colipdata)import binascii
regdata = '1234'    # regdata前4位# 大小端序转换
def changes(input):res = []for i in range(len(input) // 4):res.append('0x' + hex(input[i * 4 + 3])[2:].zfill(2) + hex(input[i * 4 + 2])[2:].zfill(2) + hex(input[i * 4 + 1])[2:].zfill(2) + hex(input[i * 4])[2:].zfill(2))return res[0]# 计算regdata后4位
reglist = [ord(i)for i in regdata]
regdata_changes = int(changes(reglist),16)
regdata2_changes = hex(int_2 ^ regdata_changes)[2:]
regdata2_list = []
for i in range(0,4):regdata2_list.append(int(regdata2_changes[i*2:i*2+2],16))
regdata2 = changes(regdata2_list)[2:]print("regdata为:"+binascii.b2a_hex(regdata.encode()).decode() + regdata2)

在这里插入图片描述
在这里插入图片描述

  • 复制剪贴板内容,点击check,第一步通过,提示让我们注册,下面注册按钮变为可点击

在这里插入图片描述

  • 同目录下创建文件,名称为reg.key,用010编辑器打开,输入上面内容

在这里插入图片描述

  • 点击注册,发现返回成功字符串

http://www.mrgr.cn/news/59876.html

相关文章:

  • 快速入门HTML
  • 【笔试面试题】硬件部分
  • Python浪漫之画星星
  • 计算机网络:网络层 —— IPv4 地址的应用规划
  • 【Linux】centos7内核编译6.11.3版本及其所出现的问题解决方案(升级make、升级gcc)
  • 如何初始化一个线上的GitHub仓库,在本地已有的仓库中上传到线上
  • shutdown abort关库,真的可能起不来吗?
  • 一文彻底搞定MySQL中的JSON类型,效率飞起。
  • 软硬件开发面试问题大汇总篇——针对非常规八股问题的提问与应答(代码规范与生态管理)
  • shodan2---清风
  • 2025 - AI人工智能药物设计 - 中药网络药理学和毒理学的研究
  • opencv-platform实现人脸识别
  • 二十三、Python基础语法(包)
  • Upload-labs通关
  • Python 从入门到实战41(NumPy数值计算)
  • kNN 的花式用法(原来还能这么玩 kNN)
  • Java NIO 应知应会 (一)
  • FFmpeg 4.3 音视频-多路H265监控录放C++开发六,使用SDLVSQT显示yuv文件
  • UE ---- 射击游戏
  • 【Linux网络】传输层协议UDP与TCP
  • Mochi 1:AI视频生成领域的创新与应用
  • 绝了,这款播放器让发烧友疯狂种草,堪称音乐神器
  • 从零入门扣子Bot开发
  • Map和Set(数据结构)
  • 网络学习/复习2套接字
  • Linux基础-基础命令和相关知识4