ℹ ATENÇÃO
desde o macOS 13 (Ventura), o banco de dados do histórico de chamadas parece não estar criptografado. Você pode executar o programa com o sinalizador
-no-key
para visualizar o histórico de chamadas. O sinalizador-k
não é mais necessário, mas ainda está disponível para versões anteriores do macOS.
Converte o histórico de chamadas do MacOS X para o formato de arquivo CSV.
Esta é a implementação Golang do Call History Decryptor do n0fates e é baseada na apresentação do n0fate que descreve os componentes internos do banco de dados: https://papers.put.as/papers/macosx/2014/Forensic-artifacts-for-Yosemite- histórico de chamadas e análise de sms-ENG.pdf
A motivação para esta implementação foi:
Todo o crédito pela lógica de descriptografia vai para n0fate.
Descriptografe e salve o histórico de chamadas do macOS em um arquivo CSV.
Os downloads estão disponíveis na página Lançamentos.
O programa cria uma cópia do banco de dados original em um diretório temporário e opera nessa cópia. Após a impressão do histórico de chamadas, o arquivo temporário é excluído.
O banco de dados original não é alterado durante a execução.
Para referência: o macOS armazena os dados do histórico de chamadas no seguinte local:
"$HOME/Library/Application Support/CallHistoryDB/CallHistory.storedata"
Inicie o programa com o sinalizador de linha de comando -h
para ver a ajuda de uso.
Uso simples:
$ ./osx-callhistory-decryptor [flags] [database_file]
Onde database_file
é opcional no macOS (no Windows você terá que fornecer o nome do arquivo).
Abra o Terminal.app. (Como?)
Inicie o descriptografador do histórico de chamadas:
$ ./osx-callhistory-decryptor
Ele tentará localizar o arquivo de histórico de chamadas padrão, fazer uma cópia temporária e abri-lo.
Se você receber a mensagem "Operação não permitida" nos MacOS mais recentes:
Será solicitada a senha de logon do usuário - isso permite que o programa busque a chave de criptografia do histórico de chamadas nas chaves do OS X. Você também pode fornecer a chave de criptografia do histórico de chamadas manualmente usando o sinalizador de linha de comando -k
. Exemplo:
$ ./osx-callhistory-decryptor -k YSBzZWNyZXQga2V5IDEyCg==
A saída será impressa no terminal por padrão. Você pode especificar um arquivo de saída fornecendo o sinalizador de linha de comando -o
:
$ ./osx-callhistory-decryptor -o output.csv
Se, por algum motivo, você desejar abrir um arquivo diferente do padrão, o primeiro parâmetro da linha de comando deverá conter a localização do nome do arquivo:
$ ./osx-callhistory-decryptor -o output.csv Calls.db
Por padrão, o formato de hora é RFC3339 sem o separador de hora/data "T" ( "2006-01-02 15:04:05Z07:00"
). Opcionalmente, pode-se alterar esse comportamento com o sinalizador -time-format
passando um formato diferente. Por exemplo, se for necessário ter apenas uma data e hora, invoque o programa da seguinte forma:
$ ./osx-callhistory-decryptor -time-format="2006-01-02 15:04"
A formatação é descrita detalhadamente na documentação do pacote Go time.
Você precisará obter o banco de dados e a chave de criptografia do sistema macOS original.
Obtenha a cópia do CallHistory.storedata
da máquina OS X de origem. O arquivo é armazenado neste local:
$HOME/Library/Application Support/CallHistoryDB/CallHistory.storedata
com $HOME
sendo o diretório inicial do usuário.
Copie-o para o mesmo diretório onde você descompactou o 'callhistory'
Obtenha a chave do chaveiro de origem do macOS X:
Abra o terminal ou prompt cmd.exe no Windows (como?). Inicie o descriptografador do histórico de chamadas em sua máquina:
C:>osx-callhistory-decryptor.exe -k <key value from step 2> <filename from step 1>
A saída será impressa no terminal por padrão. Você pode especificar um arquivo de saída fornecendo o sinalizador de linha de comando -o
:
C:>osx-callhistory-decryptor.exe -o your_ex_callhistory_lol.csv <filename from step 1>
Decodificador de histórico de chamadas do OS X
Copyright (C) 2016 n0fate (licença GPL2)
Copyright (C) 2018-2021 rusq (implementação golang, GPL3)
Este programa é software livre: você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation, seja a versão 3 da Licença ou (a seu critério) qualquer versão posterior.
Este programa é distribuído na esperança de que seja útil, mas SEM QUALQUER GARANTIA; mesmo sem a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO FIM. Veja a Licença Pública Geral GNU para mais detalhes.
Você deverá ter recebido uma cópia da Licença Pública Geral GNU junto com este programa. Caso contrário, consulte https://www.gnu.org/licenses/.