gps_exif

gps_exif

Многие мобильные телефоны оснащенные GPS навигаторами вставляют информацию о местонахождении в фотографию(т.е. в EXIF).
На написание этого скрипта подвигло выступление одного хакера создавшего сайт мониторинга местоположения через сервис Twitter’a.
В общем для работы скрипта необходимо установить модуль Image::EXIF (sudo cpan -i Image::EXIF), возможно, также придется установить и другой пакет, если первый не будет собираться (sudo cpan -i YAML возможно еще и sudo apt-get install libexif-dev), на выходе получаем собственно сами координаты и название места, где было сделано фото.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/perl
# GPS targeting via EXIF info from your mobile
if ($#ARGV != 0) {
print "usage: perl cam_gps.pl FILE_NAME\n";
exit;
}

use Image::EXIF;
use LWP::Simple;
use Term::ANSIColor;

$filename = $ARGV[0];
my $exif = new Image::EXIF;
$exif->file_name($filename);
my $image_info = $exif->get_image_info();
my $Lat = @$image_info{'Latitude'};
my $Long = @$image_info{'Longitude'};

if (!$Lat){
print "GPS info NULL\n";
exit();
}

$Lat =~ s/N//i;
$Lat =~ s/S/-/i;
$Lat =~ s/\.//i;
$Lat =~ s/\'//i;
$Lat =~ s/\ //i;
$Lat =~ s/([0-9]{1,}).*([0-9]{1,}).([0-9]{1,4})/\1.\2\3/i;
$Long =~ s/W/-/i;
$Long =~ s/E//i;
$Long =~ s/\.//i;
$Long =~ s/\'//i;
$Long =~ s/\ //i;
$Long =~ s/([0-9]{1,}).*([0-9]{1,}).([0-9]{1,4})/\1.\2\3/i;

my $coord = $Lat.",".$Long;

print color 'green';
print "Coord: ".$coord."\n";
print color 'reset';

my $url = "http://maps.google.com/maps/geo?q=".$coord."&output=csv&oe=utf8";
my $content = get $url;
$content =~ s/[0-9]+\,[0-9]+,\"(.*)\"/\1/i;
print color 'red';
print "Photo from: ".$content."\n";
print color 'reset';

UPD: cam_gps_exif — в архив кинул сам скрипт, тестовое изображение и маленькую инструкцию.

Posted on Суббота, Июль 17th, 2010 at 20:08:04 in Программирование, Уязвимости | rss feed for comments| You can skip to the end and leave a response. Pinging is currently not allowed.

Leave a Reply

Страница 1 из 11