JPG图片中默认存在敏感数据,例如位置,相机类型等,可以使用Python脚本提取出来,加以利用,自己手动拍摄一张照片,然后就能解析出这些敏感数据了,对于渗透测试信息搜索有一定帮助,但有些相机默认会抹除这些参数。

提取图片EXIF参数: 通过提取指定图片的EXIF参数结合GPS数据定位到当时拍摄图片的物理位置.

import os,sys,json
import exifread
import urllib.request#调用百度地图API通过经纬度获取位置
def getlocation(lat,lon):   url = "http://api.map.baidu.com/reverse_geocoding/v3/?ak=GPqF0q0uFT4zOmVKmPU7 \gu3SmB9z3jFV&output=json&coordtype=wgs84ll&location="+lat+","+lonreq = urllib.request.urlopen(url)res = req.read().decode("utf-8")string = json.loads(res)jsonResult = string.get("result")formatted_address = jsonResult.get("formatted_address")print("目标所在城市: {}".format(formatted_address))if __name__ == "__main__":if len(sys.argv) < 2:print("[-] 请传递一个图片地址")else:ImageName = str(sys.argv[1])with open(ImageName,'rb') as f:tags = exifread.process_file(f)print("设备品牌: {}".format(tags['Image Make']))print("具体型号: {}".format(tags['Image Model']))print('照片尺寸: {} x {}'.format(tags['EXIF ExifImageWidth'], tags['EXIF ExifImageLength']))print("创建日期: {}".format(tags['Image DateTime']))print("拍摄时间: {}".format(tags["EXIF DateTimeOriginal"].printable))print("GPS处理方法: {}".format(tags['GPS GPSProcessingMethod']))print("GPSTimeStamp: {}".format(tags['GPS GPSTimeStamp']))print("拍摄软件版本: {}".format(tags['Image Software']))#纬度LatRef=tags["GPS GPSLatitudeRef"].printableLat=tags["GPS GPSLatitude"].printable[1:-1].replace(" ","").replace("/",",").split(",")Lat=float(Lat[0])+float(Lat[1])/60+float(Lat[2])/float(Lat[3])/3600if LatRef != "N":Lat=Lat*(-1)#经度LonRef=tags["GPS GPSLongitudeRef"].printableLon=tags["GPS GPSLongitude"].printable[1:-1].replace(" ","").replace("/",",").split(",")Lon=float(Lon[0])+float(Lon[1])/60+float(Lon[2])/float(Lon[3])/3600if LonRef!="E":Lon=Lon*(-1)f.close()print("目标所在经纬度: {},{}".format(Lat,Lon))getlocation(str(Lat),str(Lon))

将图片转为字符图片: 通过pillow图片处理库,对图片进行扫描,然后用特殊字符替换图片的每一个位,生成的字符图片.

from PIL import Image
import argparse# 将256灰度平均映射到70个字符上
def get_char(r,g,b,alpha = 256):ascii_char = list("~!@#$%^&*()_+ ")if alpha == 0:return " "length = len(ascii_char)gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)unit = (256.0 + 1)/lengthreturn ascii_char[int(gray/unit)]if __name__ == "__main__":parser = argparse.ArgumentParser()parser.add_argument("--file",dest="file",help="指定一个图片文件")parser.add_argument("--width",dest="width",type=int,default=50,help="指定图片宽度")parser.add_argument("--height",dest="height",type=int,default=25,help="指定图片高度")args = parser.parse_args()# 使用方式: pip install pillow | main.py --file=xxx.jpgif args.file != None:img = Image.open(args.file)img = img.resize((args.width,args.height), Image.NEAREST)txt = ""for row in range(args.height):for cow in range(args.width):txt += get_char(*img.getpixel((cow,row)))txt += "\n"print(txt)else:parser.print_help()

