Como ‘travar’ um computador usando a Linguagem C

Como ‘travar’ um computador usando a Linguagem C

Olá pessoal…

Hoje irei mostrar como travar um computador utilizando a Linguagem C, lembrando que essa postagem é com cunho estudantil.


Primeiramente pessoal, temos que entender o comando ‘system’ na linguagem C, esse comando é responsável por executar algum comando no terminal do sistema operacional, por exemplo, se eu executar o comando system(“cls”) em ambiente Windows, ele irá executar a limpeza na tela, mas no Linux isso resultará em erro, então em ambientes Linux, teria que utilizar o comando system(“clear”), por exemplo.

A cada comando executado, parte da RAM é reservada para executar esse programa, o que aconteceria se você tivesse um laço infinito abrindo vários programas ao mesmo tempo?… Sua RAM, iria sobrecarregar e o seu PC provavelmente ou iriar reiniciar automaticamente ou travar.

Mas porque ensinar uma forma de fazer isso na Linguagem C?… Simples, ensinar as pessoas a ver como é simples fazer algo complexo com a RAM, e não sair abrindo arquivos executáveis por ai, e até mesmo, desenvolver ferramentas para impedir esses casos, como por exemplo, desenvolver programas, que percebam laços infinitos, e finalizem futuros casos desse tipo (quem sabe alguém aqui não vá trabalhar em uma empresa de anti-vírus).

Vamos ao exemplo:

#include <stdio.h>
 
main(){
  char comando[80]="konsole";
  //laço infinito
  while(1){
    system(comando);
  }
}

No exemplo acima, basicamente, temos uma variável que contém o comando que será executado, nesse exemplo, utilizei o Konsole, porém, poderia ser qualquer comando do SO (Windows: explorer, winword, excel, etc… Linux: k3b, lxdream, etc… Mistos: firefox, gimp, libreoffice, etc…), e esse comando é aberto em um laço de repetição infinito, fazendo com que o programa seja executado sem parar. Abaixo um print do programa rodando em cerca de 3 segundos (sem contar que a CPU também sobe em nível de consumo):

Exemplo de execução
Exemplo de execução

Minha RAM subiu cerca de 3% (de 4GB) em 3 segundos, abriu cerca de 11 janelas.

Bom pessoal, por hoje é só.
Abraços e até a próxima.

About Dan_Atilio

Analista e desenvolvedor de sistemas. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

6 comentários em “Como ‘travar’ um computador usando a Linguagem C

  1. Legal, to aprendendo C e não sabia que o system(“comando”) executava direto no terminal do sistema operacional… Gostei da dica, depois vou executar num VM hehehe 😀

        1. Bom dia Junior, tudo bem?
          A função system, é uma função nativa do C, portanto não é necessário declarar a utilização de alguma biblioteca.
          Abraços.

  2. Uma pergunta, e se eu quiser que o programa abra uma quantidade finita de programas? Por exemplo, colocar uma opção para abrir só 20 cmd.exe ou 10 chrome.exe, entende? Estabelecer um limite. Agradeço.

    1. Boa noite Victor, tudo bem?
      É só fazer um laço finito, seja com for ou com while, por exemplo:

      for (x = 0; x < 20; x++) {
        system(comando);
      }
      

      Espero ter ajudado.
      Abraços.

Deixe uma resposta

%d blogueiros gostam disto: