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

新160个crackme - 088-[KFC]fish‘s CrackMe

运行分析

在这里插入图片描述

  • 需破解用户名和RegKey

PE分析

在这里插入图片描述

  • C++程序,32位,无壳

静态分析&动态调试

在这里插入图片描述

  • ida函数窗口逐个查看,找到关键函数sub_401440

在这里插入图片描述

  • ida无法动调,需使用OD,启用StrongOD插件才可以动调
  • ida静态分析,逻辑如下:
  • 1、猜测this[25]是Serial
  • 2、第一个循环:通过提取Serial每一位进行累加计算得到Serial_ascii_plus
  • 3、通过关键判断函数cmp,返回值为1时,程序返回成功弹窗

在这里插入图片描述

  • 分析cmp函数,逻辑如下:
  • 1、定义字符串s = ‘KEY-KANON’
  • 2、第一个循环:提取Name每一位累加得到Name_ascii_plus
  • 3、第二个循环:提取s每一位和Name_ascii_plus进行累加计算,得到v3
  • 4、若v3和Serial_ascii_plus相等,则返回1

算法分析

  • 算法逻辑:
  • 1、先确定Name,通过cmp中的函数计算得到v3
  • 2、判断Serial为9位,由于是累加计算,默认前8位 = (v3//9) ^ 0xAA
  • 3、Serial最后一位补上v3//9的余数,即Serial第9位 = (v3 // 9 + v3 % 9) ^ 0xAA

Name = 'concealbear'
s = 'KEY-KANON'

# 计算Name_ascii_plus
Name_ascii_plus = 0
v3 = 0
for i in range(len(Name)):
    Name_ascii_plus += ord(Name[i])
for j in range(0,9):
    v3 += (Name_ascii_plus * ord(s[j]) % 26 + 97) ^ 0xAA

# 计算RegKey
char0_7 = (v3 // 9) ^ 0xAA
char8 = (v3 // 9 + v3 % 9) ^ 0xAA
RegKey = chr(char0_7) * 8 + chr(char8)

print(Name + '的RegKey为:\n' + RegKey)

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

  • 验证成功

http://www.kler.cn/a/373570.html

相关文章:

  • (C#面向初学者的 .NET 的生成 AI) 第 2 部分-什么是 AI 和 ML?
  • 简缩极化模型+简缩极化求解用优化的方法,也需要保证方程和未知数个数
  • SystemC学习(3)— APB_SRAM的建模与测试
  • C++ 中回调函数的实现方式-函数指针
  • ClickHouse 神助攻:纽约城市公共交通管理(MTA)数据应用挑战赛
  • 【Nas】X-Doc:jellyfin“该客户端与媒体不兼容,服务器未发送兼容的媒体格式”问题解决方案
  • Spring5学习记录(二)之IOC容器管理(基于注解方式)
  • Python(包和模块)
  • VB中的安全性考虑,如防止SQL注入、XSS攻击等
  • 【安全解决方案】深入解析:如何通过CDN获取用户真实IP地址
  • 「Mac畅玩鸿蒙与硬件6」鸿蒙开发环境配置篇6 - 理解鸿蒙项目结构
  • C++的输入与输出
  • Android Handler消息机制(五)-HandlerThread完全解析
  • 【Linux网络】UdpSocket
  • 网络安全知识见闻终章 ?
  • 深度学习基础(2024-10-30更新到tensor相关)
  • 灵动AI:科技改变未来
  • Linux 线程概念
  • 安装使用docker harbor并推送镜像到仓库
  • 3个方法将苹果手机照片备份至苹果电脑
  • python:ADB通过包名打开应用
  • 华为OD机试真题-任务最优调度-2024年OD统一考试(E卷)
  • 我自己的资料整理导引(二):知识循环笔记法
  • 从零开始学链表:数据结构的基础与应用
  • 如何防止U盘盗取电脑数据?
  • 架构师备考-系统分析与设计(结构化方法)