Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda! ForkBomb - Windows


FabioArgenton

Pergunta

Fala galera meu professor de Sistemas Operacionais lançou o seguinte desafio:

Criar um ForkBomb que esgote o S.O., até ai tudo bem....o problema foi as perguntas que tem que responder:

1) É possivel saber quanto processos foram de fato criados antes do esgotamento do S.O.?

2) É possivel o processo reverter a situação após esgotamento do S.O.?

3) Que outras informações a teu processo poderá lhe fornecer?

4) Como seria possível o processo garantir que apenas um instancia de si mesmo esteja sendo executada?

Bom criei um laço for() chamando a função shellexecute() um programa qualquer até que emtupa o S.O. de processos derrubando o mesmo, e dentro do laço for a função fprintf() gravando em um arquivo texto a quantidades de processos que foram abertos sendo assim quando o S.O. cair vou ter a qtde de processos que foram necessários.

Segue o código laço for() de 10 apenas para teste:

#include <conio.h>
#include <Windows.h>

int main(int argc, char *argv[])
{
  FILE *arq;
  int i,cont=0;
  int result;
  arq = fopen("teste.txt", "wt");  // Cria um arquivo texto para gravação
  
  if (arq == NULL) // Se nào conseguiu criar
     {
        printf("Problemas na CRIACAO do arquivo\n");        
     }fprintf(arq,"Desenvolvido por: Fabio RA: xxxxxxxxxx\nFundamento de Sistemas Operacionais: ATPS - ForkBomb\n\n");
      fprintf(arq,"Mostrando quantos Processos foram necessários para seu sistema ir pro saco!!\n");
      fprintf(arq,"============================================================================\n\n");     
        
        for (i = 1; i<=10;i++)        
            {
               ShellExecute( NULL,"open","iexplore.exe","","",SW_SHOWNORMAL);
               result = fprintf(arq,"Processo: %d\n",i);                               
                  if (result == EOF)            
                      printf("Erro na Gravacao\n");
            }
        fprintf(arq,"\n******************************\nTotal de Processos: %d",i-1);
            
  fclose(arq);
  system("PAUSE>>null");
}

Será que essa instrução vai derrubar o Windows (Colocando um laço infinito)?

Será que isso resolve meu problema para a pergunta 1?

E em questão as outras perguntas alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...