• Nenhum resultado encontrado

Testes em Softwares com Proteção à Automação

3.2 Desenvolvimento e Testes

3.2.4 Testes em Softwares com Proteção à Automação

Para que fosse possível efetuar os testes, tanto de desenvolvimento quanto de verificação dos softwares de terceiros, foram desenvolvidos duas classes Java, denominadas “Teclado” e “Mouse”, as quais fazem todo o processo de comunicação com o driver.

Essas classes efetuam a requisição de execução para o driver da forma mais transparente possível, fazendo com que uma simples instanciação da classe e uma chamada de função possam fazer todo o trabalho sem a necessidade de criação e exclusão de todos os arquivos por parte do usuário do driver.

Existem alguns softwares que bloqueiam a automatização de movimentos do mouse e clique de teclas do teclado, esses programas normalmente são jogos, os quais tentam evitar que um processo tente se passar por uma pessoa.

O jogo Rising Force Online é um exemplo de que não se tem como implementar movimentos específicos utilizando programas como os citados no primeiro capítulo, ele tem uma proteção bastante rigorosa, a qual encerra o programa em qualquer tentativa de burlar o seu sistema (Gamescampus, 2014).

Com a utilização deste drive virtual foi possível fazer com que o jogo recebesse ordens de um aplicativo Java e funcionasse corretamente sem o seu travamento contra automatizações de software.

Também foram efetuados testes em antivírus para verificar qual seria o seu comportamento em relação à um dispositivo que altere o ciclo comum entre o hardware e o SO. Foram testados o Karsperky, AVG, Bitdefender e Avast.

Em nenhum dos antivírus testados houve alguma falha na transmissão. Todos eles aceitaram o drive virtual, bem como o driver alterado para o seu controle sem avisar o usuário sobre algum tipo de software mal intencionado.

O único aviso dado ao usuário sobre a sua utilização é durante a instalação quando o usuário é indagado sobre a aceitação do controlador de dispositivo sem a verificação feita por autoridades certificadoras, que neste caso é a Microsoft.

42

CONSIDERAÇÕES FINAIS

O principal objetivo deste trabalho foi desenvolver um dispositivo virtual que efetuasse a comunicação com o SO de forma a emular um hardware físico. Para que tal driver pudesse ser desenvolvido foi necessário o embasamento, por muitas vezes, em ferramentas e rotinas desnecessárias como, por exemplo, a compreensão do DDK que era o antigo software de desenvolvimento de drivers disponibilizado pela Microsoft.

Muitos exemplos que foram usados para a compreensão das chamadas de sistemas foram encontrados no modelo DDK, os quais podem ser utilizados pela extensão WDK, porém devem ser efetuadas algumas trocas de nomenclaturas das palavras reservadas.

A ferramenta desenvolvida neste trabalho pode ser utilizada em vários aspectos, desde a implantação de sistemas totalmente automatizados, onde a escrita e a leitura dos arquivos do dispositivo emulado é efetuada através de softwares que são desenvolvidos especialmente para este tipo de função até a verificação e validação de softwares protetores como, por exemplo, os anti-bot.

Ainda foi possível verificar a complexidade do desenvolvimento de driver, constatando que os recursos são escassos e a utilização das funções são cada vez mais sensíveis, fazendo com que a má utilização destas provocam o congelamento do SO. Além disso, notou-se que a comunidade não apresenta todo seu conhecimento, sendo que apenas são expostos fragmentos de códigos, o que gera muitas vezes mal entendidos por parte dos leigos.

Por fim não se pode esquecer de mencionar a dificuldade na detecção de erros durante a compilação, cuja funções são aceitas durante a compilação, mas não devem ser utilizadas no desenvolvimento de drivers devido ao seu alto consumo de recursos. Além disso, existem chamadas do sistema como, por exemplo, o “fopen”

para a edição de arquivos de texto que são aceitas na escrita, porém na hora de compilar a IDE retorna um erro de compilação recusando esta chamada.

