能否通过手机号查询他人位置及技术实现(省流:不能)

前言

🍀作者简介:被吉师散养、喜欢前端、学过后端、练过CTF、玩过DOS、不喜欢java的不知名学生。

🍁个人主页:红中

🫒每日emo:纪念我死去的爱情

🍂灵感来源:艺术源于生活,而高于生活

头部声明:如果您是来学怎么定位他人的,不好意思,这是违法行为,我不会,也不会教。

以下是废话

 事情是这样的

今天凌晨,班级群里突然炸了。

虽然我不咋看这群,但因为在我小号里就没设免打扰。

我一看,好家伙,人口失踪(不是

某位同学的一个外地朋友已经失联一天,在群里问该咋办。

秉承着人道主义的关怀

我要了手机号,看看能不能查出来点什么。

简单在网上搜搜

我在网上查了一下,如果搜索“通过手机号查询他人位置”

 woc,居然有,那进去看看,一定要装一波

 

 看到这我就蚌埠住了

“尝试注入防御网”

不了解注入的可以看看我之前的文章今年十八,喜欢SQL注入_迷雾安全-红中的博客-CSDN博客

注入防御网。。。我只能说nb

同时科普一下:(软考要背的

刑法第二百八十五条:

侵入国家事务,国防建设,尖端科学技术领域的计算机信息系统的,处三年以下()

所以说,看到这篇文章的哥们姐们,不要信可以通过手机号即可定位一个人,这在不违法的前提下是假的。

那为什么在某些电视剧里,可以通过手机定位呢?

接下来讲讲技术实现

技术实现

从技术层面上来讲,其实是可以通过手机号定位的

具体通过GPS、卫星系统与基站

普遍情况下

GPS:

只要你还在地球表面,就随时会有六颗卫星在你头顶上转悠。

卫星系统:

 卫星定位系统的地面客户端本质上是无源设备,即不向外发射信号。

仅通过接收卫星信号就可以确定自己的位置。

而卫星不断发出的信号实际上是自己在太空中的位置信息,再通过用信号传输速度乘以卫星与地面之间的传输时间,就可以得出卫星与客户端之间的距离。

也就是说,客户端从卫星那里获得了两个原始数据:卫星的位置,以及卫星距离自己的距离。

接下来需要

极其复杂

的数学运算 

 基站定位:

基站定位顾名思义是就是配合地面信息通讯基站系统来实现的定位。

根据信号发出返回的时间差,再配合基站的地理位置,利用三个基站同时测量就可以准确的测量出个人所在的位置。

 而现在常用的定位方式即为A-GPS

A-GPS(Assisted GPS)即辅助GPS技术,它可以提高 GPS 卫星定位系统的性能。通过移动通信运营基站它可以快速地定位,广泛用于含有GPS功能的手机上。GPS通过卫星发出的无线电信号来进行定位。当在很差的信号条件下,例如在一座城市,这些信号可能会被许多不规则的建筑物、墙壁或树木削弱。在这样的条件下,非A-GPS 导航设备可能无法快速定位,而A-GPS 系统可以通过运营商基站信息来进行快速定位。------百度百科

说原理可能比较晦涩,直接看图

但是这几种定位方式,数据都是在国家手中保存的,就算是公安系统,也许要向上级请示才能够定位。

未经授权的行为是违法的!

接着聊废话

接着说回来,那边可能是人口失踪,刻不容缓

 所以我找了一位在警局工作的朋友求他托关系帮我问问怎么搞。

结果发现这手机关机了。。。

那从信息安全的角度来说行不通,我看看社工可不可以。

简单聊聊社工

最近社工的事件很火,今年阿里信息库泄露,还有更早的一个某公司数据泄露导致现如今大家的信息早已不是秘密。

在电报上,有很多的社工机器人,只要你有对方的手机/QQ/微信等账号,即可爆出对方的姓名,住址,身份信息,学院等等等等

这也俗称为“开盒”

是一种恶劣且严重的违法行为

最后呢,希望能够尽早联系上失联的哥们。

我外卖到了,不写了

 

以下是Java代码示例: ``` Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); String tableName = "call_records"; Table table = connection.getTable(TableName.valueOf(tableName)); Scan scan = new Scan(); scan.setReversed(true); // 按时间倒序查询 FilterList filters = new FilterList(FilterList.Operator.MUST_PASS_ALL); // 构造手机号码反转过滤器 SingleColumnValueFilter reverseFilter = new SingleColumnValueFilter(Bytes.toBytes("cf"), Bytes.toBytes("phone_number"), CompareOperator.NOT_EQUAL, new BinaryComparator(Bytes.toBytes(""))); ReverseStringComparator reverseComparator = new ReverseStringComparator(); reverseFilter.setComparator(reverseComparator); filters.addFilter(reverseFilter); // 构造时间戳过滤器 SingleColumnValueFilter timestampFilter = new SingleColumnValueFilter(Bytes.toBytes("cf"), Bytes.toBytes("timestamp"), CompareOperator.NOT_EQUAL, new BinaryComparator(Bytes.toBytes(""))); filters.addFilter(timestampFilter); scan.setFilter(filters); ResultScanner scanner = table.getScanner(scan); for (Result result : scanner) { String phoneNumber = new StringBuilder(Bytes.toString(result.getValue(Bytes.toBytes("cf"), Bytes.toBytes("phone_number")))).reverse().toString(); String timestamp = Bytes.toString(result.getValue(Bytes.toBytes("cf"), Bytes.toBytes("timestamp"))); String otherPhoneNumber = Bytes.toString(result.getValue(Bytes.toBytes("cf"), Bytes.toBytes("other_phone_number"))); System.out.println("Phone number: " + phoneNumber + ", timestamp: " + timestamp + ", other phone number: " + otherPhoneNumber); } scanner.close(); table.close(); connection.close(); ``` 假设表结构如下: ``` RowKey: 13912345678_20220101120000 Column Family: cf Column: phone_number, timestamp, other_phone_number Value: 13912345678, 20220101120000, 15812345678 ``` 其中 RowKey 由手机号码和时间戳组成,手机号码需要反转。上述代码会按照时间倒序查询所有行,并且过滤掉手机号码、时间戳或对方号码为空的行。查询结果会输出每行的反转后的手机号码、时间戳和对方号码。
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hongzh0

V我点吃KFC

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值