quarta-feira, 29 de agosto de 2012

Blok Free 4


Desta vez vou diferenciar um pouco o foco do post...esta semana eu estava no laboratório de informatica da faculdade tendo aula de programação (VB) e nas maquinas tem instalado um software chamado "Blok Free 4" este software bloqueia as janelas do tipo "cmd","painel de controle" e etc... ai me deu uma curiosidade (isso que move o mundo...) de burlar a senha do aplicativo em questão....(Gostaria de informar que não utilizei nenhuma maquina de propriedade da faculdade mas sim minha maquina virtual (VirtualBox com windowx XP) em meu notebook  ).

OBJETIVO:
Utilizar técnicas de engenharia reversa para localizar e subverter as instruções que verificam a senha de configuração do software "Blok Free 4" para que não seja mais verificado e passe adiante a execução do programa permitindo acesso ao configurador sem necessidade da senha.

RESUMO:
Em dado momento da execução o aplicativo grava o valor da senha correta no registrador EDX e a senha digitada no registrador EAX na sequencia chama uma função que faz a comparação depois um pulo condicional e realizado baseando se na verificação desta função, a ideia é ignorar este pulo condicional para que a execução continue sem verificar a validação da senha digitada.


Vamos lá...

Primeiro Baixei o programa


depois extrai o arquivo .rar


e prossegui com a instalação normalmente


termo de responsabilidade que não fala nada sobre debugar o executável.......  




local para a instalação


instalação em progresso normalmente


aviso sobre a senha inicial que é "superb"


mais uma apresentação e avisos e pronto


olha lá o cadiadinho que bonito...vamos tentar sem configurar nada acessar o nosso querido prompt "cmd"


por fim ele bloqueia.
Sempre que tentamos alguma interação com o software nos é apresentada a tela de senha.


digitando a senha tudo funciona corretamente.... até aqui temos o software instalado e funcionando.


Vou descobrir com linguagem utilizada no software com o "RDG Packer Detector"


vamos simular algum erro na autenticação...neste processo obtemos informações sobre dois forms



vou me atentar ao form da senha.. Temos um txtbox dois botões um label com o conteudo "Informe a senha" preciso descobrir o endereço de memoria do evento disparado pelo click do botão "ok" para começar a debuggar no OllyDbg. 

Utilizei o programa "E2A - Event to address" para descobrir 


Analisando os forms encontrei o fsen:Tfsen onde a caption do lbl1:TLabel é "Informe a senha" comprovando que este é o formulário correto.


Continuando achei o endereço do event click do botão ok  (00494728 )


Pronto vamos abrir o OllyDbg e carregar o executável

.


Utilizando o comando ctrl+g vamos ao endereço



Aproveitando para utilizar o "F2" colocando um break point


Manda pau....."F9"


Vamos digitar qualquer senha e ao click no Ok teremos a parada do breakpoint


Agora utilizando o "F8" combinado com "F7" partindo do breakpoint vamos escooooovaaaaarrrrr os bits até chegar no endereço 0049463B onde
a senha correta e carregada para o registrador "EDX="superb"" e a senha digitada esta no registrador "EAX=5444"


A proxima instrução é um call para o endereço 00404EB4 - Onde é feita a comparação e validação da senha digitada e da senha correta
apos o retorno da função é feito um JNZ baseado no retorno (Condicional que define o rumo entre senha correta e senha errada)


Creio que esta condicional é o que procurava, vamos utilizar a tecla "espaço" para modificar a instrução do JNZ no endereço 00494642



Modificação Feita, Substitui a instrução original por "nop"


Vamos continuar a execução com o "F9"


Opa validou a senha errada e nos entregou a tela de configuração....
legal então era a condicional correta, embora eu já tivesse obtido a senha nos passos anteriores, eu gostaria de recompilar o executável modificado desabilitando a verificação de senha possibilitando utiliza-lo em outras maquinas

Para isso vamos fazer um reload no ollydbg e utilizando o endereço obtido anteriormente 00494642 vamos direto ao JNZ para modifica-lo


Depois de modificar


Vamos salvar....Selecionando as alterações clico com direito e seleciono "copy to executable -> selection"


Abri uma nova tela


Na nova tela clico com direito e "save file"


Salvo o novo executavel com o "nome cbfiv_MODIFICADO"


Vou navegar até o diretório


E executo o novo arquivo


Vamos digitar uma senha qualquer tipo "1111" e deu certo abriu o configurador vamos desabilitar o cadiadinho chato



Ok conseguimos vamos acessar o prompt "cmd"


Vamos utilizar o exe modificado para alterar a senha do original para "1234"


E vamos acessar direto pelo icone ao lado do relogio com a nova senha "1234"


Deu certo vou desinstalar o "Blok free 4"


Bom consegui atingir meu objetivo agora vou testar a portabilidade deste executavel modificado em outras maquinas se der certo faço um pro windows 7

Falow até a proxima

Nenhum comentário:

Postar um comentário