CrackMe160 学习笔记 之 059

前言

这也是个VB程序。和上个程序是一个系列的。

注册码是"This is the correcj code",极有可能是作者拼错了。

思路

把注册码分成五部分,转成ASCII码字符串依次和输入相比较。

讲道理,没什么难度,但VB的反汇编看起来要花时间。

分析

关键逻辑

00402FE7   .  50            push    eax                              ; /String8
00402FE8   .  8D85 1CFFFFFF lea     eax, dword ptr [ebp-E4]          ; |
00402FEE   .  50            push    eax                              ; |ARG2
00402FEF   .  E8 2AE2FFFF   call    <jmp.&MSVBVM60.__vbaStrVarVal>   ; \__vbaStrVarVal
00402FF4   .  50            push    eax
00402FF5   .  E8 06E2FFFF   call    <jmp.&MSVBVM60.#581>
00402FFA   .  DD9D A0FEFFFF fstp    qword ptr [ebp-160]              ;  固定字符串转成浮点数
00403000   .  8D45 84       lea     eax, dword ptr [ebp-7C]
00403003   .  50            push    eax                              ; /String8
00403004   .  8D85 20FFFFFF lea     eax, dword ptr [ebp-E0]          ; |
0040300A   .  50            push    eax                              ; |ARG2
0040300B   .  E8 0EE2FFFF   call    <jmp.&MSVBVM60.__vbaStrVarVal>   ; \__vbaStrVarVal
00403010   .  50            push    eax                              ;  输入字符串转成浮点数
00403011   .  E8 EAE1FFFF   call    <jmp.&MSVBVM60.#581>
00403016   .  DCA5 A0FEFFFF fsub    qword ptr [ebp-160]              ;  字符串相减
0040301C   .  DD9D D0FEFFFF fstp    qword ptr [ebp-130]              ;  结果弹出到 ebp-130
0040305F   .  83A5 D0FEFFFF>and     dword ptr [ebp-130], 0           ;  清空结果的低四个字节
00403066   .  C785 C8FEFFFF>mov     dword ptr [ebp-138], 8002
00403070   .  8D85 24FFFFFF lea     eax, dword ptr [ebp-DC]
00403076   .  50            push    eax                              ; /var18
00403077   .  8D85 C8FEFFFF lea     eax, dword ptr [ebp-138]         ; |
0040307D   .  50            push    eax                              ; |var28
0040307E   .  E8 71E1FFFF   call    <jmp.&MSVBVM60.__vbaVarTstEq>    ; \__vbaVarTstEq

可以看到,最后将清空低四个字节的浮点数结果和浮点数结果比较,变相就是结果为0时才成立进行下一步跳转。

VB的指令虽然有点奇葩,但是还是能分析出来的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值