跟着大佬学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 保存 -> 确定,再运行:

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

直接点击发现没有效果:

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

  • 24
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值