From dee8153cb30db890126d8b300bf39c4001acee79 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Mon, 3 Mar 2014 16:28:56 -0500 Subject: [PATCH 1/2] Pulled strings into Bundle. Added _ja. Added NbBundle dep to project.xml --- SevenZip/nbproject/project.xml | 8 ++ .../autopsy/sevenzip/Bundle.properties | 22 ++++++ .../sevenzip/SevenZipContentReadStream.java | 7 +- .../sevenzip/SevenZipIngestModule.java | 73 ++++++++++++------- 4 files changed, 83 insertions(+), 27 deletions(-) diff --git a/SevenZip/nbproject/project.xml b/SevenZip/nbproject/project.xml index ef6d94d674..309b2a4e03 100644 --- a/SevenZip/nbproject/project.xml +++ b/SevenZip/nbproject/project.xml @@ -15,6 +15,14 @@ 1.32.1 + + org.openide.util + + + + 8.25.1 + + org.sleuthkit.autopsy.core diff --git a/SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle.properties b/SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle.properties index 1bbc7f018b..f0540e3482 100644 --- a/SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle.properties +++ b/SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle.properties @@ -7,3 +7,25 @@ OpenIDE-Module-Long-Description=\ The module is supported on Windows, Linux and Mac operating systems. OpenIDE-Module-Name=SevenZip OpenIDE-Module-Short-Description=7Zip Ingest Module +SevenZipContentReadStream.seek.exception.invalidOrigin=Invalid seek origin\: {0} +SevenZipContentReadStream.read.exception.errReadStream=Error reading content stream. +SevenZipIngestModule.moduleName=Archive Extractor +SevenZipIngestModule.moduleDesc.text=Extracts archive files (zip, rar, arj, 7z, gzip, bzip2, tar), reschedules them to current ingest and populates directory tree with new files. +SevenZipIngestModule.encryptionFileLevel=File-level Encryption +SevenZipIngestModule.encryptionFull=Full Encryption +SevenZipIngestModule.init.errInitModule.msg=Error initializing {0} +SevenZipIngestModule.init.errInitModule.details=Error initializing output dir\: {0}\: {1} +SevenZipIngestModule.init.errCantInitLib=Could not initialize 7-ZIP library\: {0} +SevenZipIngestModule.isZipBombCheck.warnMsg=Possible ZIP bomb detected in archive\: {0}, item\: {1} +SevenZipIngestModule.isZipBombCheck.warnDetails=The archive item compression ratio is {0}, skipping processing of this archive item. +SevenZipIngestModule.unpack.warnMsg.zipBomb=Possible ZIP bomb detected\: {0} +SevenZipIngestModule.unpack.warnDetails.zipBomb=The archive is {0} levels deep, skipping processing of this archive and its contents +SevenZipIngestModule.unpack.unknownPath.msg=Unknown item path in archive\: {0}, will use\: {1} +SevenZipIngestModule.unpack.notEnoughDiskSpace.msg=Not enough disk space to unpack archive item\: {0}, {1} +SevenZipIngestModule.unpack.notEnoughDiskSpace.details=The archive item is too large to unpack, skipping unpacking this item. +SevenZipIngestModule.unpack.errUnpacking.msg=Error unpacking {0} +SevenZipIngestModule.unpack.errUnpacking.details=Error unpacking {0}. {1} +SevenZipIngestModule.unpack.encrFileDetected.msg=Encrypted files in archive detected. +SevenZipIngestModule.unpack.encrFileDetected.details=Some files in archive\: {0} are encrypted. {1} extractor was unable to extract all files from this archive. +SevenZipIngestModule.UnpackStream.write.exception.msg=Error writing unpacked file to\: {0} +SevenZipIngestModule.UnpackedTree.exception.msg=Error adding a derived file to db\:{0} diff --git a/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipContentReadStream.java b/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipContentReadStream.java index 8f091f176a..9e180e7829 100644 --- a/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipContentReadStream.java +++ b/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipContentReadStream.java @@ -22,6 +22,7 @@ import java.io.IOException; import java.util.logging.Level; import net.sf.sevenzipjbinding.IInStream; import net.sf.sevenzipjbinding.SevenZipException; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.datamodel.ReadContentInputStream; @@ -57,7 +58,9 @@ public class SevenZipContentReadStream implements IInStream { newPosition = wrapped.seek(offset); break; default: - throw new IllegalArgumentException("Invalid seek origin: " + origin); + throw new IllegalArgumentException( + NbBundle.getMessage(this.getClass(), "SevenZipContentReadStream.seek.exception.invalidOrigin", + origin)); } return newPosition; @@ -82,7 +85,7 @@ public class SevenZipContentReadStream implements IInStream { return readBytes; } catch (IOException ex) { - String msg = "Error reading content stream."; + String msg = NbBundle.getMessage(this.getClass(), "SevenZipContentReadStream.read.exception.errReadStream"); logger.log(Level.SEVERE, msg, ex); throw new SevenZipException(msg, ex); } diff --git a/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipIngestModule.java b/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipIngestModule.java index 0d4637221e..3eb6067e57 100644 --- a/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipIngestModule.java +++ b/SevenZip/src/org/sleuthkit/autopsy/sevenzip/SevenZipIngestModule.java @@ -32,6 +32,7 @@ import java.util.List; import java.util.logging.Level; import net.sf.sevenzipjbinding.ISequentialOutStream; import net.sf.sevenzipjbinding.ISevenZipInArchive; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.ingest.IngestModuleAbstractFile; import org.sleuthkit.autopsy.ingest.IngestModuleInit; @@ -69,8 +70,9 @@ import org.sleuthkit.datamodel.TskData; public final class SevenZipIngestModule extends IngestModuleAbstractFile { private static final Logger logger = Logger.getLogger(SevenZipIngestModule.class.getName()); - public static final String MODULE_NAME = "Archive Extractor"; - public static final String MODULE_DESCRIPTION = "Extracts archive files (zip, rar, arj, 7z, gzip, bzip2, tar), reschedules them to current ingest and populates directory tree with new files."; + public static final String MODULE_NAME = NbBundle.getMessage(SevenZipIngestModule.class, "SevenZipIngestModule.moduleName"); + public static final String MODULE_DESCRIPTION = NbBundle.getMessage(SevenZipIngestModule.class, + "SevenZipIngestModule.moduleDesc.text"); final public static String MODULE_VERSION = Version.getVersion(); private IngestServices services; private volatile int messageID = 0; @@ -82,8 +84,10 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { private String unpackDirPath; //absolute, to extract to private FileManager fileManager; //encryption type strings - private static final String ENCRYPTION_FILE_LEVEL = "File-level Encryption"; - private static final String ENCRYPTION_FULL = "Full Encryption"; + private static final String ENCRYPTION_FILE_LEVEL = NbBundle.getMessage(SevenZipIngestModule.class, + "SevenZipIngestModule.encryptionFileLevel"); + private static final String ENCRYPTION_FULL = NbBundle.getMessage(SevenZipIngestModule.class, + "SevenZipIngestModule.encryptionFull"); //zip bomb detection private static final int MAX_DEPTH = 4; private static final int MAX_COMPRESSION_RATIO = 600; @@ -130,8 +134,11 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { unpackDirPathFile.mkdirs(); } catch (SecurityException e) { logger.log(Level.SEVERE, "Error initializing output dir: " + unpackDirPath, e); - String msg = "Error initializing " + MODULE_NAME; - String details = "Error initializing output dir: " + unpackDirPath + ": " + e.getMessage(); + String msg = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.init.errInitModule.msg", MODULE_NAME); + String details = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.init.errInitModule.details", + unpackDirPath, e.getMessage()); //MessageNotifyUtil.Notify.error(msg, details); services.postMessage(IngestMessage.createErrorMessage(++messageID, instance, msg, details)); throw e; @@ -144,8 +151,10 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { logger.log(Level.INFO, "7-Zip-JBinding library was initialized on supported platform: " + platform); } catch (SevenZipNativeInitializationException e) { logger.log(Level.SEVERE, "Error initializing 7-Zip-JBinding library", e); - String msg = "Error initializing " + MODULE_NAME; - String details = "Could not initialize 7-ZIP library: " + e.getMessage(); + String msg = NbBundle.getMessage(this.getClass(), "SevenZipIngestModule.init.errInitModule.msg", + MODULE_NAME); + String details = NbBundle.getMessage(this.getClass(), "SevenZipIngestModule.init.errCantInitLib", + e.getMessage()); //MessageNotifyUtil.Notify.error(msg, details); services.postMessage(IngestMessage.createErrorMessage(++messageID, instance, msg, details)); throw new RuntimeException(e); @@ -274,10 +283,10 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { String itemName = archiveFileItem.getPath(); logger.log(Level.INFO, "Possible zip bomb detected, compression ration: " + cRatio + " for in archive item: " + itemName); - String msg = "Possible ZIP bomb detected in archive: " + archiveName - + ", item: " + itemName; - String details = "The archive item compression ratio is " + cRatio - + ", skipping processing of this archive item. "; + String msg = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.isZipBombCheck.warnMsg", archiveName, itemName); + String details = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.isZipBombCheck.warnDetails", cRatio); //MessageNotifyUtil.Notify.error(msg, details); services.postMessage(IngestMessage.createWarningMessage(++messageID, instance, msg, details)); @@ -308,9 +317,11 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { if (parentAr == null) { parentAr = archiveDepthCountTree.addArchive(null, archiveId); } else if (parentAr.getDepth() == MAX_DEPTH) { - String msg = "Possible ZIP bomb detected: " + archiveFile.getName(); - String details = "The archive is " + parentAr.getDepth() - + " levels deep, skipping processing of this archive and its contents "; + String msg = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.unpack.warnMsg.zipBomb", archiveFile.getName()); + String details = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.unpack.warnDetails.zipBomb", + parentAr.getDepth()); //MessageNotifyUtil.Notify.error(msg, details); services.postMessage(IngestMessage.createWarningMessage(++messageID, instance, msg, details)); return unpackedFiles; @@ -390,7 +401,8 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { extractedPath = "/" + useName; } - String msg = "Unknown item path in archive: " + archiveFile.getName() + ", will use: " + extractedPath; + String msg = NbBundle.getMessage(this.getClass(), "SevenZipIngestModule.unpack.unknownPath.msg", + archiveFile.getName(), extractedPath); logger.log(Level.WARNING, msg); } @@ -432,8 +444,11 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { if (freeDiskSpace != IngestMonitor.DISK_FREE_SPACE_UNKNOWN && size > 0) { //if known free space and file not empty long newDiskSpace = freeDiskSpace - size; if (newDiskSpace < MIN_FREE_DISK_SPACE) { - String msg = "Not enough disk space to unpack archive item: " + archiveFile.getName() + ", " + fileName; - String details = "The archive item is too large to unpack, skipping unpacking this item. "; + String msg = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.unpack.notEnoughDiskSpace.msg", + archiveFile.getName(), fileName); + String details = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.unpack.notEnoughDiskSpace.details"); //MessageNotifyUtil.Notify.error(msg, details); services.postMessage(IngestMessage.createErrorMessage(++messageID, instance, msg, details)); logger.log(Level.INFO, "Skipping archive item due not sufficient disk space for this item: " + archiveFile.getName() + ", " + fileName); @@ -528,8 +543,11 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { // print a message if the file is allocated if (archiveFile.isMetaFlagSet(TskData.TSK_FS_META_FLAG_ENUM.ALLOC)) { - String msg = "Error unpacking " + archiveFile.getName(); - String details = "Error unpacking " + fullName + ". " + ex.getMessage(); + String msg = NbBundle.getMessage(this.getClass(), "SevenZipIngestModule.unpack.errUnpacking.msg", + archiveFile.getName()); + String details = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.unpack.errUnpacking.details", + fullName, ex.getMessage()); services.postMessage(IngestMessage.createErrorMessage(++messageID, instance, msg, details)); } } finally { @@ -565,9 +583,10 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { logger.log(Level.SEVERE, "Error creating blackboard artifact for encryption detected for file: " + archiveFile, ex); } - String msg = "Encrypted files in archive detected. "; - String details = "Some files in archive: " + archiveFile.getName() + " are encrypted. " - + MODULE_NAME + " extractor was unable to extract all files from this archive."; + String msg = NbBundle.getMessage(this.getClass(), "SevenZipIngestModule.unpack.encrFileDetected.msg"); + String details = NbBundle.getMessage(this.getClass(), + "SevenZipIngestModule.unpack.encrFileDetected.details", + archiveFile.getName(), MODULE_NAME); // MessageNotifyUtil.Notify.info(msg, details); services.postMessage(IngestMessage.createWarningMessage(++messageID, instance, msg, details)); @@ -693,7 +712,9 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { try { output.write(bytes); } catch (IOException ex) { - throw new SevenZipException("Error writing unpacked file to: " + localAbsPath, ex); + throw new SevenZipException( + NbBundle.getMessage(this.getClass(), "SevenZipIngestModule.UnpackStream.write.exception.msg", + localAbsPath), ex); } return bytes.length; } @@ -833,7 +854,9 @@ public final class SevenZipIngestModule extends IngestModuleAbstractFile { } catch (TskCoreException ex) { logger.log(Level.SEVERE, "Error adding a derived file to db:" + fileName, ex); - throw new TskCoreException("Error adding a derived file to db:" + fileName, ex); + throw new TskCoreException( + NbBundle.getMessage(this.getClass(), "SevenZipIngestModule.UnpackedTree.exception.msg", + fileName), ex); } //recurse From b3c0c248c8ed86bc5d896322efa3bf712f903405 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Mon, 3 Mar 2014 16:37:52 -0500 Subject: [PATCH 2/2] Added _ja. --- SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle_ja.properties | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle_ja.properties diff --git a/SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle_ja.properties b/SevenZip/src/org/sleuthkit/autopsy/sevenzip/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2