Monday, September 25, 2017
Garmin GPS What you dont know can track you!
Garmin GPS What you dont know can track you!
Garmin GPS devices track their position by default (caveat: at least every device I have been given to examine!). They will do so, approximately every 30 seconds, when powered on. Notice I said nothing about navigating. Simply powering the devices causes them to start logging their location. While this feature can be disabled, it is buried in the settings and I suspect that most users are not even aware of it.
The data is stored in a GPX file, also know as the Global Positioning Satellite (GPS) Exchange Format. The most current track, appropriately named "Current.gpx," is stored in the "/Garmin/GPX" directory on the device. Older tracks are stored in "/Garmin/GPX/Archive" directory. The archives take on the name "
GPX files are in xml. The Current.gpx file can have interesting entries, including the "Home" address of the device owner. I have used this setting to reunite stolen devices with their owners or thieves back to their homes. But the most interesting information is the device track, which consists of a series of GPS waypoints or "trackpoints" recorded by the device. Here is a sample from an archive file:

There are many ways to handle a GPX file, but I have found it is most useful to convert it to a KML, or Key Hole Markup Language, file for use with Google Earth. While I know that Google Earth is not an open sourced application, and other tools like "gpxviewer" can map the GPX file directly, most of the people I support are Windows users that have experience with Google Earth.
There are two methods I am aware of for creating KML files. The first is using an online resource, like GPSVisualizer. Just complete the online form and upload your file to make a map that meets your requirements. Other formats, besides Google Earth, are possible, including Google Maps, JPG, PNG, SVG, and text.
I dont like to rely on websites, however, because Internet connectivity is never assured. Enter GPSBabel. GPSBabel is a command line tool (gui available) to convert over 100 different types of GPS data formats. A basic conversion can be as simple as:
gpsbabel -i gpx -f input.gpx -o kml -F output.kmlThere are numerous options, that I wont cover here, to customize your output file. They include labeling the way points with the date and time they were created, allowing you to easily visualize the track. Id recommend the use of a GUI to familiarize yourself with the customization options, though be aware that the GUIs seldom provide all available options.
I have used Garmin GPX files to map a suspects travels and place him them at crime scenes. I hope with this information you will be able to do so, too!
download file now
Wednesday, September 20, 2017
Getting to know the Relatives SQLite Databases
Getting to know the Relatives SQLite Databases
I was contacted by a colleague who needed some help analyzing a SQLite database. It was the myspace.messaging.database#database located in the "Users
The Challenges of SQLite
Lets face it: SQLite is everywhere. Understanding it is essential to good examinations, and a big part of that understanding come from learning SQL statements. There are many good online sources for learning SQL, and one of my favorites is w3schools.com.But, for digital forensics practitioners, there is another challenge beyond understanding SQL commands--understanding the construction and relationships of the tables. SQLite is a relational database, and the tables are meant to be related to one another to produce a result no possible or impractical from a single table. Knowing how the table was intended to be used can be very difficult... after all, a SQLite database is more akin to a file cabinet, not a secretary who uses the file cabinet.
For example, the secretary can place company bank records in a file called "Financial Records" or she can put them in a file called "Artichokes". It really doesnt matter, because she knows what goes in the file. Someone coming along behind her wont have much trouble finding the bank records in the Financial Records file, but might overlook them them entirely in the Artichokes file. The point is, without the secretary, it might be very hard to understand the filing system.
SQLite databases can be a lot like that. You can see the structure, or the schema as it is called, very easily. But what is not so easily understood is how the structure is intended to be used. That mystery is usually locked up in the application that utilizes the database, but it is not explained in the database itself.
Getting a Clue
To be sure, there can be hints about how tables in a database interrelate. Table and field names often speak volumes. A database called "AddressBook.db" with two tables called "Names" and "Addresses" that have a field in common called "SubjectID" isnt too hard to fathom. If we are lucky enough to be able to run the application that uses the database and test our inferences based on the applications output, our confidence grows (and our understanding, if supported by the outcome, would now be considered reliable).My favorite hints by far are SQL view statements. These are virtual tables that draw their data from other tables in the database (or an attached database). By studying a view statement, you get insight from the database creator how the database was intended to be used... at least in one capacity. Think of a view as a macro: it saves the database user the trouble of repeated typing a frequently used query. And, if the query is frequently used, then you have a good sense of how the database was intended to be used.
What if There are No Clues?
What about circumstances in which there are no clues in the database to help us understand its use. Well, if there are really no clues, then the only safe answer is we look at the data flat, that is to say, we look at the tables individually and we dont relate them in any way. But, there are often less obvious clues than can reveal an underlying relationship... which brings me to the point of this article.
Latent Rows
Latent fingerprint examiners know the term "latent" means hidden or invisible. Latent fingerprints must be revealed to be seen by some external method, such as fingerprint powder. SQLite tables have a latent field, so to speak. And, we can reveal it to help us form relations in a SQLite database.Consider the myspace.messaging.database#database I mentioned in the open paragraph. It has the following schema:
CREATE VIRTUAL TABLE AuthorData USING fts2(AuthorDisplayName, AuthorUserName);
CREATE TABLE AuthorData_content(c0AuthorDisplayName, c1AuthorUserName);
CREATE TABLE AuthorData_segdir( level integer, idx integer, start_block integer, leaves_end_block integer, end_block integer, root blob, primary key(level, idx));
CREATE TABLE AuthorData_segments(block blob);
CREATE TABLE AuthorMetaData (AuthorId INTEGER PRIMARY KEY, AuthorImageUrl TEXT);
CREATE VIRTUAL TABLE MessageData USING fts2(Subject, Body);
CREATE TABLE MessageData_content(c0Subject, c1Body);
CREATE TABLE MessageData_segdir( level integer, idx integer, start_block integer, leaves_end_block integer, end_block integer, root blob, primary key(level, idx));
CREATE TABLE MessageData_segments(block blob);
CREATE TABLE MessageMetaData (MessageId INTEGER PRIMARY KEY, RecipientId INTEGER, AuthorId INTEGER, Folder INTEGER, Status INTEGER, CreatedDate INTEGER);
CREATE TABLE UserSettings (UserId INTEGER PRIMARY KEY, MachineId TEXT, Enabled INTEGER, TimeStamp INTEGER, LastSyncTimeStamp INTEGER, FirstRunIndexPass INTEGER, FirstRunIndexTargetCount INTEGER, OldestMessageId INTEGER, LastServerTotalCount INTEGER);
CREATE INDEX AuthorIdIndex ON MessageMetaData (AuthorId, RecipientId);
CREATE INDEX StatusIndex ON MessageMetaData (Status, CreatedDate);
Now look more closely at two tables of interest,MessageMetaData and MessageData_content:
CREATE TABLE MessageMetaData (MessageId INTEGER PRIMARY KEY, RecipientId INTEGER, AuthorId INTEGER, Folder INTEGER, Status INTEGER, CreatedDate INTEGER);
It would seem from the table names that MessageMetaData contains information about the messages, and MessageData_content contains the messages themselves. But, they dont share any fields that allow the two tables to be related. In other words, which rows of the metadata table correspond to which row of the content table? Do they even correspond at all?
$ sqlite3 myspace.messaging.database#database.db select count(*) from MessageMetaData;
$ sqlite3 myspace.messaging.database#database.db select count(*) from MessageData_content;
1358
Both tables have the same number of records. Hmm, a clue? Quite likely, especially upon study of the table content and the remaining tables contents. In fact conducting a similar study, we find another set of table correspondence: AuthorMetaData and AuthorData_content also have an equal number of records (172, to be exact) but no obvious, interrelated fields.
Unless youve studied SQLite construction in any depth, you probably dont know that it creates a rowid field for every table to act as a primary key. If a table is created with a defined primary key, that primary key is just a alias to the builtin rowid (with one exception outside the scope of this discussion). But the rowid is not represented in the table or database schema, which is probably why you didnt know about it (at least, I didnt until I bought a SQLite book).
Knowing about the rowid, i can now check to see if the two tables have matching rowid fields:
$ sqlite3 myspace.messaging.database#database.db select count(*) from MessageMetaData m, MessageData_content c where m.rowid = c.rowid
1358
We dont have to trust the count function, take a look for yourself:
$ sqlite3 myspace.messaging.database#database.db select m.rowid, c.rowid from MessageMetaData m, MessageData_content c where m.rowid = c.rowid
...
81407357|81407357
81416917|81416917
81504605|81504605
81505714|81505714
81530947|81530947
81569294|81569294
The Proof is in the Pudding
sqlite> create table numbers(digit integer);
sqlite> insert into numbers (digit) values(1);
sqlite> insert into numbers (digit) values(2);
sqlite> insert into numbers (digit) values(3);
sqlite> select rowid, digit from numbers;
1|1
2|2
3|3
4|3
sqlite> insert into numbers (rowid, digit) values (1000, 4);
sqlite> select rowid, digit from numbers;
1|1
2|2
3|3
4|3
1000|4
Putting it All Together
$ sqlite3 -header myspace.messaging.database#database.db select * from MessageMetaData limit 1;
MessageId|RecipientId|AuthorId|Folder|Status|CreatedDate
1289081|544962655|41265701|0|2|1280870820000
$ sqlite3 -header myspace.messaging.database#database.db select * from MessageData_content limit 1;
c0Subject|c1Body
Hi|Hey, whats up?
$ sqlite3 -header myspace.messaging.database#database.db select * from AuthorMetaData limit 1;
AuthorId|AuthorImageUrl
-1930729470|http://some_url/img/some_image.png
$ sqlite3 -header myspace.messaging.database#database.db select * from AuthorData_content limit 1;
c0AuthorDisplayName|c1AuthorUserName
A User|auser
sqlite3 -header myspace.messaging.database#database.db select messageid, datetime(createddate/1000, "unixepoch", "localtime") as Date, mm.AuthorID, c0AuthorDisplayName as "Author Display Name", c1AuthorUserName as "Author Username", c0subject as Subject, c1Body as Body from MessageMetaData mm, MessageData_content mc, AuthorData_Content ac, AuthorMetaData am where mm.AuthorID = am.AuthorID and am.rowid = ac.rowid and mm.rowid = mc.rowid limit 2;
MessageId|Date|AuthorId|Author Display Name|Author Username|Subject|Body1289081|2010-08-03 14:27:00|41265701|A User|auser|Hi|Hey, whats up?
I ask you, on which output would you rather examine and report?
Addendum
That last query is really not so scary. Its just long because were grabbing seven fields from four tables, and converting a date stamp. But, in reality, its very straight forward.Lets take a look:
select
messageid,
datetime(createddate/1000, "unixepoch", "localtime") as Date,
mm.AuthorID,
c0AuthorDisplayName as "Author Display Name",
c1AuthorUserName as "Author Username",
c0subject as Subject,
c1Body as Body
from
MessageMetaData mm,
MessageData_content mc,
AuthorMetaData am,
AuthorData_Content ac
where
mm.AuthorID = am.AuthorID
and am.rowid = ac.rowid
and mm.rowid = mc.rowid;
download file now
Tuesday, September 19, 2017
Top 5 Best Youtube Tricks Every Internet User Should Know
Top 5 Best Youtube Tricks Every Internet User Should Know

