Python打造警方捉拿要犯的网络神器,QQ定位系统…

2018-08-17 09:47:37来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

原文丨极客

头条主:空手忆岁月

原文地址:https://www.toutiao.com/i6589472371915096589/

转载必带前面三项

交流群:548377875

效果图:

Python打造警方捉拿要犯的网络神器,QQ定位系统让罪犯无处藏身!

 

开发环境

Python打造警方捉拿要犯的网络神器,QQ定位系统让罪犯无处藏身!

 

python2.7

依赖环境:scapy、geoip2(如果不需要获取对方的所在地可以屏蔽一部分内容)

基于scapy、geoip2

这两个依赖需要自己安装

版本内容:

1.菜单方式

2.可以根据自己的要求随意抓包

3.使用geoip2 获取所在地和gps信息(开源版,数据会有误差)

4.可以发送QQ电话,QQ视频不管Python交流群:548377875对方接不接都能获取对方的IP(如果手机和客户端QQ同时在线需要接通,远程协助(远程协助我没测试,理论上应该可以的)都可以获取对方的IP,发送图片和文件无法获取对方的IP

5.原则上不支持Linux,因为Linux没有QQ,geoip2 也可以不需要,要求附件大小,所以将代码充geoip2部分注释, 并删除掉geoip2 数据库。如果需要geoip2 请自行安装geoip2并打开代码中注释。

Python打造警方捉拿要犯的网络神器,QQ定位系统让罪犯无处藏身!

 

使用步骤:

  1. python QQLocation.py运行
  2. 出现'监听中,请开始QQ通话..'请使用QQ 与对方进行QQ通话(QQ电话),并减少流量通信
  3. 当发现以后会在控制台进行打印

如果有报错,一般Python交流群:548377875是那两个依赖包或者是没有安装 wpcap

Python打造警方捉拿要犯的网络神器,QQ定位系统让罪犯无处藏身!

 

python QQLocation.py

#!/usr/bin/python

# -*- coding:utf8 -*-

print u'''

正在加载相关模块请稍候...

'''

from time import sleep

import sys

import signal

import platform

import os

try:

from scapy.all import IP

from scapy.arch.windows import compatibility

from scapy.all import log_runtime, MTU, ETH_P_ALL, PcapTimeoutElapsed, plist

except:

print u'[>]没有安装scapy,需要安装scapy'

'''

如果需要geoip2 请打开此处注释

try:

import geoip2.database

except:

print u'[>]没有安装geoip2,需要安装geoip2'

'''

systemos = ''

# 判断当前系统

# 其实这里也没用 ,先写上后期可能会用上

def UsePlatform():

global systemos

sysstr = platform.system()

if(sysstr =="Windows"):

systemos = 'Windows'

else: # 其实不准备支持linux 因为linux 上没有QQ

if sysstr =='Linux':

print u'不支持Linux,因为Linux没有QQ'

else:

systemos = 'Windows'

UsePlatform()

# 清理屏幕

# 这里用不上, 清理掉屏幕以后 历史消息就没有了

def clearScr():

global systemos

if systemos == 'Windows':

cal = 'cls'

else:

cal = 'clear'

os.system(cal)

#

def PacketHandler(pkt) :

try:

if pkt.len==100:

sip = pkt.getlayer(IP).src

dip = pkt.getlayer(IP).dst

print sip+'--->'+dip

# 排除局域网 10. 172. 192.168.开头

if not dip.startswith('10.') and not dip.startswith('172.') and not dip.startswith('192.168.'):

print u'对方可疑IP',pkt.getlayer(IP).dst

#getGps(dip) 如果需要geoip2 请打开此处注释

else:

pass # 不做任何处理

# print u'未发现数据包'

except Exception,e:

print e

'''

如果需要geoip2 请打开此处注释

def getGps(ip):

GeoDB = geoip2.database.Reader('./db/GeoLite2-City.mmdb')

res = GeoDB.city(ip)

address = res.country.name + " " + res.city.name

latitude = res.location.latitude

longitude = res.location.longitude

print u'所在地:',address

print u'GPS信息:',latitude,',',longitude

pass

'''

def Menu():

#clearScr() // 这里如果清理了 历史消息就看不到了

print u'}----------------SecQuanQQLocation----------------------{'

print u'[+] 1. 开始'

print u'[+] 2. 清理屏幕'

print u'[+] 99. 退出'

print ' '*5

input = raw_input('SecQuan > ')

#input = raw_input(unicode('请输入编号:','utf-8').encode('gbk'))

if input == '1':

runGo()

elif input == '99':

sys.exit()

else:

clearScr()

Menu()

def quit(signum, frame):

print ''

Menu()

def runGo():

print u'监听中,请开始QQ通话(电话/视频都可以)...Ctrl+C 结束监听'

compatibility.log_runtime = log_runtime

compatibility.MTU = MTU

compatibility.PcapTimeoutElapsed = PcapTimeoutElapsed

compatibility.ETH_P_ALL = ETH_P_ALL

compatibility.plist = plist

signal.signal(signal.SIGINT, quit)

signal.signal(signal.SIGTERM, quit)

# 循环监听

while True:

compatibility.sniff(100,prn = PacketHandler,filter="udp")

print ''

sleep(1)

print u'已停止监听'

# 其实没啥用 就是为了让他输入一次 好知道可以开始了

enter = raw_input (unicode('模块加载完毕,输入任意键继续:','utf-8').encode('gbk'))

clearScr() # 进入系统清理一次屏幕

UsePlatform()

Menu()

#runGo()

本程序仅限用于安全测试,由使用者造成的任何后果自行承担!

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:我用python远程探查室友每天的网页访问记录,他不愧是成年人!

下一篇:课时27:集合:在我的世界里,你就是唯一