新160个crackme - 065-Eternal Bliss

运行分析

在这里插入图片描述

  • 选择验证方式,破解字符串
  • 标题提示为vb程序

PE分析

在这里插入图片描述

  • VB程序,32位,无壳

静态分析&动态调试

在这里插入图片描述

  • 使用VB Decompiler进行分析,发现Command1_Click_403604为check按钮事件,需要使Me = 1

CBool(expression)   ' 将表达式转换为布尔值
CByte(expression)   ' 将表达式转换为字节类型
CCur(expression)    ' 将表达式转换为货币类型
CDate(expression)   ' 将表达式转换为日期类型
CDbl(expression)    ' 将表达式转换为双精度浮点数
CDec(expression)    ' 将表达式转换为十进制类型
CInt(expression)    ' 将表达式转换为整数类型
CLng(expression)    ' 将表达式转换为长整型
CLngLng(expression) ' (只在 64 位平台上有效)将表达式转换为长长整型
CLngPtr(expression) ' 将表达式转换为指针类型(长整型)
CSng(expression)    ' 将表达式转换为单精度浮点数
CStr(expression)    ' 将表达式转换为字符串类型
CVar(expression)    ' 将表达式转换为变体类型
CStr(expression)    ' 将表达式转换为字符串类型(重复)
  • 上面是VB数据转换函数

String

在这里插入图片描述

  • 打开strin_40449F函数,发现和String字符串对比
    在这里插入图片描述
  • 验证成功

Variant

在这里插入图片描述

  • 打开vari_4045D2函数,与字符串Empty对比
    在这里插入图片描述
  • 验证成功

Long

在这里插入图片描述

  • 打开vari_4045D2函数进行分析:
  • var_28 = Text1.Text,即将输入字符串赋值给var_28
  • var_20 = CLng(var_28) ,将var_28转int赋值给var_20
  • If var_24 = 0 Then,需要满足这个比较,但是感觉反编译有问题,需要查看汇编代码
    在这里插入图片描述
  • 打开反汇编代码搜索var_24,发现赋值为002C2FAE
    在这里插入图片描述
  • 搜索地址004047F7处,发现关键对比为cmp eax, var_20
    在这里插入图片描述
  • 向上追踪eax,发现是var_20 = CLng(var_28)所在地址,即eax = cLng(Text1.Text),也就是字符串转十进制处
    在这里插入图片描述
  • 计算器得到输入字符串为2,895,790
    在这里插入图片描述
  • 验证成功

Currency

在这里插入图片描述

  • 双击 curr_40486D分析
    在这里插入图片描述
  • 找到Var_2C为08180754
  • ccur会将输入的值*1000
  • 即eax = 0x08180754 / 10000 = 135792468 /10000 = 13579.2468
    在这里插入图片描述
  • 验证成功

Single

在这里插入图片描述

  • 双击sing_404B05函数分析,发现与9764317691904作对比
    在这里插入图片描述
  • 验证成功

Double

在这里插入图片描述

  • 双击dou_404C4D分析,发现1.47258369789456E17,即1.47258369789456 * 10^17次方
    在这里插入图片描述
  • 验证成功

Integer

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

  • 双击 inte_404D95分析,发现输入与var_24需要相等,查找到var_24值为5BEF,变为int型为
    在这里插入图片描述
  • 验证成功

Byte

在这里插入图片描述

在这里插入图片描述

  • 分析byt_4049BE函数,输入值要与var_24相等,查看到var_24疑似00EF(十进制为239)
    在这里插入图片描述
  • 验证成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值