新160个crackme - 030-Acid Bytes.4

运行分析

  • 需要破解Name和Serial

PE分析

  • upx壳,32位

  • linux系统upx -d 脱壳
  • 脱壳后发现是Delphi程序

静态分析&动态调试

  • ida搜索字符串,找到Your Name must be at least 6 Chars long !,双击进入

  • 发现地址为红色,即函数未定义

  • 选中00457BAC(函数头)- 00457E96(函数尾),按下P创建函数

  • 先静态分析,函数较多

  • 119行下断点动调,发现还需要得到dword_45B840的值

  • 在53行处下断点,发现dword_45B840 = Name[0]*2 + Name[1]*2 +...+Name[5]*2,也就是Name前6位的值相加乘2

算法分析

python 复制代码
Name = 'concealbear'

dword_45B840 = 0
for i in range(0,6):
    dword_45B840 += ord(Name[i]) * 2

Serial = str(2 * len(Name) + dword_45B840)

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


  • 验证成功
相关推荐
金融小师妹2 分钟前
基于哈塞特独立性表态的AI量化研究:美联储政策独立性的多维验证
大数据·人工智能·算法
碳水加碳水3 小时前
Java代码审计实战:XML外部实体注入(XXE)深度解析
java·安全·web安全·代码审计
纪元A梦3 小时前
贪心算法应用:化工反应器调度问题详解
算法·贪心算法
深圳市快瞳科技有限公司4 小时前
小场景大市场:猫狗识别算法在宠物智能设备中的应用
算法·计算机视觉·宠物
liulilittle4 小时前
OPENPPP2 —— IP标准校验和算法深度剖析:从原理到SSE2优化实现
网络·c++·网络协议·tcp/ip·算法·ip·通信
superlls7 小时前
(算法 哈希表)【LeetCode 349】两个数组的交集 思路笔记自留
java·数据结构·算法
田里的水稻7 小时前
C++_队列编码实例,从末端添加对象,同时把头部的对象剔除掉,中的队列长度为设置长度NUM_OBJ
java·c++·算法
纪元A梦7 小时前
贪心算法应用:保险理赔调度问题详解
算法·贪心算法
打码人的日常分享8 小时前
运维服务方案,运维巡检方案,运维安全保障方案文件
大数据·运维·安全·word·安全架构
Jayden_Ruan8 小时前
C++逆向输出一个字符串(三)
开发语言·c++·算法