IntroducaoIn my last post I analyzed bradesco3.exe focused on screen captures and the trojan functionality, on this post I will describe how to unpack this sample, actually how to manually unpack PECompact.By decision of malwares-br group (4.5 vs 1.5), this post is in Portuguese (pt_BR). I don't see any issue since unpack PECompact tutorials are available in English. In any way, if you have any doubts, do not hesitate to contact me.Como ja brincamos com o trojan no ultimo post e o Rodrigo tambem ja submeteu o trojan para analise comportamental ao anubis, resta agora fazer a analise do codigo. Embora apos executar o trojan varias vezes, tivemos o mesmo resultado (mesma URL e parametros), e interessante analisar o codigo para confirmar que a URL nao e modificada, ou qualquer outra informacao como descobrir o autor ou ate mesmo para se divertir.Este post esta dividido em cinco partes:1) Identificando Packer2) Encontrando OEP3) Dump do processo e recuperando IAT4) Resultados do VirusTotal5) ConclusoesIdentificando PackerAntes de iniciar a analise de codigo eu costumo verificar o md5hash do arquivo, verificar se existe alguma string disponivel interessante e analisar o mesmo com o o PEiD.Para analisar as strings, utilizei o BinText e a mensagem inicial ja indica que o arquivo pode estar compactado. No inicio das strings e possivel identificar as strings "PEC2" e "PECompact2", provavelmente este arquivo foi compacto com o packer PECompact versao 2. Alem destas, nenhuma outra string interessante, somente as DLLs e funcoes utilizadas pelo trojan.O melhor "identificador" de arquivos PE que conheco e o PEiD, ele consegue detectar varios packers e linguagens de programacao. Portanto, para melhorar a tese de que este arquivo foi compactado com o PECompact, utilizei o PEiD. Note que pode acontecer do autor inserir algumas strings que aparentemente sejam de algum packer e na verdade nao sao. Por exemplo, neste caso caso o PEiD identifique o arquivo como sendo compactado pelo PECompact a partir das strings "PEC2" e "PECompact2", o autor poderia inserir essas strings somente para dificultar a analise, fazendo com o que o analista acredite que o arquivo foi compactado com o PECompact onde na verdade nao foi. Isso pode dificultar ferramentas automatizadas de unpacking. Ja sabemos que o arquivo esta provavelmente compactado com o PECompact, entao agora e hora de analisar o codigo e possivelmente descompactar o mesmo. Para isso, irei utilizar o OllyDBG.Encontrando o OEPBasicamente, descompactar ou "desempacotar" o arquivo consiste em encontrar o OEP (Original Entry Point) do programa, ou seja, o inicio do programa. Note que a primeira instrucao salva o endereco 0x00525c48 no EAX. Verificando este endereco foi possivel notar um "JMP EAX" um pouco abaixo, no endereco 0x00525D0A.Por que o interesse pelo "JMP EAX"? Em alguns packers, e e o caso do PECompact, eles salvam o OEP no EAX e quando terminam de descompactar o arquivo, retornam para o OEP para que o programa seja executado normalmente. Portanto, conseguindo acessar o "JMP EAX", provavelmente consigamos acessar o OEP e descompactar (ou fazer um "dump") do arquivo. Portanto, o objetivo e colocar um breakpoint no endereco 0x00525D0A para que possamosacessar