需要GPS

admin 2022年1月5日23:11:08CTF专场评论33 views1702字阅读5分40秒阅读模式

>

>

需要GPS

yuchoxuuan

1.群主郑重提示,不是隐写,所以也就没有三板斧直接。打开看一下,发现是个路牌
然后发现这个路牌有些高大上,能看清楚的三个地点分别是 北京,新加坡,伦敦。
感觉梗在这里
同时,因为又是北京又是伦敦的,距离少则上千公里多则上万公里,在地球上不具备这样的高速公路
所以我认为他的距离是直线距离(或者说球面距离)

本来用极坐标算了一次,结果数学不过关,失败,后来在Condor2048的提示下用球面座标搞了一下,有现成的公式可以用就是爽,然后从网上查到这三个地方的坐标。直接带进去。。。。

然后发现方程不会解,于是只好写代码逼近了

class MathCump:
    @staticmethod
    def Geodistance(lng1,lat1,lng2,lat2,R=6371.393):# 地球平均半径,6371km
        lng1, lat1, lng2, lat2 = map(radians, [float(lng1), float(lat1), float(lng2), float(lat2)]) # 经纬度转换成弧度
        dlon=lng2-lng1
        dlat=lat2-lat1
        a=sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2 
        distance=2*asin(sqrt(a))*R*1000 
        distance=round(distance/1000,3)
        return distance

def Sum_dDis(lo,la,pos=[],dis=[]): #求 (lo,la)到 pos各点距离与指定距离的绝对值差
    ret = 0;
    for i in range(len(pos)):
        dbx = abs(MathCump.Geodistance(pos[i][0],pos[i][1],lo,la)-dis[i])
        ret+=dbx
    return ret
    
def FindMin(pos=[0,0,1e7],posl=[],disl=[],r=[]):#遍历穷举
    ret=pos.copy()
    o=pos[0]-r[0]
    while o<=pos[0]+r[0]:
        a=pos[1]-r[1]
        while a<=pos[1]+r[1]:
            sumd =Sum_dDis(o,a,posl,disl)
            if(sumd < ret[2]) : 
                ret=[o,a,sumd]
                print(ret)
            a+=r[2]
        o+=r[2]
    return ret

def FindPos(pos=[],dis=[],rd=4) :
    pp  =[0,0,1e7]
    r=[180,90,10]
    for i in range(rd) :
        pp=FindMin(pp,pos,dis,r)
        r=[r[0]/10,r[1]/10,r[2]/10]

    print('- '*20)
    print("(%0.4f,%0.4f):%0.4f"%(pp[0],pp[1],pp[2]))
    print('- '*20)

p = [(116+25/60,39+54/60),(103+54/60,1+16/60),(0,51.4)] #北京,新加坡,伦敦 经纬度
d=[3654.86,1565.74,11182] #标牌上的距离
t0 = datetime.now()
FindPos(p,d,6)
print('Time:' ,datetime.now()-t0)

代码水平比较低,而且使用笨办法逼近的所以效率有点低。。。
最后得到一个坐标方程

然后用谷歌地图搜一下。。。。发现掉海里了。

不过没关系,可能是我查到的城市坐标不准,而且我计算的时候认为地球是一个理想球体,你懂得,地球其实是一个不规则三轴椭球体,肯定有误差,所以缩放一下地图,发现在这个坐标旁边正好有个旅游景点

于是百度一下,发现基本上都是游记和广告
然后随手点了个进去,一拉,卧槽你看我发现了啥

然后找到了那个碑的照片,找了好几个才看清那几个数字是啥,
加上flag{}皮提交即可。
对了,那个东西虽然群主管他叫石碑,但是我真的不认为那是它的真名字,因为它太不像个碑了,我倒认为那是个球。


yuchoxuuan

yuchoxuuan Condor2048

此处修改为 数学大神,Condor2048大佬


admin

大佬牛批


特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月5日23:11:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  需要GPS http://cn-sec.com/archives/720036.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: