buu-[羊城杯 2020]easyre

博客介绍了对无壳64位exe的逆向分析过程,主要涉及字符串查看、主函数跟进以及三个加密函数的分析。其中,encode_one函数使用了密码表,encode_two中发现v10与a3有关,而encode_three则是应用了偏移3的凯撒密码,解密时采用手动方式解决。
摘要由CSDN通过智能技术生成

无壳64位exe
在这里插入图片描述
运行还是老样子
在这里插入图片描述

查看字符串,先放一个base64在这里
在这里插入图片描述
跟进主函数

int __cdecl main(int argc, const char **argv, const char **envp)
{
   
  int v3; // eax
  int v4; // eax
  int v5; // eax
  int result; // eax
  char Str; // [rsp+20h] [rbp-60h]
  char Str1; // [rsp+50h] [rbp-30h]
  char v9; // [rsp+90h] [rbp+10h]
  char v10; // [rsp+D0h] [rbp+50h]
  char Str2[8]; // [rsp+110h] [rbp+90h]
  int v12; // [rsp+14Ch] [rbp+CCh]

  _main();
  strcpy(Str2, "EmBmP5Pmn7QcPU4gLYKv5QcMmB3PWHcP5YkPq3=cT6QckkPckoRG");
  puts("Hello, please input your flag and I will tell you whether it is right or not.");
  scanf("%38s", &Str);
  if ( strlen(&Str) == 38
    && (v3 = strlen(&Str), (unsigned int)encode_one(&Str, v3, &v10, &v12) == 0)
    && (v4 = strlen(&v10), (unsigned int)encode_two(&v10, v4, &v9, &v12) == 0)
    && (v5 = strlen(&v9), (unsigned int)encode_three(&v9, v5, &Str1, &
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值