2024春秋蓝桥杯reverse——crackme01

尝试了下输入没有任何反应

查看——32位——IDA打开

我之前没怎么写过win32,所以我开始在string里面找flag,wrong,right什么的字符,都不行

然后我又在函数里面找main,也什么收获的没有,OK废话完了

 在win32里面 关于弹窗的函数:

MessageBox ()

DefWindowProc这个函数是默认的窗口处理函数

ShowWindow(HWND hWnd,int nCmdShow)

我们先找

messagebox(我们动调按的时候,没有弹出来新窗口,所以否定他)

我们看

处理机制,因为他让我们输入,肯定要处理我们输入的数据才行

在第一个函数里面

LRESULT __stdcall sub_A27F0(HWND a1, UINT Msg, WPARAM wParam, unsigned int lParam)
{
  UINT v4; // eax
  LPARAM v5; // edx
  __int16 v6; // bx
  void *v7; // edi
  HDC v9; // esi
  unsigned int v10; // ecx
  __int16 v11; // ax
  unsigned int i; // eax
  int v13; // edi
  int SystemMetrics; // eax
  struct tagRECT v15; // [esp+18h] [ebp-68h] BYREF
  struct tagRECT Rect; // [esp+28h] [ebp-58h] BYREF
  struct tagPAINTSTRUCT Paint; // [esp+38h] [ebp-48h] BYREF

  v4 = Msg;
  v5 = lParam;
  v6 = 0;
  v7 = wParam;
  if ( Msg > 0xF )
  {
    if ( Msg != 4097 )
      return DefWindowProcW(a1, v4, v7, v5);
    v10 = 0;
    do
    {
      v11 = *(wParam + 2 * v10++);
      v6 += v11;
    }
    while ( v10 <= lParam );
    for ( i = 0; i < 44; i += 2 )
      *(&chText + i) ^= v6;
    GetWindowRect(a1, &v15);
    v13 = (v15.left - v15.right + GetSystemMetrics(16)) / 2;
    SystemMetrics = GetSystemMetrics(17);
    SetWindowPos(a1, HWND_MESSAGE|0x2, v13, (v15.top - v15.bottom + SystemMetrics) / 2, -1, -1, 5u);
    SetWindowPos(a1, 0xFFFFFFFE, 0, 0, 0, 0, 3u);
    if ( (v6 & 0xF00) == 0x400 && (v6 & 0xF0) == 0xB0 && (v6 & 6) == 6 )
    {
      ShowWindow(a1, 5);
      UpdateWindow(a1);
    }
    v7 = wParam;
LABEL_18:
    if ( v7 )
      free(v7);
    v5 = lParam;
    v4 = Msg;
    return DefWindowProcW(a1, v4, v7, v5);
  }
  switch ( Msg )
  {
    case 0xFu:
      v9 = BeginPaint(a1, &Paint);
      GetClientRect(a1, &Rect);
      DrawTextW(v9, &chText, -1, &Rect, 0x25u);
      EndPaint(a1, &Paint);
      goto LABEL_18;
    case 1u:
      return 0;
    case 2u:
      PostQuitMessage(0);
      return 0;
  }
  return DefWindowProcW(a1, v4, v7, v5);
}

在这里,improt 里面居然有自定义的变量,这是一个异常点!

我们看CHtext

那个4很奇怪

最后知道这段是dword

师傅给的代码提取

shift+F2

import idc
v=[idc.get_wide_word(i) for i in range(0x002464A0,0x002464Cb,2)]
key = 0x4b6
for i in range(len(v)):
    v[i]=v[i]^key
print(bytes(v))

这里的key就是V6,我们从前面找不到V6的数据,我们往后面看

就可以知道V6=0x4f6

最后得到flag

ICHUNQIU_FE362DBE

下班!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/454144.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

移动机器人设计与实践课程进度安排-2023-2024-2

进度安排由人工智能审核制定。 人工智能设计的机器人模型如下&#xff0c;一组三个&#xff1a; 轮式物流小车机器人智慧工厂绘图描述 背景: 绘制一个工厂的大致轮廓&#xff0c;包括工厂大门、围墙和主要的建筑结构。在背景中描绘一些工业设备、生产线和堆放的物料&#xff…

elasticsearch篇

1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 例如&#xff1a; 在电商网站搜索商品 在百度搜索答案 在打车软件搜索附近…

两个笔记本如何将一个笔记本作为另一个笔记本的拓展屏

需求是有两个笔记本&#xff0c;一个笔记本闲置&#xff0c;另一个笔记本是主力本。想将另一个闲置的笔记本连接到主力本上作为拓展屏使用。网上搜了好久&#xff0c;有一些人提到了&#xff0c;也有一些视频但是文章比较少。简单总结一下吧 上述需求有两种方式 第一种&#x…

Purple Pi OH鸿蒙开发板7天入门OpenHarmony开源鸿蒙教程【六】

今天我们来从OpenHarmony简介、环境搭建、创建第一个OpenHarmony项目等方面开始OpenHarmony应用开发的第一步。 一. OpenHarmony简介 OpenHarmony 是由开放原子开源基金会&#xff08;OpenAtom Foundation&#xff09;孵化及运营的开源项目,目标是面向全场景、全连接、全智能…

BUGKU-WEB No one knows regex better than me

题目描述 题目截图如下&#xff1a; 进入场景看看&#xff1a; 解题思路 看到此类题目&#xff0c;直接代码审计 相关工具 base64 在线加密https://www.mklab.cn/utils/regex 解题步骤 代码审计 <?php error_reporting(0); # 从请求中获取了两个参数&#xff1…

