Fichiers: URL.db ; Log.db ; FileInfo2.db d'Avast! Antivirus

ѠOOT
Geek à longue barbe
Geek à longue barbe
Messages : 1043
Inscription : 28 déc. 2011 19:39

Fichiers: URL.db ; Log.db ; FileInfo2.db d'Avast! Antivirus

Message par ѠOOT » 06 nov. 2014 20:40

Bonjour,

Dans le sujet précédent, j'ai traité de la question Comment ré-initialiser le mot de passe Avast! Antivirus ?
Je profite de l'occasion pour aborder les fichiers URL.db ; Log.db ; FileInfo2.db au format SQLite v3.

Pourquoi s'intéresser à SQLite ?
Image
source: Wikipedia

Quel rapport avec Avast! Antivirus ?
Image

Les fichiers *.db situés dans le répertoire "%ALLUSERSPROFILE%\Application Data\AVAST Software\Avast\" sont verrouillés en lecture/écriture lorsque le service Avast fonctionne. Pour créer un exemple, je commence par copier "URL.db" dans "C:\" puis je vais parcourir les données de ce fichier en utilisant l'utilitaire en ligne de commande ( disponible sous Linux, Mac & Windows ). Dans mon cas, je télécharge, extrait et exécute sqlite3, le client léger 32 bits pour Windows.

J'ouvre la base, j'indique de le fichier de sortie, j'extraie la totalité et je sors.

sqlite> .open URL.db
sqlite> .output URL.txt
sqlite> .dump
sqlite> .exit

Le fichier "URL.txt" contiendra la structure + les données.
C'est un exemple un peu rudimentaire mais le principe est là.

Pour obtenir le schéma de la table URLs:
sqlite> .schema URLs
CREATE TABLE URLs (
Time INTEGER, URL TEXT,
ShortHash INTEGER,
LongHash BLOB PRIMARY KEY,
Flags INTEGER);
CREATE INDEX URLsShortHashIndex ON URLs (ShortHash);


Imaginons... que s'est-il passé le jeudi 6 novembre 2014 après 16:30:00 ?
( Pour la date/heure, voir Epoch & POSIX timestamp )

sqlite> SELECT datetime(Time,'unixepoch'),URL FROM URLs WHERE Time > 1415287800;

Ce qui m'affiche par exemple:
"2014-11-06 16:39:41","local://*C:\WINDOWS\system32\cmd.exe"
"2014-11-06 16:39:46","local://*C:\Program Files\Mozilla Firefox\uninstall\helper.exe"
...


Avec .output vous pouvez facilement exporter les résultats dans des fichiers.
Le mode CSV ( .mode csv )permet de séparer les valeurs par des virgules.
Données que vous pourrez ensuite adapter avec le tableur de la suite LibreOffice.

A quoi ça sert d'exploiter les données brutes ?
Et bien... je vous laisse le soin de trouver des usages.

Histoire de gagner du temps, voici le style d'informations stockées.

URL.db

Code : Tout sélectionner

CREATE TABLE Paths (
  Time INTEGER,
  Path TEXT COLLATE NOCASE UNIQUE,
  ShortHash INTEGER,
  LongHash BLOB PRIMARY KEY,
  Flags INTEGER
);

CREATE TABLE URLs (
  Time INTEGER,
  URL TEXT,
  ShortHash INTEGER,
  LongHash BLOB PRIMARY KEY,
  Flags INTEGER
);

CREATE INDEX PathsPathIndex ON Paths (
  Path COLLATE NOCASE
);

CREATE INDEX URLsShortHashIndex ON URLs (
  ShortHash
);
FileInfo2.db

Code : Tout sélectionner

CREATE TABLE FileInfoMinimal(
  Path TEXT COLLATE NOCASE UNIQUE PRIMARY KEY,
  SHA256 BLOB,
  LastStatus INTEGER,
  FRS_LastQuery INTEGER,
  FRS_Prevalence INTEGER,
  FRS_Emergence INTEGER,
  VirusLabBits INTEGER,
  FRS_Snx_Prevalence INTEGER,
  FRS_Evogen_Ids BLOB,
  FRS_Obsolete_SoftId INTEGER
);
Log.db

