跟着大佬学RE(六)

findKey

嗯,就是一个窗口程序,没有输入,flag 应该就藏在程序里面

第一遍自己直接莽做,在string窗口,找到 flag{} 看到标红直接 nop 然后,然后就不知道怎么搞了

这串字符提示不能随便 nop ,重新开始

在标红开头定义函数 P ,提示 0x40191F 处解析失败。

仔细看 花指令处:

也有说 两个 push 指令是一样的,nop掉一个就行了,我感觉还是按上面的吧。

试了一下,好像都可以。

nop 完,定义函数后进入:

大佬说从后面的 else 开始看:

应该是要优先这个看创建对话框函数 

然后去对话框调用的函数看看

VC实现Button响应WM_LBUTTONDOWN和WM_LBUTTONUP_vc6 buttondown buttonup-CSDN博客

WM_开头的消息都是标准消息

https://www.cnblogs.com/qinfengxiaoyue/archive/2013/02/12/2910631.html

也就是说,如果在关于对话框中按左/中/右键,input 数组就会被逐字节赋值为字符 1/2/3。

我是看不出来(0-0)

再回到最初 0x401640 函数,开始从前面看:

MD5 加密

差不多把这个程序搞明白了。

flag就藏在 unk_423030,看似没有输入实际还是有输入的,直接动调到这,没有上面正确的key

也得不到flag。

可以两次脚本异或,也可以得到 input后按要求执行程序

别人是直接在这个函数看到两次异或,然后直接解的,也行吧,但感觉不是很严谨。

[FlareOn5]Ultimate Minesweeper

You hacked your way into the Minesweeper Championship, good job. Now its time to compete. Here is the Ultimate Minesweeper binary. Beat it, win the championship, and we'll move you on to greater challenges.

Hint:本题解出相应字符串后请用flag{}包裹,形如:flag{123456@flare-on.com}

是一个扫雷游戏

.NET程序拖进 dnspy 分析

这俩肯定是关键,Ctrl+Shift+R 分析一下(分析器)

在 MainForm 中找到:

所有非雷才能赢,跟进去看看:

检查是不是所有的非雷都点了。

嗯,改成 true ,就可以看到了

Ctrl+Shift+E 尝试把这里 patch 一下,每个元素都赋值为 true

 然后根据 size 来重新赋值

点击右下角编译,然后 Ctrl+Shift+S 保存 -> 确定,再运行:

点击只会刷新,重新下一个程序试试

直接点击发现没有效果:

应该是点击的回调函数里判断了方块是否可见,可见就表明已经被点开,不会进行其他操作。 

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

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

相关文章

优设AI导航

1、优设AI导航 优设AI导航

13. UDP协议与RTP协议

UDP协议 UDP协议比较简单: UDP的长度是固定的,用总长度-UDP长度就是数据长度。 UDP是不保证他的有序性和可靠性的。对于音频和视频是这样是比较好的,因为这段丢了,我们可以从下一段在开始解码。 RTP RTP 协议概述 RTP&#x…

【前端】详解JavaScript事件代理(事件委托)

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 🤓 同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深…

简单了解java中的异常

异常 1、异常的概述 1.1、概述 异常就是程序出现了不正常的情况,程序在执行过程中,数据导致程序不正常,最终导致JVM的非正常停止。语句错误不算在异常体系中。 1.2、异常的存在形式 异常有类型之分,比如我们比较熟悉的数组越…

安装golang

官网:All releases - The Go Programming Language (google.cn) 下载对应的版本安装即可

数据结构初阶 · 链式二叉树的部分问题

目录 前言: 1 链式二叉树的创建 2 前序 中序 后序遍历 3 树的节点个数 4 树的高度 5 树的叶子节点个数 6 树的第K层节点个数 前言: 链式二叉树我们在C语言阶段已经实现了,这里介绍的是涉及到的部分问题,比如求树的高度&am…

liquibase做数据库版本管理

通过这个配置就会自动启动liquibase 比对 https://www.cnblogs.com/ludangxin/p/16676701.html https://zhuyizhuo.github.io/2020/07/04/spring-boot/spring-boot-liquibase-database-version-control/

如何理解与学习数学分析——第二部分——数学分析中的基本概念——第10章——实数

