XMAN2017冬 万箭穿心 writeup

翻记录发现这题分类是 mobile,没人做出来过,《万箭穿心》writeup献给各位老铁。

文件链接:https://github.com/LeadroyaL/attachment_repo/tree/master/xman_2017/ 

一、万箭穿心

不知道这个和mobile 主题有什么关系,只是一个 arm 的可执行文件,可以在手机上运行。

官方的 hint 是题目中有2个二维数组,表示2组坐标,共17个。

上来先读了长度18以内的输入,观察一下是有结构体的,经过多次测试,结构体大小给4个 int32刚好,前2个 int32表示 x方向的int64,后2个int32表示y方向的 int64。我们不把 int64标记出来是因为 F5以后实在太丑了。中间很多函数都是以点为单位的,而且发现 startPoint 的y 全都是0x80,currentPoint的 x 全都是0。

输入是按照 char 去挨个处理的,每个 char 与startPoints[i] 、targetPoints[i]强相关,currentChar 表示的点的 x 为零,y 的高位为0,低位为 currentChar,所以涉及到3个点。

稍微猜一下,三点共线,但不一定有整数解,先试试吧。

(ox24, 0x80),(0x20,0x68),(0,??),求得??=-88,取个相反数是88,对应 ASCII 的”X”。嗯,很合理。

写个 python 把其他的也算一下吧

噗,flag 就在这啊。

不知道为什么当初没人做出来,可能头铁去逆向了吧。


=============================================================
随着访客的增多,LeadroyaL在本站流量的开支越来越多了,曾经1元能用1个月,现在1元只能用3天。如果觉得本文帮到了你,希望能够为服务器的流量稍微打赏一点,谢谢!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

code