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
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
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
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
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)
def write2ResultsTable(rt, heading, dataA): for i in range(len(dataA)): rt.setValue(heading, i, Double.valueOf(dataA[i]))
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))
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))
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)