新160个crackme - 052-tc.2

运行分析

在这里插入图片描述

  • 提示选择Keyfile,选择后弹出错误的Keyfile,需要先破解Keyfile
  • 还需要破解Name和Serial

PE分析

在这里插入图片描述

  • Delphi程序,32位,无壳

静态分析&动态调试

在这里插入图片描述

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

在这里插入图片描述

  • ida动态调试,找到关键判断,发现是选择文件和str_Runtime_Error__比较,相等则跳过错误弹窗
    在这里插入图片描述
  • 双击str_Runtime_Error__,发现值为Runtime Error: 12FF:024

在这里插入图片描述

  • 同目录下创建1.txt
    在这里插入图片描述
  • 内容为Runtime Error: 12FF:024,保存

在这里插入图片描述

  • 发现Register可点击

在这里插入图片描述

  • 进入Gratulations字符串所在的函数
  • 动态调试进行分析,得到如下结论:
  • 1、对Name每个字符进行累加计算,得到v11
  • 2、对v11进行循环累加计算
  • 3、将v11转字符串,赋值给v27
  • 4、v27第3、5位插入’-’
  • 5、比较v27与Serial,相等弹窗成功

算法分析

Name = 'concealbear'

# 将Name每个字符进行计算和累加,得到v11
v10 = 0
v11 = 0
v25 = 0
for i in range(len(Name)):
    v25 += 1
    if v25 + v10 >= ord(Name[i]):
        v10 = v25 + v10 - ord(Name[i])
    else:
        v10 = 0xff + 1 + v25 + v10 - ord(Name[i])
    v11 += v10

# 对v11进行循环累加计算
while v11 < 17293:
    v11 += 17894

# 将v11转十进制,赋值给v27
v27 = str(v11)

# v27第3、5位插入'-',得到Serial
Serial = v27[0:2] + '-' + v27[2:3] + '-' + v27[3:]

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

在这里插入图片描述

在这里插入图片描述

  • 验证成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值