第2 部分:数学分析中的基本概念 (Concepts in Analysis) 10. 实数(The Real Numbers) 本章介绍比率数(rational numbers)和非比数(irrational numbers)及其与十进制展开的关系。讨论了实数的公理,并解释了完备性公理对于区分实数和比率数为何必不可少&…

IDEA启动项目报java.lang.OutOfMemoryError: GC overhead limit exceeded

idea编译项目时报j ava.lang.OutOfMemoryError: GC overhead limit exceeded错误,教你两步搞定! 第一步:打开help -> Edit Custom VM Options ,修改xms和xmx的大小,如下图: 第二步:File -> Settings…

基于JSP的足球赛会管理系统

你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。 开发语言:Java 数据库:MySQL 技术:JSP技术 工具:IDEA/Eclipse、Navicat、Maven 系统展示 首页 个人中心 球队介绍…

使用 Sysbench 测试文件的读写速度

要使用 Sysbench 测试文件的读写速度,你可以按照以下步骤进行: 安装 Sysbench: 如果你还没有安装 Sysbench,可以通过以下命令在 Ubuntu 上安装: sudo apt install sysbench创建测试文件: 首先&#xff0c…

Xilinx(AMD) vivado对FPGA网表文件进行功能仿真的方法

1 概述 在FPGA开发中很多商用IP核出于知识产权保护的目的,不提供源代码,而是提供综合后的FPGA网表。由于没有源代码,也无法对网表文件直接进行仿真的操作来验证功能,此时需要独立的仿真模型文件。 本文介绍在Xilinx(AMD) vivado软…

LVGL移植和图片显示

最近闲来无事,偶尔刷到了移植LVGL的教程,今天肝完了机械原理又移植完LVGL库,真是收获满满的一天,先接一杯水去。 回来了,发个朋友圈高级一下,好困。 lvgl v8.3移植及组件使用_lvgl界面编辑器-CSDN博客htt…

MySQL限制登陆失败次数配置

目录 一、限制登陆策略 1、Windows 2、Linux 一、限制登陆策略 1、Windows 1)安装插件 登录MySQL数据库 mysql -u root -p 执行命令安装插件 #限制登陆失败次数插件 install plugin CONNECTION_CONTROL soname connection_control.dll;install plugin CO…

英伟达:史上最牛一笔天使投资

200万美元的天使投资,让刚成立就面临倒闭风险的英伟达由危转安,并由此缔造了一个2.8万亿美元的市值神话。 这是全球风投史上浓墨重彩的一笔。 前不久,黄仁勋在母校斯坦福大学的演讲中,提到了人生中的第一笔融资——1993年&#x…

离散数学答疑 5

知识点:单侧连通,强连通,弱连通 前缀码:比如001和00101就不是。因为后者的前三位和前者的重复了 有向图的邻接矩阵求法:横着看 数据结构21-4分钟搞定邻接矩阵_哔哩哔哩_bilibili 可达矩阵是包含自反性的。可达矩阵是…

Objective-C的初始化方法中,应该如何读写属性

除非有明确的原因需要使用setter, getter, 否则总是应该直接访问, 也就是直接使用实例变量(也称为 iVar)来读写数据 理由: 避免子类覆盖setter方法的影响:若在初始化方法中使用setter方法, 使用此方法实例化子类, 可能会调用子类…

DeepSpeed Learning Rate Scheduler

Learning Rate Range Test (LRRT) 训练试跑,该lr scheduler从小到大增长lr,同时记录下validatin loss;人来观察在训练多少step之后,loss崩掉(diverge)了,进而为真正跑训练,挑选合适的lr区间&…

帕友的小贴士,锻炼

帕金森病作为一种慢性神经系统疾病,对患者的生活质量产生了深远的影响。虽然医学界对于帕金森病的治疗仍在不断探索,但合理的锻炼已经被证实是改善患者症状、提高生活质量的有效途径之一。本文旨在为帕金森病患者推荐一些适合的锻炼方法,帮助…

57.Semaphore信号量

用来限制能同时访问共享资源的线程上限。只是适合限制单机线程数量。 Slf4j public class SemaphoreDemo {public static void main(String[] args) {Semaphore semaphore new Semaphore(3);for (int i 0; i < 10; i) {new Thread(() -> {try {semaphore.acquire();//…