BUUCTF reverse 刮开有奖

本文解析了一个CTF挑战赛中的题目,涉及Windows API函数使用及逆向工程技巧,详细分析了如何通过代码逻辑找到正确的密钥。

每天一道ctf,能多不能少

题目链接

下载好以后双击点开
在这里插入图片描述

发现是这么个玩意儿,但我们却没法对它进行操作,好吧,查一下壳,然后直接用ida打开,查看主函数,这里我发现主函数是这种的
在这里插入图片描述

学识短浅的我只能去百度,大概了解了一下:windows支持两种应用程序,一种是一种是基于控制台用户界面的应用程序(Console User Interface,简称CUI),另一种是基于图形用户界面的程序(Graphic User Interface,简称GUI)。然后main函数和WinMain函数分别是这两种应用程序的主函数(不知道这样理解做没错,原话是这样的:main函数和WinMain 函数是分别做为CUI和GUI的进入点函数被使用的。)废话不多说,继续我们的ctf。

所以我们打开主函数,然后查看反码。
在这里插入图片描述
这里面的函数是一个windowsAPI函数,作用是从一个对话框资源中创建一个模态对话框。参数我并不太明白,百度了一下也没百度出个结果,看了其他大佬的wp是这样说的的:
在这里插入图片描述
继续往下,查看代码

INT_PTR __stdcall DialogFunc(HWND hDlg, UINT a2, WPARAM a3, LPARAM a4)
{
   
   
  const char *v4; // esi
  const char *v5; // edi
  int v7[2]; // [esp+8h] [ebp-20030h] BYREF
  int v8; // [esp+10h] [ebp-20028h]
  int v9; // [esp+14h] [ebp-20024h]
  int v10; // [esp+18h] [ebp-20020h]
  int v11; // [esp+1Ch] [ebp-2001Ch]
  int v12; // [esp+20h] [ebp-20018h]
  int v13; // [esp+24h] [ebp-20014h]
  int v14; // [esp+28h] [ebp-20010h]
  int v15; // [esp+2Ch] [ebp-2000Ch]
  int v16; // [esp+30h] [ebp-20008h]
  CHAR String[65536]; // [esp+34h] [ebp-20004h] BYREF
  char v18[65536]; // [esp+10034h] [ebp-10004h] BYREF

  if ( a2 == 272 )
    return 1;
  if ( a2 != 273 )
    return 0;
  if ( (_WORD)a3 == 1001 )
  {
   
   
    memset(String, 0, 0xFFFFu);
    
### 关于BUUCTF逆向工程挑战及相关资源 #### BUUCTF平台概述 BUUCTF是一个在线CTF(夺旗竞赛)练习平台,提供了多种类型的网络安全挑战供爱好者学习和实践。其中逆向工程项目旨在帮助参与者理解二进制文件的工作原理以及如何通过反编译、调试等手段来破解软件保护机制或发现潜在漏洞。 #### 逆向工程技术简介 逆向工程是指通过对程序的行为分析其内部结构的过程。这通常涉及到使用工具如IDA Pro、Ghidra 或 Radare2 来查看已编译代码并尝试重建源码逻辑[^3]。对于初学者来说,掌握基本概念和技术非常重要: - **静态分析**:无需运行目标应用程序即可对其进行研究的方法; - **动态分析**:涉及执行被测对象的同时监控行为变化的技术; #### 实际案例解析 以一道典型的BUUCTF逆向题目为例,假设有一个给定的可执行文件作为附件上传到平台上。参赛者需要做的是下载该文件并通过上述提到的各种技术手段找出隐藏在其内的flag字符串或其他形式的秘密信息。在这个过程中可能会遇到诸如混淆处理过的函数调用链路等问题,这就考验了解题者的耐心和技术水平了。 ```python from pwn import * context.arch = 'amd64' elf = ELF('./challenge') p = process(elf.path) # 这里可以加入具体的解题思路实现代码... print(p.recvall()) ``` 此段Python脚本利用pwntools库加载了一个名为`./challenge`的目标程序,并创建了一个进程实例用于后续交互操作。当然这只是框架性的展示,在实际比赛中还需要根据具体情况调整参数设置等内容。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值