String 底层是如何实现的?

1、典型回答 String 底层是基于数组实现的&#xff0c;并且数组使用了 final 修饰&#xff0c;不同版本中的数组类型也是不同的&#xff1a; JDK9 之前&#xff08;不含JDK9&#xff09; String 类是使用 char[ ]&#xff08;字符数组&#xff09;实现的但 JDK9 之后&#xf…

短视频解析接口分发系统

宝塔面板&#xff1a;Nginx系统 php7.2 Mysql 5.6-5.7 伪静态Thinkphp 上传文件直接访问域名安装即可 可以自备 听说后边要出saas去水印小程序 下载地址&#xff1a;https://pan.xunlei.com/s/VNskSEelfRVIzoSm5P5Rcw34A1?pwdqzhh# 接口演示&#xff1a; 前端演示…

安装PyTorch详细过程

安装anaconda 登录anaconda的官网下载&#xff0c;anaconda是一个集成的工具软件不需要我们再次下载。anaconda官网 跳转到这个页面如果你的Python版本正好是3.8版&#xff0c;那便可以直接根据系统去选择自己相应的下载版本就可以了。 但是如果你的Python版本号不是当前页面…

Spring 面试题及答案整理,最新面试题

Spring框架中的Bean生命周期是什么&#xff1f; Spring框架中的Bean生命周期包含以下关键步骤&#xff1a; 1、实例化Bean&#xff1a; 首先创建Bean的实例。 2、设置属性值&#xff1a; Spring框架通过反射机制注入属性。 3、调用BeanNameAware的setBeanName()&#xff1a…

数据库增删改查以及联合查询——数据库——day1

今天学习了数据库的知识 首先数据库分为关系型数据库和非关系型数据库 关系型数据库:Mysql OracleSqlServerSqlite 非关系型数据库&#xff1a;RedisNoSQL我们首先来看一下数组、链表、文件、数据库的区别 数组、链表: 内存存放数据的方式(代码运行结束、关机数据丢失) …

macOS安装maven

官网下载maven https://maven.apache.org/download.cgi如下图所示&#xff1a; 1.解压并复制到指定的目录中2.配置环境变量 vim ~/.bash_profile进行文件的修改 export M2_HOME/Users/fanfan/company/apache-maven-3.9.6 export PATH$PATH:$M2_HOME/bin3.终端中输入source ~…

echarts绘制 联系词(关键字)

<template><div><div>【关键词条】</div><div ref"target" class"w-full h-full" stylewidth:300px;height:300px></div></div> </template><script setup> import { ref, onMounted,watch } from …

数据结构——通讯录项目

1.通讯录的介绍 顺序表是通讯录的底层结构。 通讯录是将顺序表的类型替换成结构体类型来储存用户数据&#xff0c;通过运用顺序表结构来实现的。 用户数据结构&#xff1a; typedef struct PersonInfo {char name[12];char sex[10];int age;char tel[11];char addr[100]; }…

【C++】C++的初步认识

&#x1f338;博主主页&#xff1a;釉色清风&#x1f338;文章专栏&#xff1a;C&#x1f338;今日语录&#xff1a;自律以修身&#xff0c;自省以观己。自学以长识&#xff0c;自处以蓄力。 &#x1f33b;Hi~大家好&#xff0c;这次文章是C的初步认识&#xff0c;包括从C语言到…

(黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

&#xff08;黑马出品_高级篇_01&#xff09;SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术——保护 今日目标1.初识Sentinel1.1.雪崩问题及解决方案1.2.服务保护技术对比1.3.Sentinel介绍和安装1.3.1.初识Sentinel1.3.2.安装Sentinel 1.…

Mybatis Plus + Spring 分包配置 ClickHouse 和 Mysql 双数据源

目录 一、背景 二、各个配置文件总览&#xff08;文件位置因人而异&#xff09; 2.1 DataSourceConfig 2.2 MybatisClickHouseConfig &#xff08;ClickHouse 配置类&#xff09; 2.3 MybatisMysqlConfig&#xff08;Mysql 配置类&#xff09; 2.4 application.propertie…

Xterminal:未来的终端体验

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 开发环境篇 ✨特色专栏&#xff1a; M…

Git版本控制工具简介

版本控制工具 分类 集中式版本控制工具 CVS、SVN、VSS 缺点&#xff1a;如果服务器一旦宕机&#xff0c;所有历史数据将会丢失 分布式版本控制工具 Git、Mercurial、Bazaar、Darcs...... 优势&#xff1a;本地即可进行版本控制&#xff0c;很好避免了单点故障 需要有一个远程…

软件设计师15--进程资源图

软件设计师15--进程资源图 考点1&#xff1a;进程资源图例题&#xff1a; 考点1&#xff1a;进程资源图 例题&#xff1a; 1、在如下所示的进程资源图中&#xff0c;D&#xff09;。 A、P1、P2、P3都是非阻塞节点&#xff0c;该图可以化简&#xff0c;所以是非死锁的 B、P1、…

基于SSH的物流配送管理系统的设计与实现

摘 要 当今社会&#xff0c;物流配送已成为影响经济发展的显著因素。而随着社会信息化发展&#xff0c;建立有效的物流配送管理体系不仅能够减少物流成本&#xff0c;更能够提升工作人员的工作效率与客户的满意度。而基于B/S架构的物流配送管理体系&#xff0c;不仅具有良好的…