Ir ao conteúdo
  • Cadastre-se

Gabe Grechuk

Membro Pleno
  • Posts

    89
  • Cadastrado em

  • Última visita

posts postados por Gabe Grechuk

  1. A maioria dos notebook desligam o display quando tem a tampa fechada, mesmo com as configurações de energia do windows em "Não fazer nada". É uma coisa do próprio hardware

     

    Eu desconfio que como a tela está desligada, o Navegador antes de iniciar verifique as informações de saídas de vídeo e quando não encontra, acaba apresentando problemas

     

    Tenta fazer o teste com algum monitor externo ligado ao notebook e com a tampa fechada

    • Curtir 1
  2. Ta aí uma desafio.

     

    Essa config é bem fraquinha pra instalar um android e rodar netflix, por exemplo, então poderia tentar colocar algum linux para rodar em ARM, como um Arch Linux ou um Gentoo se você for mt tryhard, mas ainda assim não da pra fazer muita coisa com essa config e sem informações do hardware você n vai muito além de uma linha de comando

     

    Mas eu dei uma olhadinha no manual dele, e parece ser bem completinho, toca vídeo, pega TV, da pra ler "e-books" (arquivos .txt, mas ta valendo). Talvez colocar alguns livros e alguns filmes em um cartão de memória já da uma função nova pra ele. Mas colocar outro sistema nele provavelmente não vai ficar do jeito que você gostaria

    • Obrigado 1
  3. Se você estiver usando o Windows 10, pode atualizar os drivers direto pelo Windows Update. Se for algum bug de algum driver novo da AMD, instalar o driver WHQL direto pelo Windows resolveria o problema. Caso não resolva, aí pode ser algum outro problema relacionado a hardware ou configuração de vídeo

     

    Convém também postar a configuração da máquina, se é notebook e se é o primeiro uso ou já usou o pc antes

  4. Sim, a maioria desse tipo de ferramenta é criada através de engenharia reversa

     

    Sempre existe um padrão comum que você espera encontrar em todos os sistemas operacionais, como controle de memória, administração de threads entre outras coisas que o computador precisa pra funcionar. Geralmente quando você vai tentar encontrar alguma vulnerabilidade, você já tem noção de como esse tipo de programa é criado e sabe onde provavelmente pode ter alguma brecha

     

    Mas no caso do pegasus, ele une um pouco de duas coisas, ele exige que o usuário clique em algum link malicioso ou algo do tipo pra aí sim ele poder usar as falhas de segurança do dispositivo pra poder se instalar e ficar espionando

     

     

    Inclusive, recomendo ficarem um pouco atentos aí porque parece que o governo brasileiro ta tentando comprar uma cópia para ficar espionando a população. Então você que é  jornalista ou ativista critico do governo, fica meio espero com msg de texto, links e anúncios duvidosos

  5. Hi dear @isvkt

     

    I guess you are trying to use Win32, right?

     

    Since Win32 is an event driven API, it will tell your program that the left mouse button was pressed with an event signal, witch you need to process with a Win32 event loop

     

    Something like this:

    #include <windows.h>
    
      
    int WINAPI WinMain(HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPSTR     lpCmdLine,
                       int       nCmdShow)		// This is the "main()" function in win32.
    {
    	MSG msg;	// Event structure that windows will send to you program (Mouse button down, close, resize etc).
    
      	// Event loop will send all the messages to a callback function to be processed.
      	while(GetMessage(&msg, NULL, 0, 0) > 0)
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        return msg.wParam; // "main()" returns the event info. 
    }
    
    
    // This is the callback function where you will process the events.
    LRESULT CALLBACK WndProc(HWND hWnd,
                              UINT uMsg,
                              WPARAM wParam,
                              LPARAM lParam)
        switch(uMsg)
        {
      	// The event is a mouse left button pressed.
            case WM_LBUTTONDOWN:
            {
            	// Your code to move mouse cursor goes here.
            }
            break;
            
            default:
            // In case of any other event, let Windows process it.
                return (DefWindowProc(hWnd, uMsg, wParam, lParam));
            break;
        }
    
        return 0;
     }

     

    Hope this helps you

    • Curtir 2
  6. Boa noite @Clarice Paula

     

    Análise de malware é uma área meio complicada mesmo de início, mas você precisa manter o foco em dar um passo de cada vez, e manter em mente que é um caminho bem longo pra trilhar. Mas nada impossível se você for persistente em aprender

     

    Mas a minha dica é que você pratique, crie seus próprios malwares, assim você vai começar a perceber caminhos pelos quais os malwares se infiltram e quais falhas de segurança são mais fáceis de explorar

     

    Also, da uma olhada nesse vídeo do Gabriel Pato se aventurando na análise de malware, é bem interessante ver como ele lida com o problema e encontra soluções

     

     

    • Curtir 1
  7. Boa noite meu caro @Dérick Soares

    Pelo que eu entendi, o enunciado pede para você implementar um loop que pegue as informações dos empregados 15x e execute alguns cálculos com essas informações. Mas a solução parece que não foi bem escrita ou ta faltando um pedaço dela

     

    Se fosse eu resolvendo esse exercício, eu faria com um loop for, no lugar de um do..wile

    #include <stdio.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(){
    
        for(int i = 0; i < 15; i++)
        {
            // Declarando as variáveis dentro do loop, pois assim você limita o escopo delas
          	// para essa interação do loop apenas, garantindo que você não vai ta usando lixo
            // resultante das execuções anteriores e gerar resultados errados para os calculos.
            float salbruto, salliquido, imposto, totbruto=0, totliquido=0, totimposto=0;
          
            printf("Digite o salario bruto: ");
            scanf("%f", &salbruto);
    
            if (salbruto > 999)
            	imposto = salbruto * 0.10;
            else if (salbruto > 1999)
                imposto = salbruto * 0.15;
            else if (salbruto > 9999)
                imposto = salbruto * 0.20;
            else if (salbruto > 99999)
                imposto = salbruto * 0.25;
            else
                imposto = salbruto * 0.30;
          
          
            salliquido = salbruto - imposto;
            printf("Salario liquido: %.2f \n", salliquido);
    
            totbruto = totbruto + salbruto;
            totliquido = totliquido + salliquido;
            totimposto = totimposto + imposto;
    
            printf ("-------------------------------\n");
       		printf ("Total salario bruto : %.2f \n",totbruto);
        	printf ("Total salario liquido : %.2f \n",totliquido);
        	printf ("Total imposto : %.2f \n",totimposto);
          	printf("\n\n");
        }
    
        return 0;
    }

     

    Dentro do próprio loop for a gente já declara a variável de controle, a condição de saída do loop e o incremento da variável de controle

     

     

    Mas como você disse que precisa escrever o código com do..while, eu escreveria ele assim:

    #include <stdio.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(){
    
        int contador = 0;	// Variável para controlar a saída do loop. 
        do
        {
            float salbruto, salliquido, imposto, totbruto=0, totliquido=0, totimposto=0;
      
            printf("Digite o salario bruto: ");
            scanf("%f", &salbruto);
    
            if (salbruto > 999)
            	imposto = salbruto * 0.10;
            else if (salbruto > 1999)
                imposto = salbruto * 0.15;
            else if (salbruto > 9999)
                imposto = salbruto * 0.20;
            else if (salbruto > 99999)
                imposto = salbruto * 0.25;
            else
                imposto = salbruto * 0.30;
          
          
            salliquido = salbruto - imposto;
            printf("Salario liquido: %.2f \n", salliquido);
    
            totbruto = totbruto + salbruto;
            totliquido = totliquido + salliquido;
            totimposto = totimposto + imposto;
    
            printf ("-------------------------------\n");
       		printf ("Total salario bruto : %.2f \n",totbruto);
        	printf ("Total salario liquido : %.2f \n",totliquido);
        	printf ("Total imposto : %.2f \n",totimposto);
          	printf("\n\n");
      
      	contador++; 	// Aqui a gente incrementa a variável de controle.
        } while(contador < 15); // Todo laço do..while precisa dessa declaração while no final.
                                // É ela que especifica qual a condição de saída do loop.
                                // O seu código não ta compilando pois na sua implementação ela
                                // ta faltando.
    
        return 0;
    }

     

    Mas como você parece ser iniciante, ta tendo um pouco de dificuldade com loops. Isso é normal, controle de fluxo é perrengue assim mesmo no começo ksksksks

    Da uma olhada nesse link aqui que ele explica certinho cada tipo de loop e você vai conseguir se situar melhor quando precisar implementar mais um desses

    https://sites.google.com/site/itabits/treinamento/introducao-a-programacao-em-c/comandos-de-repeticao

    • Curtir 1
    • Obrigado 1
  8. @Rogresão Rodrigues Costa você não esta conseguindo usar o system("pause") porque está faltando importar a biblioteca padrão do C para permitir você se comunicar com o sistema. Tenta escrever ele assim:

     

    #include <stdlib.h>	// Essa bilioteca para poder roda comandos no sistema operaciomal como system("pause").
    #include <stdio.h>
    
    int main()
    {
     float raio, perimetro;
     double Pi = 3.1415927, area;
     
     printf("Introduza o raio da circunferencia: ");
     scanf("%f", &raio);
     area = Pi * raio * raio;
     perimetro = 2 * Pi * raio;
     
     printf("Area = %f\nperimetro = %f\n", area, perimetro);    
     system("pause");
        
    }

     

     

    • Amei 1
  9. @Jenny0102 Nesse caso vale a pena usar o Windows mesmo, ele no geral sabe qual driver usar e geralmente é um driver testado e validado pela WHQL. Assim que terminar de formatar, abre o Windows update e coloca ele pra atualizar, geralmente ele busca tudo o que precisa e instala automaticamente

     

    13 minutos atrás, Jenny0102 disse:

    E sobre o driver de barramento, eu não sei qual é esse 

    Não é nem sobre o driver de barramento, é só pra confirmar se todos os drivers estavam instalados. As vezes algum driver instalado errado ou defeituoso acaba interferindo em outros componentes, como os gráficos

     

    Quando terminar de formatar, da um feedback pra saber se deu certo ou não

  10. [RESOLVIDO]

     

    Finalmente consegui resolver o problema do positivo sem necessidade de usar o cartão de memoria

     

    O problema estava numa configuração na BIOS que impedia o computador de escrever na memória interna

     

    Pra resolver é um seguinte. Entra na BIOS e navega:

    Chipset > South Bridge > LPSS & SCC Configuration > eMMC Write Protect 
    Muda de [Enabled] para [Disabled]
    Salva e reinicia

     

    E já pode formatar o notebook normalmente

    • Curtir 1
  11. É uma pergunta interessante. Não sou muito entendido do assunto, mas posso correr atrás de algumas referencias se quiser se aprofundar e também posso te ajudar a entender pelo menos a lógica do processo

     

    Não sei se você entende de computador, mas é valido considerar a placa de um controle como um pequeno computadorzinho: ele possui alimentação, memória, um processador e armazenamento. Tudo bem condensado e junto, com o objetivo interpretar os botões do controle, por exemplo

     

    O processador do controle -- pode ser um chip ou um micro controlador --, assim como seu computador, roda um determinado conjunto de instruções básicas que são os códigos Assembly, representados por um monte de 0 e 1. A função do compilador é converter o código de C++ para assembly. Para entender o processo, vale entender as diferenças de um código C++ pra um código Assembly:

    • Código C++ é uma forma de você dizer o que ao compilador o que você quer que instrua a máquina a fazer, e isso te dá liberdade de usar formas mais sofisticadas  e confortáveis de arquitetar seu programa, usando recursos como variáveis para reservar espaços na memória,  funções para poder dividir seu código em pequenas partes, orientação a objetos para separar cada funcionalidade em um objeto e fazer eles trocarem informações etc.
    • Já o Assembly, é você dizendo ao processador exatamente o que quer que ele faça, passo a passo.

    Veja o exemplo da diferença de um pseudo código entre C++ e assembly para somar os números 50 e 25.

    // Em C++
    int resultado = 50 + 25; 

    E o compilador vai converte-lo para algo parecido com isso:

    ; Em Assembly
    
    mov ax, 32h			; Coloca o valor 50 em hexadecimal (32) no registrador de memoria AX.
    mov bx, 19h			; Coloca o valor 25 em hexadecimal (19) no registrador de memoria BX.
    
    add ax, bx			; Soma os valores

     

     

    O código Aassembly é a ultima camada entre você e o processador em sí. Cada instrução vai ser convertido diretamente para o seu equivalente em código de máquina, se quiser, pode escrever manualmente, tipo, o mesmo exemplo acima poderia ser escrito como

    B0 32	; Coloca o valor 50 no AX.
    88 19	; Coloca o valor 25 no BX.
    05 	; Soma valores
    

    *Na real, isso aqui é só  pra ilustrar, a instruções variam de acordo com a arquitetura e o chip e posso ter errado na implementação também ksks.

     

    Que no final, vai ser escrito em uma fileira de bits  eu o processador vai poder entender tranquilamente, como no exemplo

    10110000 00110010	; Grava 50 no AX.
    10001000 00011001	; Grava 25 no BX.
    
    00000101			; Soma.
    

     

    Aí essas instruções vão ser guardadas na memória da plaquinha como

    1011000000110010100010000001100100000101

     

     Sempre que a plaquinha for ligada, ela vai ler essa fileira de 0 e 1 e fazer a soma de 50 e 25. Rodando o código que você escreveu em C++, que foi convertido e guardado na memoria dela

     

     

     

    Nada de muito complicado, é só meio difícil de entender no começo, mas se você for programar, vai se acostuma com o tempo

    • Amei 2
  12. Boa tarde pessoal. Estou com um problema bastante peculiar e específico

     

    Estou prestando assistência em um notebook Positivo Motion Q (Esse aqui da foto do anexo). O objetivo era formata-lo, porém, o a memória interna dele está com algum defeito: não é possível realizar escrita de nenhuma forma. Nem um único byte em nenhum setor se quer. Então tiver a ideia de instalar o sistema operacional dentro de um cartão SD. Seria uma solução perfeita, sem ter um pendrive trambolho atrapalhando a movimentação e sem risco de retira-lo com o notebook ainda funcionando. Porém, o notebook não reconhece o Cartão na BIOS para dar boot

     

    Posteriormente, consegui iniciar o computador pelo shell EFI, onde eu pude fazer alguns testes e tentar encontrar a imagem de inicialização do meu sistema dentro do SD e iniciar manualmente, e não foi surpresa nenhuma perceber que o Firmware do notebook não reconhece a mídia. Creio que o suporte ao cartão SD seja possível apenas possível através de drivers instalados no sistema operacional

     

    Dada essa situação, qual seria a melhor maneira de prosseguir?

     

    Tive a ideia maluca de utilizar um script criado para rodar dentro do shell EFI, para ser possível carregar um bootloader e um kernel (provavelmente Linux, da mesma forma que é feito com o initrd) na memória RAM, assim seria possível utilizar ele para o notebook reconhecer o Cartão SD e iniciar o sistema operacional. Mas o problema é: como eu poderia fazer isso, se não há formas de manter essas informações dentro da memória interna do notebook

     

    Existe alguma jeito de salvar alguma coisa ou script dentro do Firmware (BIOS) do notebook ou algo do tipo? Existe alguma outra solução para esse problema?

     

     

    desde já agradeço pela ajuda  💻

    positivo.jpg

  13. A primeira coisa a ver é se o vs code ta conseguindo executar o compilador

     

    Abre um terminal no windows (iniciar > cmd [enter]) e digita

    gcc --version

    se ele retornar a  versão do compilador, significa que está tudo configurado  no path do sistema e o problema está na configuração do VS Code

     

    Se retornar que não é um comando ou programa, você vai precisar rever os path do sistema pra ajeitar tudo certinho

    • Curtir 1
  14. Olá a todos 

     

    Eu trabalho com TI há algum tempo, e ainda tenho dificuldade em analisar a saúde de um Disco Rígido, muitas vezes as informações do S.M.A.R.T. dizem que o HD está ok e os benchmarks que realizo o dão como excelentes para armazenar e transferir arquivos. Porém, quando tento formatar ele e colocar um Windows, por exemplo, sempre acaba ficando uma porcaria.

     

    Gostaria de pedir ajuda com essa questão; como faço para determinar se um HD está apto para rodar um sistema operacional de forma satisfatória, ou os casos em que não é possível usa-lo para rodar um SO, mas pode ser utilizado tranquilamente apenas para armazenar arquivos

     

    desde já, agradeço a atenção! :D

  15. Opa, tudo bom?
     

    Acho que o seu principal erro foi na declaração da variável v_imc. O calculo só deve ser feito depois que o usuário entrou os valores. O fato de aparecer sempre o ultimo else se da ao fato de que as variáveis v_altura e v_peso não fora iniciadas, logo estão recebendo lixo de memória como entrada. Assim, como o v_imc está sendo calculado logo depois das variáveis estarem sendo declaradas, o resultado dele também vai ser lixo de memória

     

    #include <stdio.h>
    #include <stdlib.h>
    
      
    /* Dei uma alterada na indentação pra melhorar a legibilidade do código, espero que não se incomode */
      
    int main() /* Main sempre deve ter algum valor de retorno */
    {
      	/* Iniciei todos os valores com 0, para não ficarem com lixo como valor */
    	float v_altura = 0.0;
    	float v_peso = 0.0;
    	float v_imc = 0.0;
    
    	printf("\n\nEste e um programa para medir seu IMC, vamos la ?\n\n");
    	printf("Primeiro insira a sua altura EX: 1.80.\n\n");
    	scanf("%f",&v_altura);
    	printf("\n\nOtimo, agora insira seu peso EX: 78,6.\n\n");
    	scanf("%f",&v_peso);
    	
    	printf("\n\nCalculando..\n\n");
    	v_imc = (v_altura*v_altura)/v_peso;	/* O calculo será feito só depois que os valores já foram entrados pelo usuário*/
    
    	printf("Prontinho, seu IMC e de: %.2f\n\n\n",v_imc);
    	printf("Tabela IMC:\n\nAbaixo de 17		\tMuito abaixo do peso\nEntre 17 e 18,49	\tAbaixo do peso\nEntre 18,5 e 24,99	\tPeso normal\nEntre 25 e 29,99	\tAcima do peso\nEntre 30 e 34,99	\tObesidade I\nEntre 35 e 39,99	\tObesidade II (severa)\nAcima de 40		\tObesidade III (morbida)\n\n\n");
    
    
      	/* Tomei a liberdade de colocar as chaves nos if/elses, melhora a legibilidade. */
    	if (v_imc < 17)
    	{
    		printf("\n\nVoce esta muito abaixo do peso, contate um profissional de nutricao.\n\n");
    	}
    	else if ((v_imc > 17 ) || (v_imc < 18.49))
    	{
    		printf("\n\nVoce esta abaixo do peso ideal, contate um profissional de nutricao.\n\n");
    	}
    	else if ((v_imc > 18.5) || (v_imc < 24.99))
    	{
    		printf("\n\nVoce esta no peso normal para sua altura.\n\n");
    	}
    	else if ((v_imc > 25) || (v_imc < 29.99))
    	{
    		printf("\n\nVoce esta acima do peso, contate um profissional de nutricao.\n\n");
    	}
    	else
    	{
    		printf("\n\nVoce esta muito acima do peso, contate um profissional de nutricao.\n\n");
    	}
    
    	system("pause");
      	return 0;	/* Execução bem sucedida. Retornando 0 para a função main() */
    }

    Espero ter ajudado

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!