Git Product home page Git Product logo

runblocker's Introduction

Run Blocker

NPM Latest Stable Version Build Status GitHub last commit

- Finalizado!
+ Autor: Gustavo Borges Peres da Silva
# First SOLO Project

Sobre o projeto

Esté é um Programa que bloqueia algum executavel ou algum programa instalado na sua maquina, sendo assim, ao bloquear certos programas ou arquivos, o sistema do windows vai bloquear a execução caso ele esteja na lista de programas bloqueados.

Neste projeto utilizei algumas bibliotecas explicadas abaixo para a manipulação do mesmo e levantamento de dados, no qual é criado 3 arquivos na pasta de origem do executável, no qual dentro desta chamada DATA, o primeiro arquivo que é criado se trata de uma lista de quase todos os programas instalados na maquina do usuário, o segundo arquivo se trata de um banco de dados onde será salvo os arquivos que o usuario bloqueou e o terceiro arquivo é uma lista dos programas que o usuário adicionou de forma externa, ou seja, ele adicionou um arquivo ou um executável atráves da opção de adicionar um programa .exe.

Como realizei a varredura? Realizei uma varredura no editor de registro onde os valores contidos nas pastas HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ são salvas em ArrayLists e no mesmo existe algumas linhas de codigo capaz de diferenciar os .exe com as .dll, no qual toda vez que o usuario iniciar o programa ele cria um arquivo novo contendo a lista dos programas instalados na máquina com o nome de ProgramsInstalled.txt, pois pode ser que no futuro o usuario instale programas novos e para isso seria necessário criar linhas de codigo capaz de atualizar e buscar os dados automaticamente. Ainda falando sobre o arquivo, o outro arquivo criado é uma lista de programas bloqueados contidos na pasta HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun, onde essas chaves serão usadas para criar um ArrayList com a função de mostrar os arquivos bloqueados pelo usuário com o nome de ProgramsBlocked.txt. De modo geral, essa manipulação de arquivo é responsável pela gravação e leitura com a intenção de criar uma tabela na inferface grafica onde o mesmo poderá ser manipulado pelo usuário conforme a necessidade de adicionar algum arquivo executavel (.exe) que não esteja na lista.

Utilizei a biblioteca JNA (Java Native Access) é uma biblioteca desenvolvida pela comunidade que fornece aos programas Java acesso fácil a bibliotecas compartilhadas nativas sem utilizar a Interface Nativa Java. O projeto da JNA visa fornecer acesso nativo de uma forma natural com um mínimo de esforço. Ao contrário da JNI, não é necessária nenhuma placa de caldeira ou código de cola gerada. Usei ela basicamente para mudar a aplicação em um modo legado para que eu consiga realizar a manipulacao no editor de registro do Windows de forma indireta, logo, esse programa não funciona no linux e também precisa ser executado com permissões administrativas.

Futuramente se eu tiver tempo eu vou implementar para linux para um maior conhecimento, caso alguém saiba bloquear a execução de programas no linux me mostre pois estou disposto a aprender já que sou iniciante, obrigado! :)

Além desse codigo ser quase 100% feito em java, eu também criei um arquivo .bat para mim realizar a criação de algumas chaves de registro do jogo League of Legends, que por algum motivo não existem essas chaves nos diretorios: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\

Logo, ao executar o arquivo .bat ele cria uma chave do LeagueClient.exe passando como parametros o path do local do executavel e com isso o meu programa consegue ler e identificar automaticamente o local onde o .exe do League of legends foi instalado.

Conquanto, aproveitando que falei do arquivo bat, esse é um dos motivos principais de eu criar esse programa rsrs, eu ultimamente estou tendo alguns problemas para focar nos estudos e o jogo League Of Legends está ocupando muito meu tempo, sendo assim, resolvi criar essa iniciativa com a intenção de obter mais conhecimento e fazer parte de um dos meus primeiros projetos feitos em JAVA.

Requirimentos

Necessário ter Windows 10 64-bit ou Windows 10 32-bit. O usuário deve ter permissções administrativas para que o programa possa manipular registros do windows.

Instruções

Caso prefira apenas rodar o programa, baixe o executavel correspondente à sua versão disponível no link abaixo:

https://github.com/GustavoBorges13/RunBlocker/releases/tag/v1.6.0

Após isso basta extrair utilizando alguma ferramenta de descompactação.

E por seguinte, basta executar o programa, no qual eu configurei para pedir ao usuario que deia permissões de administração para ler e gravar registros. Do lado esquerdo sáo os programas instalados e adicionados, e o lado direito sáo os programas bloqueados.

Se o programa não funcionar corretamente, certifique-se de estar como administrador e também clicar com o botão direito do mouse em cima da aplicação e executar como administrador pois ainda não sei como configurar corretamente o launch pra salvar as preferencias de compatibilidade pro usuario não precisar fazer isto todas as vezes... e caso o programa acuse como vírus o codigo, fique tranquilo, este codigo foi feito por um estudante portanto o windows não reconhece que o autor é alguem "famoso" ou que possui alguma licença pra elaborar softwares, e além disso o meu codigo mexe com manipulação de arquivos de registro então o vírus que o windows reconhece é nada mais nada menos que um Trojan:Script/Wacatac.H!ml, cujo, de acordo com a makeuseof, se trata de um Wacatac. B! ml é classificado como um Trojan pelo Windows Defender porque entra nos sistemas operativos Windows ao enganar os utilizadores na execução de um ficheiro de aspecto legítimo. No momento em que infecta o seu sistema, coloca-o em risco de roubo de identidade, infecção de dados, e perda financeira. Contudo, meu codigo sim ele entra no editor de registro do windows e pega as informações dos programas instalados na maquina do usuario e joga todas essas informações em um bloco de notas dentro da pasta DATA localizada no mesmo diretorio do arquivo executavel. Além disso, se o usuario bloquear algum programa ele cria outro arquivo e joga os dados neles e também realiza a escritura das informações do programa que o usuario quis bloquear, para desfazer a operação uma vez realizada antes basta o processo inverso de bloquear (selecione o programa e remova e depois aplique). Caso deseja remover manualmente para evitar problemas ou se o programa deu algum bug por favor siga esse procedimento:

Digite Win+R, digite regedit e pressione enter. Após isto aparecerá a tela do editor de registro do windows, logo basta navegar neste diretorio ou dar um ctrl+c e ctrl+v para chegar mais rapido utilizando este endereço -> HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun Após chegar aqui, basta excluir a chave EXPLORER e isso irá tirar todos os programas que bloqueamos e chaves que criamos no editor de registro.

Agora se você veio para testar o League of Legends, primeiro vai ter que executar o script para configurar as chaves de registro do jogo que náo é configurada corretamente pelos desenvolvedores do jogo. Sendo assim, faça o download do source code e navegue até a pasta Scripts e execute-o.

RunBlocker/src/scripts/LoL ADD path.bat

runblocker's People

Contributors

gustavoborges13 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.