Top 5 Youtube Tricks for Every Internet User
1. Download Youtube Video
This is one of the most popular tricks for Youtube. If you want local copy of youtube video for PC and android Mobile, this trick help you.
You just need to add ss before. Below you see a example how you download youtube video.
https://www.youtube.com/watch?v=h01Y40j9_r0
https://www.ssyoutube.com/watch?v=h01Y40j9_r0
Sometimes youtube gives you error like this video not avalaible in your country or age restrictions.

Here is a solution.
https://www.youtube.com/watch?v=h01Y40j9_r0
https://www.youtube.com/v/h01Y40j9_r0
3. Youtube TV website for PC (Beautiful and Clean Youtube)
Now with Youtube TV you can control youtube website from Keyboard-only. This whole website is controlled by Keyboard. youtube.com/tv give you tv experiance in your PC.

In this website all youtube categories comes in very beautiful animation.
If you want something new from Youtube this is. In here you see clean interface. Not any commentbox,suggestion or ad. If you want youtube video without ads try this.
4. Play the Snake Game In Youtube
Ya this is true when you play youtube video you can also play snake game on youtube. When you see loading sign press UP arrow key. Now the loading sign turn into snake game. This is so cool tricks ,so try and prank your friends with this trick.

5. Youtube Search Easter Egg.
When you search these easter eggs in youtube. Youtube responses diffrently. This thing is prankable when you wanna something new with only youtube searches.
"Use the force luke search" (your mouse moves things around)
"Beam me up Scotty" (search results "transport" on the page)
"Doge meme" (all comic book sans)
"Do the Harlem shake" (the page literally does the Harlem shake�with soundtrack)