Code : Tout sélectionner

CREATE TABLE Adapter (
  Id INTEGER PRIMARY KEY,
  Name TEXT
);

CREATE TABLE Counter (
  Id INTEGER PRIMARY KEY,
  CounterId INTEGER,
  Time INTEGER,
  Count INTEGER
);

CREATE TABLE DailyFwStat (
  Id INTEGER PRIMARY KEY,
  Time INTEGER,
  BytesIn INTEGER,
  BytesOut INTEGER,
  ItemType INTEGER,
  ItemSubtype INTEGER
);

CREATE TABLE DailyResStat (
  Id INTEGER PRIMARY KEY,
  Time INTEGER,
  FileSystemShield_Scanned INTEGER,
  FileSystemShield_Infected INTEGER,
  IMShield_Scanned INTEGER,
  IMShield_Infected INTEGER,
  P2PShield_Scanned INTEGER,
  P2PShield_Infected INTEGER,
  EmailShield_Scanned INTEGER,
  EmailShield_Infected INTEGER,
  WebShield_Scanned INTEGER,
  WebShield_Infected INTEGER,
  NetworkShield_Scanned INTEGER,
  NetworkShield_Infected INTEGER,
  ScriptShield_Scanned INTEGER,
  ScriptShield_Infected INTEGER,
  AntiSpamShield_Scanned INTEGER,
  AntiSpamShield_Infected INTEGER,
  BehaviorShield_Scanned INTEGER,
  BehaviorShield_Infected INTEGER,
  ExchangeShield_Scanned INTEGER,
  ExchangeShield_Infected INTEGER,
  SharepointShield_Scanned INTEGER,
  SharepointShield_Infected INTEGER
);

CREATE TABLE Event (
  Id INTEGER PRIMARY KEY,
  Time INTEGER,
  Level INTEGER,
  Module INTEGER,
  MessageId INTEGER,
  Param1 INTEGER,
  Param2 INTEGER,
  Param3 TEXT,
  Param4 TEXT
);

CREATE TABLE MonthlyFwStat (
  Id INTEGER PRIMARY KEY,
  Time INTEGER,
  BytesIn INTEGER,
  BytesOut INTEGER,
  ItemType INTEGER,
  ItemSubtype INTEGER
);

CREATE TABLE MonthlyResStat (
  Id INTEGER PRIMARY KEY,
  Time INTEGER,
  FileSystemShield_Scanned INTEGER,
  FileSystemShield_Infected INTEGER,
  IMShield_Scanned INTEGER,
  IMShield_Infected INTEGER,
  P2PShield_Scanned INTEGER,
  P2PShield_Infected INTEGER,
  EmailShield_Scanned INTEGER,
  EmailShield_Infected INTEGER,
  WebShield_Scanned INTEGER,
  WebShield_Infected INTEGER,
  NetworkShield_Scanned INTEGER,
  NetworkShield_Infected INTEGER,
  ScriptShield_Scanned INTEGER,
  ScriptShield_Infected INTEGER,
  AntiSpamShield_Scanned INTEGER,
  AntiSpamShield_Infected INTEGER,
  BehaviorShield_Scanned INTEGER,
  BehaviorShield_Infected INTEGER,
  ExchangeShield_Scanned INTEGER,
  ExchangeShield_Infected INTEGER,
  SharepointShield_Scanned INTEGER,
  SharepointShield_Infected INTEGER
);

CREATE TABLE Path (
  Id INTEGER PRIMARY KEY,
  Name TEXT COLLATE NOCASE
);

CREATE TABLE Process (
  Id INTEGER PRIMARY KEY,
  Name TEXT
);