Python 提取图片中的GPS信息相关推荐

  1. python文字提取关键信息_Python提取图片中的文字信息,腾讯内部技术,一行代码搞定!...

    用过手机QQ就知道,点击一个图片会弹出一个小功能,那就是提取图片中的文字.非常方便实用,那么很难实现吗? 利用Python提取图片中的文字信息,只需要一行代码就能搞定! 当然,这是吹牛皮的,但是真正的 ...

  2. Python利用百度AI提取图片中的文字信息

    Python利用百度AI提取图片中的文字信息 安装百度AI : pip install baidu-aip 到https://console.bce.baidu.com/ai/创建文字识别应用,获取A ...

  3. Python读取安卓手机GPS信息

    问题描述:使用Python读取安卓手机GPS信息,要求手机已经打开GPS. 思考一下: 1)如何在安卓手机上编写Python程序: 2)如何调用安卓系统提供的功能: 3)如何读取GPS数据. 思考上面 ...

  4. 如何快速提取图片中的文字信息、例如加密的pdf、不能复制的pdf文件

    如何快速提取图片中的文字信息.例如加密的pdf.不能复制的pdf文件 1.将需要转换图片通过微信文件助手发送在自己的手机上 2.打开图片,长按图片后点击 "提取文字" 3.点击全选 ...

  5. 基于Tesseract模块Python实现提取图片中的文字信息(安装+使用教程)

    Python实现提取图片中的文字可以使用Optical Character Recognition (OCR) 技术来解决.OCR是指将图像中的文本转换成可编辑的文本的过程.Python有许多OCR库 ...

  6. python提取图片gps坐标,使用Python读取照片的GPS信息

    来源:https://www.cnblogs.com/baby123/p/12213794.html 昨天听人说,用手机拍照会带着GPS信息,原来没注意过这个,因此查看下并使用代码获取照片里的GPS信 ...

  7. python提取图片中的信息

    1.安装PIL(pillow).pytesseract,可通过setting->project:Python->Project Interpreter下载 2.下载识别引擎tesserac ...

  8. Python提取全国水雨情信息(大江大河和、大型水库和实时雨情)

    水利部信息中心的全国水雨情网站(全国水雨情信息)提供了部分江河和水库的日水位和和日流量数据,可通过Python进行提取. 2022年8月27日更新: 加入了自动提取和全国重点站实时雨情,三种数据并保存 ...

  9. python提取图片中的文字自动填表_如何 提取图片中的文字?这款Python 库 4行代码搞定!...

    OCR是什么? 有一款软件叫扫描全能王,想必一些小伙伴听过,这是一个OCR集成软件,可以将图像内容扫描成文字. 所以说,OCR作用是对文本资料的图像文件进行分析识别处理,获取文字及版面信息. OCR的 ...

最新文章

  1. win32线程学习总结(临界区,互斥体,事件,信号量)
  2. android 屏幕完美适配,Android完美适配不同屏幕
  3. allure 测试报告本地打开_Pytest和Allure测试框架(二)
  4. Physics-based Animation 相关
  5. 学习官方SSIS教程的错误总结
  6. 血族群机器人_我的女仆机器人
  7. LightOj 1336(Sigma Function)
  8. springboot总结(一)
  9. 基于ARM-Linux系统开发平台下嵌入式MP3的设计与实现
  10. 搜索计算机硬盘的索引恢复,如何修复Windows 10搜索索引 | MOS86
  11. 紫光扫描仪ocr_清华紫光扫描仪的安装教程及使用方法
  12. DiskLruCache 源码分析
  13. Capstone 专注HDMI转VGA DP转VGA DP转HDMI DP转LVDS TYPEC转HDMI拓展方案+设计PCB板图
  14. 计算机硬盘启动改u为盘启动不了,如果计算机BIOS启动项找不到硬盘应该怎么办...
  15. 网页短链接实现原理探究
  16. Maya_to_Unity工作流程
  17. 最近很火的微信炸屎功能该怎么用?
  18. 【从0到1搭建LoRa物联网】17、LoRa连接到chirpstack
  19. 分布式服务架构下的身份认证
  20. xml在u3d的使用[u3d_rpg游戏开发之物品管理(四)]

热门文章

  1. 【毕业设计】stm32单片机智能扫地机器人 - 嵌入式 物联网
  2. 项目管理概念——projects、programs、portfolio、operations以及OPM
  3. MATLAB 对试验点进行三次拟合
  4. 英语各句子成分的主要作用
  5. 诺基亚计划于下周发布虚拟现实产品
  6. base-package 详解
  7. 失控--阅读笔记群蜂思维
  8. 什么是soft matting方法_NMS、 soft-nms、softer-nms
  9. 群晖消息通知 推送服务器,群晖点滴我知道 篇一:群晖 如何设置微信通知
  10. 为什么一场比赛进3球叫帽子戏法?