Para comecar, o trabalho foi desenvolvido todo em assembly do processador x86 cuja arquitetura e' a intel IA32. O trabalho tem como objetivo, desenvolver um pseudo virus que altere um programa executavel e o faca continuar funcionando de uma maneira diferente. O desenvolvido por nosso grupo foi o de procurar um padrao de instrucao e troca-la por outra.
Primeiramente teriamos que abrir o diretorio atual e utilizamos a funcao open cujo codigo da intrucao e' 5. Logo apos, utilizamos a funcao SYS_GETDENTS, que foi obtida pela consulta em um trabalho do grupo 7 do semestre passado, faz o mesmo efeito do comando ls -a do kernel do sistema linux. A partir da listagem dos arquivos, a funcao retornava um ponteiro para o nome do primeiro arquivo. Este arquivo foi o escolhido para ser o alterado. Com o auxilio do software khexedit,conseguimos notar que o arquivo binario tem um cabecalho estranho e que logo apos este cabecalho, existe uma sequencia de 0x90. Depois desta sequencia e' que comeca o programa. Pesquisamos na internet o opcode das intrucoes de ADD e depois foi so compara-las no arquivo. A partir dai, foi escolhido pelo grupo a troca de intrucao, decidimos portrocar um ADD por um SUB. Com o auxilio da funcao write, escrevemos no arquivo, substituindo a instrucao. Depois, com a ajuda do mesmo software khexdit, notamos que o arquivo foi alterado. E o mesmo podia ser executado sem erros ou falha de segmentacao. Vale a pena observar que o nosso programa altera o binario do arquivo, substituindo a primeira instrucao de soma com valor imediato encontrada, por uma instrucao de subtracao. O programa montador utilizado foi o nasm, e o compilador escolhido foi o gcc.
Notamos com o desenvolvimento do trabalho que nosso conhecimento na linguagem assembly aumentou consideravelmente e tambem que para desenvolver um sistema maior, temos que evoluir muito. O projeto de desenvolver o virus foi tomado inicialmente como uma tarefa impossivel e com o empenho e dedicacao fomos descobrindo que era possivel desenvolver sim. E tambem como uma das partes mais positivas deste trabalho, foi a de ver uma aplicacao do que foi visto em aula de uma maneira diferente a que estamos acostumados a trabalhar.