Mapa da aula
Aula 34 publicada. Mapa, exemplo, EX100.
flowchart TD
N0["34.1 Rodar as ferramentas"]
N1["Laboratório — comparação das saídas das ferramentas"]
N2["34.2 Leitura do resultado"]
N3["34.3 Investigar as diferenças"]
N4["34.4 Relato"]
N5["34.5 Conselho prático"]
N6["34.6 Compartilhar com os desenvolvedores"]
N7["34.7 Reprodutibilidade"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
N7 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX100"]
Desenho lógico
flowchart LR
N0["34.1 Rodar as ferramentas"]
N1["Laboratório — comparação das saídas das ferramentas"]
N2["34.2 Leitura do resultado"]
N3["34.3 Investigar as diferenças"]
N4["34.4 Relato"]
N5["34.5 Conselho prático"]
N6["34.6 Compartilhar com os desenvolvedores"]
N7["34.7 Reprodutibilidade"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX100"]
[34.1 Rodar as ferramentas]
|
v
[Laboratório — comparação das saídas das ferramentas]
|
v
[34.2 Leitura do resultado]
|
v
[34.3 Investigar as diferenças]
|
v
[34.4 Relato]
|
v
[34.5 Conselho prático]
|
v
[34.6 Compartilhar com os desenvolvedores]
|
v
[34.7 Reprodutibilidade]
|
v
[Exemplo resolvido] --> [Exercício EX100]
Objetivos de aprendizagem
Você vai (1) executar o estudo comparativo; (2) comparar as saídas das ferramentas com operações de conjuntos; (3) investigar cada diferença; (4) relatar com equidade.
34.1 Rodar as ferramentas
As duas ferramentas processam a imagem sintética na mesma estação de trabalho. Um script normaliza as saídas para uma lista comum de identificadores de artefatos. Normalizar importa porque cada ferramenta nomeia os artefatos de um jeito; uma pode chamar um item de "Run key: Updater" e outra de "HKCU Run". O script mapeia ambos para o identificador run-key, então a comparação é exata. O mapeamento faz parte do arquivo do projeto, para que um revisor possa conferir que nenhum item foi rotulado errado. Rodar as duas ferramentas na mesma estação, uma depois da outra, elimina o hardware como fonte de diferença.
Laboratório — comparação das saídas das ferramentas
"""Compare artefacts reported by two synthetic tools."""
a = {"Q1_budget.xlsm", "update.dll", "notes.txt", "run-key", "prefetch:EXCEL"}
b = {"Q1_budget.xlsm", "update.dll", "run-key", "prefetch:EXCEL", "prefetch:RUNDLL32"}
print("both:", len(a & b))
print("only tool A:", sorted(a - b))
print("only tool B:", sorted(b - a))
Execute com python3 lab_compare.py. Saída verificada:
both: 4
only tool A: ['notes.txt']
only tool B: ['prefetch:RUNDLL32']
34.2 Leitura do resultado
Quatro artefatos são relatados pelas duas ferramentas. Só a ferramenta A relata notes.txt; só a ferramenta B relata uma entrada de prefetch para RUNDLL32. Nenhuma das diferenças é ainda um veredicto: cada uma precisa ser conferida com a verdade de referência e com a imagem bruta. As operações de conjuntos do laboratório mostram a comparação diretamente: a interseção dá os itens comuns e as duas diferenças dão os relatos exclusivos de cada ferramenta. Os operadores de conjuntos do Python fazem disso poucas linhas de código, e a saída pode ser conferida a olho porque os conjuntos são pequenos. Num estudo maior, o mesmo código escalaria para centenas de itens, enquanto a investigação de cada diferença continuaria manual.
34.3 Investigar as diferenças
notes.txt está na verdade de referência como arquivo de usuário plantado; o perfil padrão da ferramenta B excluía arquivos de texto da sua visualização de "atividade do usuário". A entrada de prefetch do RUNDLL32 também foi plantada; o parser de prefetch da ferramenta A a pulou por causa de uma variação de formato. As duas ferramentas, portanto, deixaram de relatar um artefato plantado cada uma, por motivos diferentes. Sem a verdade de referência, as duas diferenças poderiam ter parecido relatos falsos de cada ferramenta. Conferir com a lista de plantados mostrou que ambas eram artefatos reais. As causas são de natureza diferente: uma é uma configuração padrão que o usuário pode mudar; a outra, uma limitação do parser que precisa ser corrigida pelos desenvolvedores.
34.4 Relato
Completude: ferramenta A, 5 de 6 artefatos plantados relevantes; ferramenta B, 5 de 6. Relatos falsos: nenhum em nenhuma das duas. Leah descreve cada falha e sua causa, em vez de classificar as ferramentas. Pontuações iguais escondem problemas muito diferentes, e é por isso que Leah descreve cada falha em vez de classificar. Um perito que sabe que a ferramenta B esconde arquivos de texto por padrão pode mudar a visualização; um que sabe que a ferramenta A pula uma variante de prefetch pode conferir o prefetch com outra ferramenta. Uma classificação teria dado informação menos útil do que as descrições.
34.5 Conselho prático
Os peritos que usam qualquer uma das ferramentas devem conhecer esses pontos cegos; usar duas ferramentas, como neste estudo, detectou ambos. A lição para o trabalho pericial é concreta: quando um tipo de artefato importa para uma conclusão, confirme-o com uma segunda ferramenta ou com uma verificação bruta. A própria verificação da run key feita por Leah no caso da ws-114 seguiu essa prática. Conhecer de antemão os pontos cegos de uma ferramenta é melhor do que descobri-los durante um caso, sob pressão de tempo. Leah acrescenta os dois pontos cegos às notas de ferramentas do laboratório.
34.6 Compartilhar com os desenvolvedores
Com a aprovação do Dr. Ferreira, ela relata o problema de análise do prefetch aos mantenedores da ferramenta, com um arquivo de teste sintético. Um arquivo de teste sintético permite aos mantenedores reproduzir o problema sem nenhum dado real. Leah descreve a variação de formato, a saída esperada e a saída obtida. Relatar o problema ajuda todos os usuários da ferramenta e, se uma correção for lançada, ela pode rodar o teste de novo para confirmá-la. O relato e qualquer resposta ficam no arquivo do projeto, com suas datas.
34.7 Reprodutibilidade
A imagem, a verdade de referência, os scripts e as saídas são arquivados. Arquivar tudo permite que outro estudante, ou a própria Leah mais tarde, rode a comparação de novo e obtenha os mesmos resultados. O manifesto lista cada arquivo com seu hash. Se uma ferramenta for atualizada, o arquivo permite uma comparação limpa entre a versão antiga e a nova na mesma imagem, o que mostraria se o problema do prefetch foi corrigido. O arquivo é guardado com os registros de projetos do curso e listado no apêndice da sua monografia, para que possa ser encontrado depois que ela se formar.
Tempo e usabilidade
A ferramenta A levou 14 minutos, e a ferramenta B, 22, no mesmo hardware. Leah observa que as diferenças de tempo importam para a triagem, mas não para a completude, e registra os problemas de clareza à parte.
Exemplo resolvido
A conclusão dela: "Nesta imagem sintética, cada ferramenta deixou de relatar um artefato plantado — a ferramenta A, uma variante de prefetch; a ferramenta B, um arquivo de texto excluído pela sua visualização padrão. Usar as duas ferramentas, ou ajustar a visualização da ferramenta B, alcançou a cobertura completa."
Caso sintético. As saídas vêm do script do laboratório.
Erros e limites
Seis artefatos são poucos para estimar a completude geral; o valor está nos pontos cegos específicos encontrados.
Exercícios
- EX100 — Resultados dos conjuntos. Relate os resultados do laboratório: ambas/só A/só B.
Mostrar critérios de avaliação
Rubrica: 3 = 4 em ambas; notes.txt; prefetch:RUNDLL32; 2 = dois; 1 = um; 0 = nada. - EX101 — Causas das falhas. Por que cada ferramenta deixou de relatar seu artefato?
Mostrar critérios de avaliação
Rubrica: 3 = a visualização padrão de B exclui texto; o parser de A pulou a variante de formato; 2 = uma; 1 = vago; 0 = nada. - EX102 — Sem classificação. Por que não declarar um vencedor?
Mostrar critérios de avaliação
Rubrica: 3 = completude igual; amostra pequena; os pontos cegos específicos importam; 2 = parcial; 1 = A vence; 0 = nada.
Síntese
Compare as saídas item a item, explique cada diferença e relate os pontos cegos, não classificações.
Continue estudando — capítulo 34 de 40
← Capítulo 33 (rascunho) · Índice de capítulos do curso · Capítulo 35 (rascunho) →