Fix incorrectly handeling of unknown filetypes

This commit is contained in:
Joren Schipman 2024-05-01 22:59:59 +02:00
parent 1a8966cb1f
commit 323b6e1f82
Signed by untrusted user who does not match committer: Joren
GPG Key ID: 280E33DFBC0F1B55

View File

@ -183,17 +183,22 @@ func decryptKeyIV(ed string, privateKey *rsa.PrivateKey) ([]byte, error) {
func handleDecrypted(decryptedDataB []byte, uidB []byte) {
data, _ := base64.StdEncoding.DecodeString(strings.TrimSpace(string(decryptedDataB)))
fileType, err := magic.Lookup(data)
if err != nil {
if err == magic.ErrUnknown {
fmt.Println("File type is unknown")
fileType.Extension = "unk"
} else {
panic(err)
}
}
var fileTDef string
if fileType != nil {
fileTDef = fileType.Extension
} else {
fileTDef = "unknown"
}
uid := strings.TrimSpace(string(uidB))
folderPath := fmt.Sprintf("Loot/%s", uid)
err = createFolderIfNotExists(folderPath)
@ -202,7 +207,7 @@ func handleDecrypted(decryptedDataB []byte, uidB []byte){
}
timestamp := time.Now().Unix()
filename := fmt.Sprintf("%d.%s", timestamp, fileType.Extension)
filename := fmt.Sprintf("%d.%s", timestamp, fileTDef)
filePath := fmt.Sprintf("%s/%s", folderPath, filename)
fmt.Println(filePath)
@ -211,9 +216,10 @@ func handleDecrypted(decryptedDataB []byte, uidB []byte){
panic(err)
}
fmt.Printf("Got a %s from %s, saving to %s\n",fileType.Extension,uid,filePath)
fmt.Printf("Got a %s from %s, saving to %s\n", fileTDef, uid, filePath)
}
func createFolderIfNotExists(folderPath string) error {
_, err := os.Stat(folderPath)
if os.IsNotExist(err) {