新160个crackme - 071-Rith.1

运行分析

在这里插入图片描述

  • 需要破解Name和Serial
  • 点击Check It!按钮没反应

PE分析

在这里插入图片描述

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

静态分析&动态调试

在这里插入图片描述

  • ida搜索字符串,双击进入关键函数

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

  • 进行动态调试,逻辑如下:
  • 1、Name长度为5~20,Serial长度与Name长度相等
  • 2、提取Name和常量str1="31415926535897932384"每一位进行计算,得到v5
  • 3、v5与Serial相等则弹窗成功

算法分析

Name = 'bears'
Serial = ''

str1 = '31415926535897932384'
for i in range(len(Name)):
    v5 = 2 * (ord(Name[i]) % ord(str1[i]))
    if (v5 > 123):
        v5 -= 26;
    if (v5 < 65):
        v5 = 130 - v5;
    if (v5 > 91 and v5 < 97):
        v5 = v5 % 10 + 48;
    Serial += chr(v5)

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

在这里插入图片描述

  • 计算得出的Serial不能有不可见字符,因此Name用"bears"

在这里插入图片描述

  • 验证成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值