UltraDebug

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: A C D R G Y M Z X S P
公益项目,接受捐赠
查看: 1110|回复: 0
收起左侧

[CTF] 算法分析:Snake

[复制链接]
English

主题

0

回帖

UD

新手上路

UID
34
积分
34
注册时间
2022-4-4
最后登录
1970-1-1
2022-5-12 23:53:28 | 显示全部楼层 |阅读模式

算法分析:Snake

1.先下载附件,查壳运行得知初步逻辑

查壳得知是UPX壳,那直接使用UPX脱壳工具一键脱壳,得到原程序信息,32位控制台程序

算法分析:Snake - English_UltraDebug

运行一下exe,查看运行逻辑
需要先输入名字

算法分析:Snake - English_UltraDebug

发现就是一个贪吃蛇游戏,死亡以后便得到了关于flag得信息,要求我们分数高才能得到flag,

算法分析:Snake - English_UltraDebug

算法分析:Snake - English_UltraDebug

按照以往经验猜测这种基本上要么要求的分数很高,要么就是一个骗局,那么我们直接采用IDA Pro来进行分析

2.静态分析

老规矩,先查看是否存在可以字符串

算法分析:Snake - English_UltraDebug

发现三个可疑的字符串,第一个:通过以往经验可以猜测可能是某一轮Flag加密的结果,第二个:64位长度,每个字符都是Base64编码表中的字符,所以99%就是Base64编码表,那可以先预料到可能是使用了Base64加密,第三个:通常这种提示厉害正确类似的话便可以很大程度确定这串字符所在的位置就是Flag判断位正确的位置
老规矩,顺藤摸瓜,我们直接定位到提示正确的函数取查看验证,因为通常在最后一次验证出结果的地方也能找到最后一次的Flag加密字符,那双击字符便来到了sub_40186F函数,我们先按下N把sub_40186F函数名全局改为Check,接下来我们就称sub_40186F函数为Check

int Check()
{
  char v1[256]; // [sp+18h] [bp-910h]@1
  char Dst[2048]; // [sp+118h] [bp-810h]@4
  int j; // [sp+918h] [bp-10h]@4
  int i; // [sp+91Ch] [bp-Ch]@1

  sub_4021AD(22, 18);
 
还有更多的精彩内容,作者设置为付费后可见
UltraDebug免责声明
✅以上内容均来自网友转发或原创,如存在侵权请发送到站方邮件9003554@qq.com处理。
✅The above content is forwarded or original by netizens. If there is infringement, please send the email to the destination 9003554@qq.com handle.
回复 打印

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|站点地图|UltraDebug ( 滇ICP备2022002049号-2 滇公网安备 53032102000034号)

GMT+8, 2025-6-21 00:43 , Processed in 0.034550 second(s), 9 queries , Redis On.

Powered by Discuz X3.4

© 2001-2023 Discuz! Team.

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