Universidade Federal De Santa Catarina IMPLEMENTAÇÃO DE
Total Page:16
File Type:pdf, Size:1020Kb
Universidade Federal de Santa Catarina IMPLEMENTAÇÃO DE PROTOCOLO DE CRIPTOGRAFIA BASEADO EM GEOLOCALIZAÇÃO APLICADO AO JOGO COUNTER STRIKE: GLOBAL OFFENSIVE COMO MEDIDA DE PREVENÇÃO A WALLHACKS Matheus Eduardo Mordorst FLORIANÓPOLIS – SC 2017/1 Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Sistemas de Informação IMPLEMENTAÇÃO DE PROTOCOLO DE CRIPTOGRAFIA BASEADO EM GEOLOCALIZAÇÃO APLICADO AO JOGO COUNTER STRIKE: GLOBAL OFFENSIVE COMO MEDIDA DE PREVENÇÃO A WALLHACKS Matheus Eduardo Mordorst FLORIANÓPOLIS – SC 2017/1 Matheus Eduardo Mordorst Implementação de protocolo de criptografia baseado em geolocalização aplicado ao jogo Counter Strike: Global Offensive como medida de prevenção a Wallhacks Trabalho de conclusão de curso apresentado como parte dos requisitos para obtenção do grau de Bacharel em Sistemas de Informação. ________________________ Jean Everson Martina Universidade Federal de Santa Catarina ________________________ João Bosco Mangueira Sobral Universidade Federal de Santa Catarina ________________________ Carla Merkle Westphall Universidade Federal de Santa Catarina ________________________ Ricardo Felipe Custódio Universidade Federal de Santa Catarina Dedicatória Eu dedico este trabalho e artigo à toda a comunidade de pesquisadores científicos que batalham todos os dias para oferecer maior conhecimento para a sociedade, dedico também a todas as pessoas que apoiam a software livre, de código aberto. Agradeço também, ao apoio da minha família que me apoiou muito nesses momentos difíceis, especialmente depois da recente morte do meu pai, Odair Mordorst, que esteve ao meu lado em todas as decisões que tomei, especialmente quanto a minha carreira. Agradecimentos Agradeço ao meu orientador, Jean Martina, por ter dado boas ideias e ajudado levar esse projeto a um ponto além do esperado. Agradeço também aos meus colegas pelos incentivos a sempre aprofundar meus conhecimentos no que gosto. Sumário 1 Introdução ..........................................................................................................................13 1.1 Objetivo Geral .............................................................................................................15 1.2 Objetivos específicos .......................................................................................................15 2. Fundamentação.....................................................................................................................16 2.1 Cenário do protocolo ........................................................................................................16 2.2.1 Usos gerais do protocolo ...........................................................................................19 2.3 Algoritmo Geoencryption ..................................................................................................21 2.4 Métodos atuais de segurança adotados por jogos ...........................................................29 2.4.1 Jogos na Web............................................................................................................29 2.4.2 Autenticação via HTTPS ............................................................................................30 2.4.3 Autenticação através de terceiros no cliente do jogo .................................................31 2.4.4 Conexão direta por TLS .............................................................................................33 2.4.5 Protocolos personalizados .........................................................................................34 2.4.6 Hashing básico ..........................................................................................................36 2.4.7 Sem autenticação ......................................................................................................36 2.5 O que é o CS:GO .............................................................................................................37 2.6 VAC .................................................................................................................................39 2.7 Cheats atuais no CS:GO ..................................................................................................42 3. Proposta ................................................................................................................................49 3.1 Problema .........................................................................................................................50 3.2 Modelo Inicial ...................................................................................................................50 3.3 Obtenção de dados dentro do jogo ..................................................................................50 3.3.1 Obtenção de posições de memória com um Value Dumper ......................................54 3.3.2 Integração do Value Dumper ao Cheat ......................................................................56 3.4 Implementação do GeoEncryption ................................................................................56 3.5 Funcionamento do protocolo aliado ao VAC ....................................................................57 3.6 Implementação do Cheat .................................................................................................58 4. Prova de conceito ..................................................................................................................62 4.1. Criptografia da informação no servidor ...............................................................................62 4.2. Remoção da criptografia no cliente .....................................................................................65 4.2.1. Problemas encontrados ...................................................................................................68 4.3. Comparação com e sem o anti-cheat .................................................................................68 5. Considerações Finais ............................................................................................................70 6. Trabalhos futuros ...................................................................................................................72 7. Referências Bibliográficas .....................................................................................................73 8. Anexos e Apêndices ..............................................................................................................77 8.1 Remoção da criptografia CUDA ...........................................................................................77 8.2 Cheat ...................................................................................................................................89 8.2.1. AutoPistol.cpp ..................................................................................................................89 8.2.1.1 AutoPistol.h ...................................................................................................................89 8.2.2. bhop.cpp ..........................................................................................................................90 8.2.2.1 bhop.h ...........................................................................................................................91 8.2.3. Enums.h ..........................................................................................................................92 8.2.4. Glow.cpp .........................................................................................................................94 8.2.41 glow.h .............................................................................................................................96 8.2.5. includes.h ........................................................................................................................97 8.2.6. LocalPlayer.cpp ...............................................................................................................98 8.2.6.1. LocalPlayer.h .............................................................................................................. 103 8.2.7. Main.cpp ........................................................................................................................ 105 8.2.8. Misc.cpp ........................................................................................................................ 108 8.2.8.1. Misc.h ......................................................................................................................... 111 8.2.9. NoFlash.cpp .................................................................................................................. 113 8.2.9.1. NoFlash.h ................................................................................................................... 113 8.2.10. NoHands.cpp ............................................................................................................... 114 8.2.10.1 NoHands.h ................................................................................................................. 115 8.2.11. Offsets.h ...................................................................................................................... 115 8.2.12. PMemory.cpp .............................................................................................................. 116 8.2.12.1 PMemory.h ...............................................................................................................