HGAME2020 reverse maze

1.查壳,发现是64位的linux文件,由于虚拟机没装linux,只能静态调了


在这里插入图片描述


2.拖入ida分析,找到主函数

在这里插入图片描述

2.1.思路分析

1.先将对应的ASCII的转换成字符,因为迷宫题一般都是用wsad,或者lrdt来标志上下左右
2.v5=&unk_6020c4,标志着起始点
3.v5+=4,意味着右边移动4个字节
4.v6+=64,有点像二维数组里面的用地址来访问这种。
5.if(v5<asc-------)这句,最后一位为0的才可以走,为1的会直接跳转,也告诉了我们迷宫的边界

3.实践:

3.1 因为是移动4个字节,那么我们直接以4个字节,编址(打开hex-view,右键data format,调整成4个字节

3.2 直接看对应的图,跟着路线控制方向,得出flag。

在这里插入图片描述
flag:hgame{ssssddddddsssssddwwdddssssdssdd}

### HGAME 2024 Misc 类别题目信息 #### 解密并转换Flag 在HGAME 2024 WEEK1 的misc类别中,有一个挑战涉及解密获得的明文,并将其全部转换为大写字母。最终的结果被包裹在`hgame{}`内作为标志(flag)[^2]。 ```python def convert_to_uppercase_flag(encrypted_text): decrypted_text = encrypted_text.upper() flag_format = f"hgame{{{decrypted_text}}}" return flag_format example_encrypted_text = "disappearintheseaofbutterfly" print(convert_to_uppercase_flag(example_encrypted_text)) ``` 此代码片段展示了如何将给定字符串转换成全大写的flag格式。 #### 字符编码变换 另一个例子来自HGAME 2024 WEEK2,在这个杂项(miscellaneous)挑战里,参与者需要通过特定偏移量来调整输入字符串中的每一个字符Unicode值的位置。当尝试不同的位移数值时,可以找到符合条件的有效输出——即以"hgame{"开头的信息[^3]。 ```python def unicode_shift(input_str, shift): shifted_string = ''.join( chr((ord(c) + shift) % 0x110000) for c in input_str) return shifted_string input_unicode_encoded = "籱籰籪籶籮粄簹籴籨粂籸籾籨籼簹籵籿籮籨籪籵簺籨籽籱簼籨籼籮籬类簼籽粆" for offset in range(-65535, 65536): result = unicode_shift(input_unicode_encoded, offset) if result.startswith("hgame"): print(f"Offset found: {offset}") print(result) break ``` 这段Python脚本实现了遍历可能的Unicode位移范围直到发现正确的标志为止的功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值