新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)


  • 验证成功
相关推荐
独行soc7 分钟前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
XH华1 小时前
初识C语言之二维数组(下)
c语言·算法
南宫生1 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
不想当程序猿_2 小时前
【蓝桥杯每日一题】求和——前缀和
算法·前缀和·蓝桥杯
落魄君子2 小时前
GA-BP分类-遗传算法(Genetic Algorithm)和反向传播算法(Backpropagation)
算法·分类·数据挖掘
菜鸡中的奋斗鸡→挣扎鸡2 小时前
滑动窗口 + 算法复习
数据结构·算法
独行soc2 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
Lenyiin2 小时前
第146场双周赛:统计符合条件长度为3的子数组数目、统计异或值为给定值的路径数目、判断网格图能否被切割成块、唯一中间众数子序列 Ⅰ
c++·算法·leetcode·周赛·lenyiin
郭wes代码2 小时前
Cmd命令大全(万字详细版)
python·算法·小程序
scan7242 小时前
LILAC采样算法
人工智能·算法·机器学习