Try all this trick and if you got any problem contact me at Facebook.
download file now
Wednesday, September 6, 2017
Top 10 KeyBoard Shortcuts Everyone Should Know
Top 10 KeyBoard Shortcuts Everyone Should Know
Ctrl + C or Ctrl + Insert
Ctrl + V or Shift + Insert
Ctrl + Z and Ctrl + Y
Ctrl + F
Alt + Tab or Ctrl + Tab
Ctrl + Back space and Ctrl + Left or Right arrow
Ctrl + S
Ctrl + Home or Ctrl + End
Ctrl + P
Page Up, Space bar, and Page Down
Other Recommended Shortcuts
We also recommend the following keyboard shortcuts, as they can be very useful:Ctrl + O
F2
download file now
Friday, September 1, 2017
The New Google Analytics Home Know Your Data
The New Google Analytics Home Know Your Data
- You can see snippets from a curated set Google Analytics reports, including real time data, with simple and streamlined controls.
- Each snippet is preceded by a helpful question that frames the data, such as �When do your users visit?� or �Where do your users come from?�.
- Want to dig deeper? Hover on any data point for more details or drill into the relevant report with the provided link on each card.
- �Home� is automatically configured based on your setup: For example, if you have Goals or Ecommerce, you�ll see the page change accordingly.
Both of these additions will be rolling out to all users over the next few weeks. We hope these new additions help make it easier for you to get the most out of Google Analytics.
download file now