新160个crackme - 111-execution

运行分析

在这里插入图片描述

  • 需破解Name和Code

PE分析

在这里插入图片描述

  • VB程序,32位,无壳

静态分析&动态调试

在这里插入图片描述

  • 使用VB compiler进行静态分析,发现关键判断地址为0x40DB9C

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

  • ida打开程序,跳转至0x40DB9C位置,进行动调调试,逻辑如下:
  • 1、通过Name每一位累加计算获得di
  • 2、比较di和Code是否相等(这里ida伪代码无法正确识别__vbaStrCmp函数的参数,查看汇编代码,发现两个参数在push edx和push eax处传入堆栈,前一个是Code,后面一个是di转str),相等返回成功

算法分析

Name = 'concealbear'

Name = Name.upper()
Name = [ord(i)for i in Name]

di = 0
for i in range(len(Name)):
    Name[i] = Name[i] - 0x40
    Name[i] = Name[i] * 0x82
    Name[i] = Name[i] + di
    Name[i] = Name[i] + 0x50
    Name[i] = Name[i] + 0x50
    Name[i] = Name[i] + 0x50
    Name[i] = Name[i] + 0x50
    Name[i] = Name[i] + 0x50
    Name[i] = Name[i] + 0x50
    Name[i] = Name[i] + 0x50
    Name[i] = Name[i] + 0x50
    Name[i] = Name[i] + 0x50
    Name[i] = Name[i] + 0x50
    Name[i] = Name[i] + 0x50
    Name[i] = Name[i] + 0x50
    Name[i] = Name[i] + 0x50
    Name[i] = Name[i] + 0x50
    Name[i] = Name[i] + 0x50
    Name[i] = Name[i] + 0x50
    di = Name[i]

Code = di

print(di)

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

  • 验证成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值