Beispiel #1
0
    def __findGeoLocationsInDB(self, databasePath, abstractFile):
        if not databasePath:
            return

        try:
            Class.forName("org.sqlite.JDBC") #load JDBC driver
            connection = DriverManager.getConnection("jdbc:sqlite:" + databasePath)
            statement = connection.createStatement()
        except (ClassNotFoundException) as ex:
            self._logger.log(Level.SEVERE, "Error loading JDBC driver", ex)
            self._logger.log(Level.SEVERE, traceback.format_exc())
            return
        except (SQLException) as ex:
            # Error connecting to SQL databse.
            return

        resultSet = None
        try:
            resultSet = statement.executeQuery("SELECT timestamp, latitude, longitude, accuracy FROM CachedPosition;")
            while resultSet.next():
                timestamp = Long.valueOf(resultSet.getString("timestamp")) / 1000
                latitude = Double.valueOf(resultSet.getString("latitude"))
                longitude = Double.valueOf(resultSet.getString("longitude"))

                attributes = ArrayList()
                artifact = abstractFile.newArtifact(BlackboardArtifact.ARTIFACT_TYPE.TSK_GPS_TRACKPOINT)
                attributes.add(BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LATITUDE, general.MODULE_NAME, latitude))
                attributes.add(BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE, general.MODULE_NAME, longitude))
                attributes.add(BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME, general.MODULE_NAME, timestamp))
                attributes.add(BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PROG_NAME, general.MODULE_NAME, "Browser Location History"))
                # artifact.addAttribute(BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(),moduleName, accuracy))
                # NOTE: originally commented out

                artifact.addAttributes(attributes);
                try:
                    # index the artifact for keyword search
                    blackboard = Case.getCurrentCase().getServices().getBlackboard()
                    blackboard.indexArtifact(artifact)
                except Blackboard.BlackboardException as ex:
                    self._logger.log(Level.SEVERE, "Unable to index blackboard artifact " + str(artifact.getArtifactTypeName()), ex)
                    self._logger.log(Level.SEVERE, traceback.format_exc())
                    MessageNotifyUtil.Notify.error("Failed to index GPS trackpoint artifact for keyword search.", artifact.getDisplayName())

        except SQLException as ex:
            # Unable to execute browser location SQL query against database.
            pass
        except Exception as ex:
            self._logger.log(Level.SEVERE, "Error putting artifacts to blackboard", ex)
            self._logger.log(Level.SEVERE, traceback.format_exc())
        finally:
            try:
                if resultSet is not None:
                    resultSet.close()
                statement.close()
                connection.close()
            except Exception as ex:
                # Error closing database.
                pass
Beispiel #2
0
 def visitAwsEbs(self, ebs):
     r'@types: aws_store.Ebs -> ObjectStateHolder'
     osh = ObjectStateHolder('logical_volume')
     osh.setAttribute('logical_volume_global_id', ebs.getId())
     if ebs.sizeInMb and ebs.sizeInMb.value() is not None:
         size = Double.valueOf(ebs.sizeInMb.value())
         osh.setAttribute('logicalvolume_size', size)
     return osh
Beispiel #3
0
 def visitAwsEbs(self, ebs):
     r'@types: aws_store.Ebs -> ObjectStateHolder'
     osh = ObjectStateHolder('logical_volume')
     osh.setAttribute('logical_volume_global_id', ebs.getId())
     if ebs.sizeInMb and ebs.sizeInMb.value() is not None:
         size = Double.valueOf(ebs.sizeInMb.value())
         osh.setAttribute('logicalvolume_size', size)
     return osh
