Package jadx.zip.security
Class JadxZipSecurity
- java.lang.Object
-
- jadx.zip.security.JadxZipSecurity
-
- All Implemented Interfaces:
IJadxZipSecurity
public class JadxZipSecurity extends java.lang.Object implements IJadxZipSecurity
-
-
Constructor Summary
Constructors Constructor Description JadxZipSecurity()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetMaxEntriesCount()Max entries count expected in a zip file, fail zip open if the limit exceeds.booleanisInSubDirectory(java.io.File baseDir, java.io.File file)Check if a file will be inside baseDir after a system resolves its pathbooleanisValidEntry(IZipEntry entry)Check if zip entry is valid and safe to processbooleanisValidEntryName(java.lang.String entryName)Checks that entry name contains no any traversals and prevents cases like "../classes.dex", to limit output only to the specified directorybooleanisZipBomb(IZipEntry entry)voidsetMaxEntriesCount(int maxEntriesCount)voidsetUseLimitedDataStream(boolean useLimitedDataStream)voidsetZipBombDetectionFactor(int zipBombDetectionFactor)voidsetZipBombMinUncompressedSize(int zipBombMinUncompressedSize)booleanuseLimitedDataStream()Use limited InputStream for entry uncompressed data
-
-
-
Method Detail
-
isValidEntry
public boolean isValidEntry(IZipEntry entry)
Description copied from interface:IJadxZipSecurityCheck if zip entry is valid and safe to process- Specified by:
isValidEntryin interfaceIJadxZipSecurity
-
useLimitedDataStream
public boolean useLimitedDataStream()
Description copied from interface:IJadxZipSecurityUse limited InputStream for entry uncompressed data- Specified by:
useLimitedDataStreamin interfaceIJadxZipSecurity
-
getMaxEntriesCount
public int getMaxEntriesCount()
Description copied from interface:IJadxZipSecurityMax entries count expected in a zip file, fail zip open if the limit exceeds. Return -1 to disable entries count check.- Specified by:
getMaxEntriesCountin interfaceIJadxZipSecurity
-
isValidEntryName
public boolean isValidEntryName(java.lang.String entryName)
Checks that entry name contains no any traversals and prevents cases like "../classes.dex", to limit output only to the specified directory- Specified by:
isValidEntryNamein interfaceIJadxZipSecurity
-
isInSubDirectory
public boolean isInSubDirectory(java.io.File baseDir, java.io.File file)Description copied from interface:IJadxZipSecurityCheck if a file will be inside baseDir after a system resolves its path- Specified by:
isInSubDirectoryin interfaceIJadxZipSecurity
-
isZipBomb
public boolean isZipBomb(IZipEntry entry)
-
setMaxEntriesCount
public void setMaxEntriesCount(int maxEntriesCount)
-
setZipBombDetectionFactor
public void setZipBombDetectionFactor(int zipBombDetectionFactor)
-
setZipBombMinUncompressedSize
public void setZipBombMinUncompressedSize(int zipBombMinUncompressedSize)
-
setUseLimitedDataStream
public void setUseLimitedDataStream(boolean useLimitedDataStream)
-
-