Trabalhos futuros: Visando que com este trabalho foi possível um

aprofundamento teórico, técnico e pratico na área do desenvolvimento de drivers a partir deste ponto almeja-se o desenvolvimento futuro de aplicações mais amigáveis a usuários que não possuem conhecimento necessário para o desenvolvimento de softwares, a qual servirá principalmente como uma macro.

Tendo como principal ideologia a utilização cada vez mais simples das funções do driver desenvolvido neste trabalho por parte de pessoas que não possuem conhecimento técnico na área da ciência da computação. Além disso, baseado no conhecimento atual será possível a melhoria do algoritmo de comunicação entre a aplicação e o driver podendo criar mais de um canal de transferência de comandos.

44

REFERÊNCIAS BIBLIOGRÁFICAS

Autohotkey. Disponível em: <http://www.autohotkey.com/>. Acesso em: 25 set. 2013.

Baixaki_Mouse. Disponível em: <http://www.baixaki.com.br/download/mouse- recorder-pro.htm>. Acesso em: 25 set. 2013.

CAPELLI et al. Dispositivos de E/S mouse. 2013. Disponível em: <http://lasdpc. icmc.usp.br/disciplinas/graduacao/sistemas-operacionais-teorica/2013/engenharia- de-computacao/arquivos-trabalho-3/grupo-3-mouse/SOT3_final.pdf>. Acesso em: 07 out. 2014.

Codeproject. Disponível em: <http://www.codeproject.com/Articles/9504/Driver-

Development-Part-Introduction-to-Drivers>. Acesso em: 07 out. 2014.

DaemonTools. Disponível em: <http://www.daemon-tools.cc/home>. Acesso em: 16

ago. 2013.

FREITAS, A. R.; NUNES, D. M. Análise de desempenho de redes usando

máquinas virtuais. 2013. 107p. Monografia (Bacharelado em Centro de Ciência e

Tecnologia), Universidade do Estado do Rio de Janeiro, Rio de Janeiro, 2013.

FURASTÉ, P. A. Normas técnicas para o trabalho científico: explicitação das normas da ABNT. 17. ed. Porto Alegre: Dáctilo-Plus, 2014.

Gamescampus. Disponível em: <http://rfonline.gamescampus.com/>. Acesso em: 08

jul. 2014.

GOLDSCHMIDT, R. R. Uma introdução à inteligência computacional: fundamentos, ferramentas e aplicações. 2010. Disponível em: <www.faetec.rj.gov.br/ist-rio/images/livros/ic3.pdf>. Acesso em: 25 set. 2013.

HIRATA, R. Otimizando servidores web de alta demanda. 2002. 202p. Dissertação (Mestrado em Ciência da Computação), UNICAMP – Universidade Estadual de Campinas, Campinas, 2002.

Microsoft_Aloc1. Disponível em: < http://msdn.microsoft.com/en- us/library/windows/hardware/ff544520(v=vs.85).aspx>. Acesso em: 04 nov. 2014.

Microsoft_Aloc2. Disponível em: < http://msdn.microsoft.com/en- us/library/windows/hardware/ff548263(v=vs.85).aspx>. Acesso em: 04 nov. 2014.

Microsoft_Assinatura. Disponível em: <http://technet.microsoft.com/pt-br/library/

cc784714(v=ws.10).aspx>. Acesso em: 14 out. 2014.

Microsoft_BCDEdit. Disponível em: <http://msdn.microsoft.com/en-us/library/ windows/hardware/ff542202(v=vs.85).aspx>. Acesso em: 14 out. 2014.

Microsoft_C/C++. Disponível em: <http://msdn.microsoft.com/en-us/windows/ hardware/gg487420.aspx>. Acesso em: 03 out. 2013.

Microsoft_CD-ROM. Disponível em: <http://www.microsoft.com/en-us/download/

details.aspx?id=38780>. Acesso em: 25 set. 2013.

Microsoft_Comunidade Disponível em: <http://msdn.microsoft.com/en-

