Injetar função num EXE.

Iniciado por keenlanas, 25 de Setembro , 2009, 01:44:58 AM

tópico anterior - próximo tópico

0 Membros e 1 Visitante estão vendo este tópico.

keenlanas

Tive uma sacada esses dias, na aula sobre Assembly.

O professor estava explicando a instrução Jump e eu imaginei:

Pow, vamos supor que eu descompile um EXE... e adicione um Label, sei lá, "FUNCAO_EVIL" antes da instrução que termina o programa, ir para o inicio do programa, pegar o primeiro e o segundo comando valido e substituir por um "jmp  FUNCAO_EVIL" e um novo label "VOLTA_NORMAL", e então no fim do arquivo, depois do label  "FUNCAO_EVIL" você adicionar O CODIGO QUE VOCÊ QUISER ADICIONAR, e depois dele colocar o primeiro comando, depois o segundo, depois um "jmp VOLTA_NORMAL"
O programa iniciaria, iria pro fim do arquivo, executaria o seu codigo, depois os comandos normais, retornaria pro começo e continuaria suas funções normalmente ^^

Isso faria com que o programa .exe executasse um codigo malicioso sem ter que injetar DLL ou coisa do tipo...

O unico problema é que o numero de bytes da instrução jmp e do label FUNCAO_EVIL tem que ser igual (NEM MAIOR NEM MENOR) que a primeira e a segunda instruções...

Só não faço isso pq sou mto noob em assembly ainda, mas achei uma idéia legal (que concerteza alguém já pensou, mas enfim...) e achei legal compartilhar com os entusiasmados em Assembly... XD

o/

unn4m3D_BR

Bem velho o post, eu sei! Mas.. comentarei de qualquer forma! ;)

Se o autor ainda está por aqui e se ainda não aprendeu codar em asm - pelo tempo, acho difícil não ter aprendido rs - o nome disso que você pensou, se chama code cave. É uma técnica muito usada. ;)

[]'s
Reversing is my life!
www.reversing4life.com

keenlanas

Opa, isso é antigo!! XD

Eu aprendi a codar em asm sim, e eu cheguei a aplicar essa técnica como teste em programas simples em C que eu mesmo escrevi, e funciona.

Mas não consigo fazer com programas mais complexos, eu lembro que tive muitas dificuldades em diversas etapas, desde o disasm, até a edição do asm gerado.

Mas fico feliz que durante uma aula de asm eu tenha chego a conclusão de uma técnica tão utilizada sem nem saber tanto de asm :)

Sheriff

Fazer engenharia reversa em binarios (inserir labels e jmps) eh uma boa com debuggers como o Immunity; depois eh soh exportar modificado, isso eh interessante um pouquinho sim. O problema em fazer isso com softwares grandes depois de uma invasao ao servidor eh o md5 sum, oxi, eh soh alterar tambem.