Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Protegendo Processo

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial Protegendo Processo

    Bom pessoal, vou postar aqui um tutorial que fiz ensinando como proteger um processo no windows utilizando uma função não documentada, claro, por uma boa razão, não deve ser usada arbitráriamente e sem controle por qualquer aplicativo, vendo que pode causar instabilidades ao sistema operacional e perda de dados. A RtlSetProcessIsCritical; Creio que seja de boa utilidade para quem quer codar rats ou ferramentas do tipo, desde que saibam que qualquer bug no programa pode levar a uma tela azul, então, usem com responsabilidade rsrs (:

    Como funciona?
    - Esta função define o processo como "crítico", ou seja, essencial ao funcionamento do windows, fazendo com que caso ele seja finalizado, o windows automaticamente se encerre demonstrando um erro crítico conhecido como BSOD (Blue Screen of Death). os códigos de erro podem ser:

    * (0xEF) CRITICAL_PROCESS_DIED - Processo finalizado
    * (0xF4) CRITICAL_OBJECT_TERMINATION - Processo encerrado de forma "anormal"

    - O Windows não irá emitir nenhum tipo de aviso sobre o processo ser crítico ou não, então ele pode ser finalizado normalmente por um gerador de tarefas ou comando executado no windows como "taskkill" no console. Exceto no windows vista e 7 onde o processo não pode finalizado pelo gerenciador de tarefas, porém um usuário com privilégios administrativos pode forçar seu encerramento por outros metodos.

    A Função

    Código:
    NTSTATUS 
    RtlSetProcessIsCritical (
        BOOLEAN bNew,    	// new setting for process
        BOOLEAN *pbOld,    	// pointer which receives old setting (can be null)
        BOOLEAN bNeedScb);    	// need system critical breaks
    Então se chamarmos a função da seguinte forma: RtlSetProcessIsCritical(TRUE, NULL, FALSE); o processo será definido como crítico, e se a chamarmos desta forma: RtlSetProcessIsCritical(FALSE, NULL, FALSE); o processo voltará ao normal.

    Vamos Codar

    Para chamarmos a função do kernel do windows é simples:
    Código:
    function RtlSetProcessIsCritical(bNew: Boolean; pbOld: Pointer;
     bNeedScb: Boolean):LongInt; stdcall; external 'ntdll.dll';
    Porém, para se chamar essa função é necessário que o processo tenha privilégios de depuração (SE_DEBUG_NAME), mas como eu gosto de usar o menor número de units possível em minhas aplicações eu vou utilizar uma outra função do kernel do windows, mas como não vem ao caso discutirmos sobre essa função em sí, vou só disponibilizar para vocês. sujiro a procura de materiais relacionados para um melhor entendimento desta função, a RtlAdjustPrivilege

    Código:
    function RtlAdjustPrivilege(dwPrivilegeId: DWORD; bSet: boolean;
      AdjType: integer; Unc: PDWORD): word; stdcall; external 'ntdll.dll';
    chamando a função da seguinte forma: RtlAdjustPrivilege(20, True, 0, @unc); Nós estamos habilitando os privilégios de depuração, e desta forma: RtlAdjustPrivilege(20, False, 0, @unc); estamos revogando os privilégios de depuração.

    Então vamos á um exemplo de código que causaria um encerramento súbito do sistema operacional.

    Código:
    program bsod;
    
    {$APPTYPE CONSOLE}
    
    uses
      windows;
    
    function RtlAdjustPrivilege(dwPrivilegeId: DWORD; bSet: boolean;
      AdjType: integer; Unc: PDWORD): word; stdcall; external 'ntdll.dll';
     function RtlSetProcessIsCritical(bNew: Boolean; pbOld: Pointer;
     bNeedScb: Boolean):LongInt; stdcall; external 'ntdll.dll';
    
    var
    unc:dword;
    begin
    write('                Blue Screen of Death'#13#10);
    write('-----------------PRESS ANY KEY TO BOOM ---------------');
    Readln;
       RtlAdjustPrivilege(20, True, 0, @unc);
       RtlSetProcessIsCritical(True, nil, False);
       ExitProcess(0);
    
    end.
    Similar Threads

  • Font Size
    #2
    Critical process died

    Estou tendo processo crítico MORREU problema no meu PC.

    Comment


    • Font Size
      #3
      here's the thing now
      i does as this website said

      Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

      and now my system wont able to start
      what to do now does anybody knows something

      Comment

      X
      Working...
      X