US/windows/desktop/ aa904945.aspx> Aceso 15 out. 2014.

Microsoft_Cursor. Disponível em: <http://msdn.microsoft.com/en-us/library/windows/

desktop/ms648394(v=vs.85).aspx>. Acesso em: 24 set. 2014.

Microsoft_Dbgprint. Disponível em: <http://msdn.microsoft.com/en-us/library/ windows/hardware/ff543632(v=vs.85).aspx>. Acesso em: 07 out. 2014.

Microsoft_Debug. Disponível em: <http://technet.microsoft.com/en-us/sysinternals/

bb896647.aspx>. Acesso em: 07 out. 2014.

Microsoft_DPInst. Disponível em: <http://msdn.microsoft.com/en-us/library/windows/

hardware/ff553560(v=vs.85).aspx>. Acesso em: 19 out. 2014.

Microsoft_Driver. Disponível em: <http://windows.microsoft.com/pt-BR/windows-

vista/What-is-a-driver>. Acesso em: 31 ago. 2013.

Microsoft_Drivers Disponível em: <http://msdn.microsoft.com/pt- br/windows/hardware/ff960953.aspx> Acesso 15 out. 2014.

Microsoft_Exemplo. Disponível em: <http://code.msdn.microsoft.com/windows

hardware/Windows-8-Driver-Samples-5e1aa62e>. Acesso em: 24 set. 2014.

Microsoft_IExpress. Disponível em: <http://msdn.microsoft.com/en-us/library/ windows/hardware/ff553615(v=vs.85).aspx>. Acesso em: 19 out. 2014.

Microsoft_IOCTL. Disponível em: <http://msdn.microsoft.com/en-us/library/windows/

desktop/bb736550(v=vs.85).aspx>. Acesso em: 06 out. 2014.

Microsoft_Kb. Disponível em: <http://msdn.microsoft.com/pt-br/library/ms171548

(v=vs.110).aspx?cs-save-lang=1&cs-lang=cpp#code-snippet-1>. Acesso em: 24 set. 2014.

Microsoft_Kdprint. Disponível em: <http://msdn.microsoft.com/en-us/library/ windows/hardware/ff548092(v=vs.85).aspx>. Acesso em: 07 out. 2014.

Microsoft_KeRaiseIrql. Disponível em: <http://msdn.microsoft.com/en-us/library/

windows/hardware/ff553079(v=vs.85).aspx>. Acesso em: 07 out. 2014.

Microsoft_Kernel_Usuario. Disponível em: <http://msdn.microsoft.com/en- us/library/windows/hardware/ff564864(v=vs.85).aspx>. Acesso em: 25 set. 2013.

Microsoft_Map1. Disponível em: <http://msdn.microsoft.com/en-us/library/windows/

hardware/ff544520(v=vs.85).aspx>. Acesso em: 06 out. 2014.

Microsoft_Map2. Disponível em: <http://msdn.microsoft.com/en-us/library/windows/

hardware/ff548263(v=vs.85).aspx>. Acesso em: 06 out. 2014.

Microsoft_Mouse. Disponível em: <http://msdn.microsoft.com/en-us/library/windows/

hardware/ff542394(v=vs.85).aspx>. Acesso em: 24 set. 2014.

Microsoft_Mouse_Struct. Disponível em: <http://msdn.microsoft.com/en-us/library/

windows/hardware/ff542403(v=vs.85).aspx>. Acesso em: 24 set. 2014.

Microsoft_Portabilidade. Disponível em: <http://msdn.microsoft.com/en-us/library/

windows/hardware/ff559740(v=vs.85).aspx>. Acesso em: 22 set. 2013.

Microsoft_Prioridades. Disponível em: <http://msdn.microsoft.com/en-us/library/

windows/hardware/ff554368(v=vs.85).aspx>. Acesso em: 06 out. 2014.

Microsoft_RAM. Disponível em: <http://windows.microsoft.com/pt-BR/windows-

