GithubHelp home page GithubHelp logo

evil0ctal / zenly-ghost-mode-attack Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 14 KB

Find out the precise coordinates of the user by bypassing the fuzzy location of Zenly's ghost mode.

License: MIT License

zenly-ghost-mode-attack's Introduction

Zenly-Ghost-mode-attack

Language/语言: [English] [繁体中文]

前言

本仓库列举了一种通过穷举实现对Zenly APP幽灵模式的精确位置获取方法。

什么是Ghost(幽灵)模式👻

Zenly被开发为使用一种有趣的方式来联系和分享你的位置。但是,我们知道有时出于各种原因,你可能不想分享你的精确实时位置,这就是为什么我们开发了Ghost(幽灵)模式,允许你自己决定谁看可以看到什么!Ghost模式可以分别对一个,一些或是所有你的朋友来设置。

有三个选项可供选择:

  1. 精确:显示你的确切实时位置。
  2. 模糊:显示你所在区域的随机位置。距离你的实际位置10米到1.2公里之间。
  3. 冻结:在启用冻结模式之后,你的位置将保持固定在你开启冻结模式之前的最后位置。

开启方法:在Zenly个人资料页面,通过点击位于页面右上角的Ghost(幽灵)图标,可以开启Ghost模式设置界面。

原理

Zenly模糊定位算法每次都会将处于某坐标点的用户做定向偏移,事实上,虽然这看起来十分随机,可是如果你有两个好友处于同一地点,并均开启模糊定位,Zenly服务器会将他们两个的坐标进行定向偏移,然后通过观察,发现他们显示为同一坐标位置,并且头像重合。由此可知, 尽管Zenly的模糊定位属于随机移动,但是该随机坐标并非按用户区分移动,而是固定的随机移动。

于是,可利用该特性,使用安卓模拟器并安装Zenly,然后利用模拟器的虚拟GPS功能,在该好友模糊定位范围内中的坐标进行遍历,如果观察到APP内头像重叠,即可大致判断出其精确位置。

手动攻击

初始化

首先我们需要三个账号来进行攻击验证,分别为 :

  • A - 攻击者
  • B - A的好友
  • C- 攻击者的傀儡机器人

他们三个的关系为:

A作为攻击者,需要获取B的精确位置。

B为A的好友,同时B对A开启了模糊定位。

C是A的傀儡,用于穷举B的精确位置。同时A与C为好友关系,并且C对A也开启了模糊定位,C与B不是好友。

验证

A作为攻击者,账号将用于观察B,C位置。由于B与C对A开启了模糊位置,那么我们需要先确认B的大致范围。

假设B的位置不变,只需要移动C的坐标,若观察到B与C位置重叠,即C的当前坐标为B的坐标。

Zenly的模糊范围实际上是一个正方形,由于APP内显示为圆形范围,所以要取B当前坐标经纬值,加圆形外层一个点的经纬值,并以该距离为边长绘制出一个正方形范围。(根据Zenly官方解释,边长应该是1200M。)

将改正方形平均划分为9个区域,以每个区域中心点为目标修改9次C的坐标,找出9个点显示与C距离最近的区域。

重复执行上述步直至B与C位置重合即判断出C的坐标为B的坐标。

可以使用更多账号来穷举出B的位置,理论上账号越多,速度越快,时间越短。

自动化攻击(思路)

思路

利用安卓模拟器运行两个实例,一个登录攻击者账号(A),另外一个登录机器人账号(C)。

利用openCV与PyAutoGUI来观察并控制实例A与C,获取A的好友B的位置,通过安卓模拟器修改实例C的坐标,直到A观察到B与C的位置重叠,最后打印出C的最后一次位置。

备注

修复

Zenly如果想解决模糊定位的问题,应该对随机算法进行修改,如果检测到大致处于同一坐标的用户,应该对每个用户进行不同的坐标偏移,而不是每次随机偏移的位置一致。

该项目仅作为思路分享,没有任何公开代码,所有实验账号均为本人账号。

zenly-ghost-mode-attack's People

Contributors

evil0ctal avatar github-actions[bot] avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.