吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2471|回复: 1
收起左侧

[原创] CrackMe160 学习笔记 之 061

[复制链接]
zzhwaxy 发表于 2020-5-8 12:48

CrackMe160 学习笔记 之 061

前言

这个题目太依赖日期格式了,只有yy/mm/dd格式的短日期才能通过验证。

分析

判断输入

00402FD0   .  E8 0DE3FFFF   call    <jmp.&MSVBVM60.__vbaStrCmp>      ;  判断输入不为空
00402FD5   .  8BF0          mov     esi, eax
00402FD7   .  F7DE          neg     esi
00402FD9   .  1BF6          sbb     esi, esi
00402FDB   .  46            inc     esi
00402FDC   .  F7DE          neg     esi
00402FDE   .  FF75 DC       push    dword ptr [ebp-24]
00402FE1   .  68 10264000   push    00402610
00402FE6   .  E8 F7E2FFFF   call    <jmp.&MSVBVM60.__vbaStrCmp>      ;  判断输入不为空
00402FEB   .  F7D8          neg     eax
00402FED   .  1BC0          sbb     eax, eax
00402FEF   .  40            inc     eax
00402FF0   .  F7D8          neg     eax
00402FF2   .  66:0BF0       or      si, ax
00402FF5   .  FF75 D8       push    dword ptr [ebp-28]
00402FF8   .  68 10264000   push    00402610
00402FFD   .  E8 E0E2FFFF   call    <jmp.&MSVBVM60.__vbaStrCmp>      ;  判断输入不为空

关键比较

004030E9   .  FF90 F8060000 call    dword ptr [eax+6F8]              ;  年份函数
004030EF   .  8985 48FFFFFF mov     dword ptr [ebp-B8], eax
004030F5   .  83BD 48FFFFFF>cmp     dword ptr [ebp-B8], 0
004030FC   .  7D 20         jge     short 0040311E
004030FE   .  68 F8060000   push    6F8
00403103   .  68 BC244000   push    004024BC
00403108   .  FF75 08       push    dword ptr [ebp+8]
0040310B   .  FFB5 48FFFFFF push    dword ptr [ebp-B8]
00403111   .  E8 C0E1FFFF   call    <jmp.&MSVBVM60.__vbaHresultCheck>
00403116   .  8985 10FFFFFF mov     dword ptr [ebp-F0], eax
0040311C   .  EB 07         jmp     short 00403125
0040311E   >  83A5 10FFFFFF>and     dword ptr [ebp-F0], 0
00403125   >  8B45 08       mov     eax, dword ptr [ebp+8]
00403128   .  8B4D 08       mov     ecx, dword ptr [ebp+8]
0040312B   .  8B40 78       mov     eax, dword ptr [eax+78]          ;  返回的值当前年份
0040312E   .  2B81 84000000 sub     eax, dword ptr [ecx+84]          ;  输入的年份
00403134   .  0F80 B7020000 jo      004033F1
0040313A   .  85C0          test    eax, eax
0040313C   .  75 46         jnz     short 00403184                   ;  关键跳

同理,剩下的是对月份和日期计算进行验证

注册机代码

#include<stdio.h>
int main(int argc ,char ** argv)
{
  if(argc!=4)
    return 0;
  int year,month,day;
  year=atoi(argv[1]);
  month=atoi(argv[2]);
  day=atoi(argv[3]);
  printf("%d %d %d,",year,month,day);
  printf("Part1:%d\n",year);
  printf("Part2:%d\n",(year+month)*month);
  printf("Part3:%d\n",((year+month)*month+day)*day);

  return 0;
}

视频分析

链接: https://pan.baidu.com/s/1yL7tB47nzQ3mG6z0u2YtcA  密码: wbfm

第一次录,有批评和建议都可以提出来

如果反响热烈,我就更新的勤快些

免费评分

参与人数 3吾爱币 +9 热心值 +3 收起 理由
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
blywq + 1 + 1 用心讨论,共获提升!
晨曦牧云 + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

神马最给力ing 发表于 2020-5-8 14:41
谢谢 混个分
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-27 18:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表