新160个crackme - 050-daxxor

运行分析

  • 需要破解Name和Serial

PE分析

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

静态分析&动态调试

  • ida找到关键字符串,双击进入函数

  • 通过静态分析发现:
  • 1、Name通过计算得到Name1
  • 2、对Name1第3、5、6分别插入byte_401290、byte_401290、word_401292,得到Name2
  • 3、双击byte_401290,发现值为0x2D;双击word_401292,发现值为0x647861
  • 4、Name2与Serial比较,相等则返回成功

  • C++函数补充知识点:
  • std::string::operator=(a,b) // 字符串a = 字符串b
  • std::string::string(str) // 设置字符串
  • std::string::insert(str,5,str1) // 在str的第5位插入str1

算法分析

python 复制代码
Name = 'concealbear'
Name1 = [ord(i)for i in Name]
byte_401290 = 0x2D
word_401292 = [0x64,0x78,0x61]

# 对Name进行计算,得到Name1
for i in range(len(Name)):
    Name1[i] = Name1[i] + len(Name1) - 4
    Name1[i] = Name1[i] - len(Name1) - 2
    Name1[i] += 2

# 对Name1进入插入操作
Name1.insert(3,byte_401290)
Name1.insert(5,byte_401290)
Name1.insert(6,word_401292[0])
Name1.insert(6,word_401292[1])
Name1.insert(6,word_401292[2])

Serial = "".join([chr(i)for i in Name1])

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


  • 验证成功
相关推荐
杨小码不BUG26 分钟前
蛇形舞动:矩阵填充的艺术与算法(洛谷P5731)
c++·算法·矩阵·csp-j/s·循环控制
MicroTech202537 分钟前
微算法科技(NASDAQ:MLGO)开发延迟和隐私感知卷积神经网络分布式推理,助力可靠人工智能系统技术
人工智能·科技·算法
Boop_wu2 小时前
[数据结构] Map和Set
java·数据结构·算法
思考的笛卡尔3 小时前
密码学基础:RSA与AES算法的实现与对比
网络·算法·密码学
Mr_Meng_De8 小时前
AI环境下的网络安全人才的发展方向
安全·web安全
格林威9 小时前
常规线扫描镜头有哪些类型?能做什么?
人工智能·深度学习·数码相机·算法·计算机视觉·视觉检测·工业镜头
程序员莫小特11 小时前
老题新解|大整数加法
数据结构·c++·算法
啥都不懂的小小白11 小时前
密码学入门:从古典加密到现代网络安全
安全·web安全·密码学
过往入尘土12 小时前
服务端与客户端的简单链接
人工智能·python·算法·pycharm·大模型
zycoder.12 小时前
力扣面试经典150题day1第一题(lc88),第二题(lc27)
算法·leetcode·面试