CREATE TABLE ScanResult (
  Id INTEGER PRIMARY KEY AUTOINCREMENT,
  SessionId INTEGER,
  PathId INTEGER,
  Virus TEXT,
  Type INTEGER,
  Error INTEGER,
  Flags INTEGER,
  VirusFlags INTEGER,
  Time INTEGER
);

CREATE TABLE ScanSession (
  Id INTEGER PRIMARY KEY,
  Type INTEGER,
  TaskGuid TEXT,
  TestedFiles INTEGER,
  TestedFolders INTEGER,
  TestedData INTEGER,
  InfectedFiles INTEGER,
  Started INTEGER,
  RunTime INTEGER,
  Status INTEGER,
  Error INTEGER,
  Percent INTEGER,
  LastScanned TEXT,
  Flags INTEGER
);

CREATE TABLE WeeklyFwStat (
  Id INTEGER PRIMARY KEY,
  Time INTEGER,
  BytesIn INTEGER,
  BytesOut INTEGER,
  ItemType INTEGER,
  ItemSubtype INTEGER
);

CREATE TABLE WeeklyResStat (
  Id INTEGER PRIMARY KEY,
  Time INTEGER,
  FileSystemShield_Scanned INTEGER,
  FileSystemShield_Infected INTEGER,
  IMShield_Scanned INTEGER,
  IMShield_Infected INTEGER,
  P2PShield_Scanned INTEGER,
  P2PShield_Infected INTEGER,
  EmailShield_Scanned INTEGER,
  EmailShield_Infected INTEGER,
  WebShield_Scanned INTEGER,
  WebShield_Infected INTEGER,
  NetworkShield_Scanned INTEGER,
  NetworkShield_Infected INTEGER,
  ScriptShield_Scanned INTEGER,
  ScriptShield_Infected INTEGER,
  AntiSpamShield_Scanned INTEGER,
  AntiSpamShield_Infected INTEGER,
  BehaviorShield_Scanned INTEGER,
  BehaviorShield_Infected INTEGER,
  ExchangeShield_Scanned INTEGER,
  ExchangeShield_Infected INTEGER,
  SharepointShield_Scanned INTEGER,
  SharepointShield_Infected INTEGER
);

CREATE TABLE YearlyFwStat (
  Id INTEGER PRIMARY KEY,
  Time INTEGER,
  BytesIn INTEGER,
  BytesOut INTEGER,
  ItemType INTEGER,
  ItemSubtype INTEGER
);

CREATE TABLE YearlyResStat (
  Id INTEGER PRIMARY KEY,
  Time INTEGER,
  FileSystemShield_Scanned INTEGER,
  FileSystemShield_Infected INTEGER,
  IMShield_Scanned INTEGER,
  IMShield_Infected INTEGER,
  P2PShield_Scanned INTEGER,
  P2PShield_Infected INTEGER,
  EmailShield_Scanned INTEGER,
  EmailShield_Infected INTEGER,
  WebShield_Scanned INTEGER,
  WebShield_Infected INTEGER,
  NetworkShield_Scanned INTEGER,
  NetworkShield_Infected INTEGER,
  ScriptShield_Scanned INTEGER,
  ScriptShield_Infected INTEGER,
  AntiSpamShield_Scanned INTEGER,
  AntiSpamShield_Infected INTEGER,
  BehaviorShield_Scanned INTEGER,
  BehaviorShield_Infected INTEGER,
  ExchangeShield_Scanned INTEGER,
  ExchangeShield_Infected INTEGER,
  SharepointShield_Scanned INTEGER,
  SharepointShield_Infected INTEGER
);

CREATE TABLE sqlite_sequence(
  name,seq
);

CREATE INDEX PathNameIndex ON Path (
  Name COLLATE NOCASE
);


‮Vous aimez la sécurité informatique ? Dopez vos neurones, achetez MISCMAG !
...nuf rof tsuJ


Répondre

Revenir vers « Tech, Tips & Tricks »