vista/What-is-virtual-memory>. Acesso em: 24 set. 2013.

Microsoft_Teclado_Struct. Disponível em: <http://msdn.microsoft.com/en-us/library/

windows/hardware/ff542337(v=vs.85).aspx>. Acesso em: 06 out. 2014.

Microsoft_Tela_Azul. Disponível em: <http://windows.microsoft.com/pt-br/windows7/

resolving-stop-blue-screen-errors-in-windows-7>. Acesso em: 06 out. 2014.

Microsoft_Testsigning. Disponível em: <http://msdn.microsoft.com/en-us/library/

Microsoft_Texto. Disponível em: <http://msdn.microsoft.com/en-us/library/windows/

hardware/ff562824(v=vs.85).aspx>. Acesso em: 07 out. 2014.

Microsoft_Verifier. Disponível em: <http://support.microsoft.com/kb/244617>. Acesso em: 14 out. 2014.

Microsoft_Virtualizador. Disponível em: <http://technet.microsoft.com/en-us/bb

738372>. Acesso em: 18 set. 2013.

Microsoft_Visual_Studio. Disponível em: <http://msdn.microsoft.com/en-us/library/

windows/hardware/ff557573(v=vs.85).aspx>. Acesso em: 12 fev. 2014.

Microsoft_WDK. Disponível em: <http://msdn.microsoft.com/en-US/windows/ hardware/gg454513>. Acesso em: 10 ago. 2014.

Netmarketshare. Disponível em: <http://www.netmarketshare.com/operating-system-

market-share.aspx?qprid=10&qpcustomd=0&qptimeframe=Y>. Acesso em: 12 mar. 2014.

OKUMURA, D. T. Teclados virtuais seguros. 2008. 33p. Monografia (Bacharelado em Ciência da Computação), Universidade Estadual de Mato Grosso do Sul, Dourados, 2008. Disponível em: <http://www.uems.br/portal/biblioteca/repositorio/ 2011-08-11_21-24-27.pdf>. Acesso em: 30 out. 2013.

PEREIRA, F. Microcontroladores PIC: programação em C. 7. ed. São Paulo: Érica, 2007. 358p.

ROHDE et al. As diferentes técnicas de implementação paralela de algoritmos recursivos em C. ERAD – Escola Regional de Alto Desempenho, n. 12, p. 137-140, 2012. Disponível em: <http://www.lbd.dcc.ufmg.br/colecoes/erad-rs/2012/001.pdf>. Acesso em: 14 out. 2014.

SAKURADA, N.; MIYAKE, D. I. Aplicação de simuladores de eventos discretos no processo de modelagem de sistemas de operações de serviço. Gest. Prod., v. 16, n. 1, p. 25-43, 2009. Disponível em: <http://www.scielo.br/pdf/gp/v16n1/v16n1a04.pdf>. Acesso em: 27 out. 2013.

SOUZA, D. R.; WANG, R. D. Ambiente de realidade virtual para treinamento de

videolaparoscopia. 2009. 62p. Monografia (Bacharelado em Núcleo de Ciências

Exatas e Tecnológicas do Curso de Engenharia da Computação), Universidade Positivo, Curitiba, 2009.

TecMundo_Drive. Disponível em: <http://www.tecmundo.com.br/driver/10909-qual-

a-diferenca-entre-drive-e-driver-.htm>. Acesso em: 15 ago. 2013.

TecMundo_Drivevirtual. Disponível em: <http://www.tecmundo.com.br/9564-para-

TOCCI, R. J.; LASKOWSKI, L. P. Microprocessadores e microcomputadores: hardware e software. São Paulo: Prentice-Hall do Brasil Ltda, 1990. 200p.

VmWare. Disponível em: <http://www.vmware.com/br/products/desktop_virtuali

zation/player/>. Acesso em: 16 ago. 2013.

VmWare_Produto. Disponível em: <http://www.vmware.com/br/virtualization/>.

Documentos relacionados