2024春秋蓝桥杯reverse——crackme01

news2024/11/20 11:40:57

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

查看——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

下班!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EPSON X2A0003510033 XV7081BB介绍

X2A0003510033 XV7081BB是一款具有SPI接口&#xff0c;这款传感器主要用于商业类应用&#xff0c;具体可以应用于抗震和姿态控制领域&#xff0c;以及人机接口的运动检测中&#xff0c;这表明它在工业应用、机器人技术、自动驾驶车辆以及任何需要精确角度测量和姿态控制的场合都…

Codeforces Round 933 (Div. 3) A~D

比赛链接 : codeforces.com/contest/1941 A . Rudolf and the Ticket 直接暴力即可 ; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \n #define lowbit(x) (x&(-x)) #define sz(a) (int)a.size() #define p…

手搭手RocketMQ发送消息

消息中间件的对比 消息中间件 ActiveMQ RabbitMQ RocketMQ kafka 开发语言 java erlang java scala 单击吞吐量 万级 万级 10万级 10万级 时效性 ms us ms ms 可用性 高(主从架构) 高(主从架构) 非常高(主从架构) 非常高(主从架构) 消息中间件: acti…

mybatisplus使用基本步骤

1.设计实体类&#xff0c;给实体类加一些需要的注解 2.创建Service接口继承mybatisplus提供的 IService<实体类>接口 3.实现Service接口&#xff0c;并继承mybatisplus提供的 ServiceImpl<mapper接口&#xff0c;实体类>类 4.mapper接口继承mybatisplus提供的 B…

java020 - Java集合进阶

1、集合知识回顾 1.1 集合特点 提供了一种储存空间可变的储存模型&#xff0c;储存的数据容量随时可以发生改变。 1.2 集合类体系结构 单列集合和双列集合&#xff1a; 单列集合中&#xff1a;list和set区别&#xff08;数据是否重复&#xff09; 区分接口和实现类&#…

【零基础学习04】嵌入式linux驱动中信号量功能基本实现

大家好,为了进一步提升大家对实验的认识程度,每个控制实验将加入详细控制思路与流程,欢迎交流学习。 今天给大家分享一下,linux系统里面信号量操作的具体实现,操作硬件为I.MX6ULL开发板。 第一:信号量基本简介 信号量是同步的一种方式,linux内核也提供了信号量…

【数据结构】二叉树OJ题目

965. 单值二叉树 如果二叉树每个节点都具有相同的值&#xff0c;那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时&#xff0c;才返回 true&#xff1b;否则返回 false。 示例 1&#xff1a; 输入&#xff1a;[1,1,1,1,1,null,1] 输出&#xff1a;true示例 2&#x…

链路聚合实验(思科)

华为设备参考&#xff1a; 一&#xff0c;技术简介 网络设备的链路聚合技术&#xff08;Link Aggregation&#xff09;是一种将多个物理链路捆绑在一起&#xff0c;形成一个逻辑链路的技术。这样做可以增加带宽、提高可靠性和实现负载均衡。 二&#xff0c;实验目的 橙色的阻…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的条形码二维码检测系统(深度学习+UI界面+训练数据集+Python代码)

摘要&#xff1a;在物流和制造业中&#xff0c;开发一套高效的条形码与二维码识别系统显得尤为关键。本博文深入探讨了如何利用深度学习技术打造出一套先进的条形码及二维码检测系统&#xff0c;并且提供了一套完整的实施方案。该系统搭载了性能卓越的YOLOv8算法&#xff0c;并…

基于Ambari搭建大数据分析平台

一、部署工具简介 1. Hadoop生态系统 Hadoop big data ecosystem in Apache stack 2. Hadoop的发行版本 Hadoop的发行版除了Apache的开源版本之外&#xff0c;国外比较流行的还有&#xff1a;Cloudera发行版(CDH)、Hortonworks发行版&#xff08;HDP&#xff09;、MapR等&am…

xss.pwnfunction.com靶机 Warmups

通关要求弹出警告框alert(1337) 没有用户交互 不能使用外链接 在chrome中测试 Ma Spaghet! 通过分析代码我们可以看到它直接用innerHTML将接收的内容赋值 但是我们不能使用<script>标签因为&#xff1a;HTML 5 中指定不执行由 innerHTML 插入的 <script> 标签。 所…

读书笔记之《机器与人》:AI如何重构工作方式和流程?

《机器与人: 埃森哲论新人工智能》作者是【美】保罗•多尔蒂和詹姆斯•威尔逊 &#xff0c;原作名: Human Machine: Reimagining Work in the Age of AI&#xff0c;2018年出版。 保罗•多尔蒂&#xff08;PAUL DAUGHERTYH&#xff09;&#xff1a;埃森哲首席技术官和创新官、…

Spring MVC中的REST风格

文章目录 REST风格1 REST简介问题导入1.1 REST介绍1.2 RESTful介绍1.3 注意事项 2 RESTful入门案例问题导入2.1 快速入门2.2 PathVariable介绍2.3 RequestBody、RequestParam、PathVariable区别和应用 3 REST快速开发【重点】3.1 代码中的问题3.2 Rest快速开发 4案例&#xff1…

springboot的maven多模块如何混淆jar包

springboot的maven多模块如何混淆jar包 一.简介二. 示例2.1 基本配置2.2 结果 三. 错误3.1 错误13.2 错误2 四. 参考文章 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 一.简介 …

【node】模块化与包(二)

1、模块化的基本概念 模块化是指解决一个复杂的问题时&#xff0c;自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说&#xff0c;模块是可组合、分解和更换的单元。 &#xff08;1&#xff09;模块化的优点 遵循固定规则&#xff0c;把大文件拆分成对立并相互依赖…

Python使用FastAPI提供图片缩略图生成接口

使用pillow的thumbnail生成缩略图时&#xff0c;会保持原图的宽高比&#xff1b;使用的opencv的resize则不会 具体代码如下&#xff1a; #!/usr/bin/env python import re import sys from enum import Enum from io import BytesIO from pathlib import Path from typing im…

蓝桥杯 2022 dp 背包

蓝桥杯 2022 dp 背包 题目链接&#xff1a; https://www.lanqiao.cn/problems/2186/learning/?subject_code1&group_code4&match_num13&match_flow2&origincup 题目&#xff1a; 代码&#xff1a; #include<bits/stdc.h> using namespace std;#defi…

王道机试C++第6章 数学问题和22年蓝桥杯省赛选择题Day34

6.1 进制转换 二进制数&#xff08;十转二&#xff09; 习题描述 大家都知道&#xff0c;数据在计算机里中存储是以二进制的形式存储的。 有一天&#xff0c;小明学了C语言之后&#xff0c;他想知道一个类型为unsigned int 类型的数字&#xff0c;存储在计算机中的二进制串是…

多数问题求解之蒙特卡洛与分治法

多数问题&#xff08;Majority Problem&#xff09;是一个有多种求解方法的经典问题&#xff0c;其问题定义如下&#xff1a; 给定一个大小为 n n n的数组&#xff0c;找出其中出现次数超过 n / 2 n/2 n/2的元素 例如&#xff1a;当输入数组为 [ 5 , 3 , 5 , 2 , 3 , 5 , 5 ] […

JavaEE:网络编程

网络编程&#xff1a;通过代码完成基于网络的跨主机通信 跨主机通信方式&#xff1a; 1.TCP/IP网络 2.蓝牙通信 3.近场通信NFC 4.毫米波通信&#xff1a;功率高&#xff0c;带宽高&#xff0c;抗干扰能力差 其中TCP/IP网络是日常编程中最常涉及到的&#xff0c;最通用的跨主机通…