Beispiel #4
0
    def __findGeoLocationsInDB(self, databasePath, abstractFile):
        if not databasePath:
            return

        try:
            Class.forName("org.sqlite.JDBC")  #load JDBC driver
            connection = DriverManager.getConnection("jdbc:sqlite:" +
                                                     databasePath)
            statement = connection.createStatement()
        except (ClassNotFoundException) as ex:
            self._logger.log(Level.SEVERE, "Error loading JDBC driver", ex)
            self._logger.log(Level.SEVERE, traceback.format_exc())
            return
        except (SQLException) as ex:
            # Error connecting to SQL databse.
            return

        resultSet = None
        try:
            resultSet = statement.executeQuery(
                "SELECT timestamp, latitude, longitude, accuracy FROM CachedPosition;"
            )
            while resultSet.next():
                timestamp = Long.valueOf(
                    resultSet.getString("timestamp")) / 1000
                latitude = Double.valueOf(resultSet.getString("latitude"))
                longitude = Double.valueOf(resultSet.getString("longitude"))

                attributes = ArrayList()
                artifact = abstractFile.newArtifact(
                    BlackboardArtifact.ARTIFACT_TYPE.TSK_GPS_TRACKPOINT)
                attributes.add(
                    BlackboardAttribute(
                        BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LATITUDE,
                        general.MODULE_NAME, latitude))
                attributes.add(
                    BlackboardAttribute(
                        BlackboardAttribute.ATTRIBUTE_TYPE.TSK_GEO_LONGITUDE,
                        general.MODULE_NAME, longitude))
                attributes.add(
                    BlackboardAttribute(
                        BlackboardAttribute.ATTRIBUTE_TYPE.TSK_DATETIME,
                        general.MODULE_NAME, timestamp))
                attributes.add(
                    BlackboardAttribute(
                        BlackboardAttribute.ATTRIBUTE_TYPE.TSK_PROG_NAME,
                        general.MODULE_NAME, "Browser Location History"))
                # artifact.addAttribute(BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_VALUE.getTypeID(),moduleName, accuracy))
                # NOTE: originally commented out

                artifact.addAttributes(attributes)
                try:
                    # index the artifact for keyword search
                    blackboard = Case.getCurrentCase().getServices(
                    ).getBlackboard()
                    blackboard.indexArtifact(artifact)
                except Blackboard.BlackboardException as ex:
                    self._logger.log(
                        Level.SEVERE, "Unable to index blackboard artifact " +
                        str(artifact.getArtifactTypeName()), ex)
                    self._logger.log(Level.SEVERE, traceback.format_exc())
                    MessageNotifyUtil.Notify.error(
                        "Failed to index GPS trackpoint artifact for keyword search.",
                        artifact.getDisplayName())

        except SQLException as ex:
            # Unable to execute browser location SQL query against database.
            pass
        except Exception as ex:
            self._logger.log(Level.SEVERE,
                             "Error putting artifacts to blackboard", ex)
            self._logger.log(Level.SEVERE, traceback.format_exc())
        finally:
            try:
                if resultSet is not None:
                    resultSet.close()
                statement.close()
                connection.close()
            except Exception as ex:
                # Error closing database.
                pass
Beispiel #5
0
 def convertGeo(s):
     length = len(s)
     if length > 6:
         return Double.valueOf(s[0 : length-6] + "." + s[length-6 : length])
     else:
         return Double.valueOf(s)
Beispiel #6
0
def write2ResultsTable(rt, heading, dataA):
	for i in range(len(dataA)):
		rt.setValue(heading, i, Double.valueOf(dataA[i]))
Beispiel #7
0
import math
from java.util import Random
from java.lang import Double

r = Random()

# Series 1 Outputs
#@OUTPUT Double[] series1_xvalues
#@OUTPUT Double[] series1_yvalues
#@OUTPUT Double[] series1_size
#@OUTPUT String[] series1_label
#@OUTPUT String[] series1_color
#@OUTPUT String series1_markerColor

series1_markerColor = "lightgreen"

series1_xvalues = []
series1_yvalues = []
series1_size = []
series1_color = []
series1_label = []

for i in range(99):
    series1_xvalues.append(Double.valueOf(r.nextGaussian()))
    series1_yvalues.append(Double.valueOf(r.nextGaussian()))
    series1_size.append(
        Double.valueOf(4 / math.sqrt(series1_xvalues[i] * series1_xvalues[i] +
                                     series1_yvalues[i] * series1_yvalues[i])))
    series1_color.append("rgb(" + str(r.nextInt(255)) + "," +
                         str(r.nextInt(255)) + "," + str(r.nextInt(255)) + ")")
    series1_label.append("point " + str(i))
Beispiel #8
0
r = Random()

# Series 1 Outputs
#@OUTPUT Double[] series1_values
#@OUTPUT String series1_strokeColor
#@OUTPUT Integer series1_strokeWidth

series1_strokeColor = "rgb(" + str(r.nextInt(255)) + "," + str(
    r.nextInt(255)) + "," + str(r.nextInt(255)) + ")"
series1_strokeWidth = 2

series1_values = []

for i in range(999):
    series1_values.append(Double.valueOf(r.nextGaussian()))

# Series 2 Outputs
#@OUTPUT Double[] series2_values
#@OUTPUT String series2_strokeColor
#@OUTPUT Integer series2_strokeWidth

series2_strokeColor = "rgb(" + str(r.nextInt(255)) + "," + str(
    r.nextInt(255)) + "," + str(r.nextInt(255)) + ")"
series2_strokeWidth = 2

series2_values = []

for i in range(999):
    series2_values.append(Double.valueOf(r.nextGaussian() - 5))
Beispiel #9
0
 def convertGeo(s):
     length = len(s)
     if length > 6:
         return Double.valueOf(s[0 : length-6] + "." + s[length-6 : length])
     else:
         return Double.valueOf(s)