Pesquisar na Comunidade
Mostrando resultados para as tags ''avançado''.
Encontrado 2 registros
-
[Driver] Source para um MiniFilter simples
Naix_ postou um tópico no fórum em Games - Dicas & Tutoriais
Opa, segue minha source pra um MiniFilter que eu estava usando pra ver as ações relacionadas a Create e Write de arquivos de um anti-cheat, já que no Win10 os drivers são obrigados a ter um backup em arquivo no disco, o principal uso desse MiniFilter é esse, caso queira adicionar mais callbacks só consultar a página da MSDN. Acredito que em algum momento vou tentar fazer uma introdução ao KernelMode e Drivers com meu amigo iPower. #include <dontuse.h> #include <fltKernel.h> #include <ntddk.h> #pragma prefast(disable:__WARNING_ENCODE_MEMBER_FUNCTION_POINTER, "Not valid for kernel mode drivers") typedef char* (*pPsGetProcessImageFileName)(PEPROCESS process); pPsGetProcessImageFileName PsGetProcessImageFileName = NULL; const char * TargetProcessName = NULL; PFLT_FILTER FilterHandle = 0; FLT_PREOP_CALLBACK_STATUS FilePreCreate( PFLT_CALLBACK_DATA Data, PCFLT_RELATED_OBJECTS FltObjects, PVOID *CompletionContext ) { UNREFERENCED_PARAMETER(CompletionContext); if (FltObjects->FileObject) { char * ProcessName = NULL; ProcessName = PsGetProcessImageFileName(PsGetCurrentProcess()); PFILE_OBJECT file = FltObjects->FileObject; if (strstr(ProcessName, TargetProcessName) != NULL) { KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL, "%s esta criando [ %ws ]\n\n",ProcessName,file->FileName.Buffer)); } } return FLT_PREOP_SUCCESS_NO_CALLBACK; } FLT_PREOP_CALLBACK_STATUS FilePreWrite( PFLT_CALLBACK_DATA Data, PCFLT_RELATED_OBJECTS FltObjects, PVOID *CompletionContext ) { UNREFERENCED_PARAMETER(CompletionContext); if (FltObjects->FileObject) { char * ProcessName = NULL; ProcessName = PsGetProcessImageFileName(PsGetCurrentProcess()); if (strstr(ProcessName, TargetProcessName) != NULL) { PFILE_OBJECT file = FltObjects->FileObject; KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL, "%s esta fazendo write no [ %ws ]\n\n", ProcessName, file->FileName.Buffer)); } } return FLT_PREOP_SUCCESS_NO_CALLBACK; } const FLT_OPERATION_REGISTRATION FltCallbacks[3] = { { IRP_MJ_CREATE, 0, FilePreCreate, NULL, NULL }, { IRP_MJ_WRITE, 0, FilePreWrite, NULL, NULL }, {IRP_MJ_OPERATION_END} }; NTSTATUS FilterUnload( FLT_FILTER_UNLOAD_FLAGS Flags ) { UNREFERENCED_PARAMETER(Flags); FltUnregisterFilter(FilterHandle); return STATUS_SUCCESS; } NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath) { UNREFERENCED_PARAMETER(RegistryPath); NTSTATUS status = STATUS_SUCCESS; UNICODE_STRING PsGetProcessImageFileNameStr = { 0 }; RtlInitUnicodeString(&PsGetProcessImageFileNameStr, L"PsGetProcessImageFileName"); PsGetProcessImageFileName = (pPsGetProcessImageFileName)MmGetSystemRoutineAddress(&PsGetProcessImageFileNameStr); if (PsGetProcessImageFileName == NULL) { KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL, "[ PsGetProcessImageFileName ] \n")); return STATUS_UNSUCCESSFUL; } TargetProcessName = ; //Colocar o nome do processo a ser monitorado FLT_REGISTRATION FilterRegistration = { 0 }; FilterRegistration.Size = sizeof(FLT_REGISTRATION); FilterRegistration.Version = FLT_REGISTRATION_VERSION; FilterRegistration.Flags = 0; FilterRegistration.ContextRegistration = 0; FilterRegistration.OperationRegistration = FltCallbacks; FilterRegistration.FilterUnloadCallback = FilterUnload; status = FltRegisterFilter( DriverObject, &FilterRegistration, &FilterHandle); if (!NT_SUCCESS(status)) { KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL, "Erro ao registrar o MiniFilter\n")); FltUnregisterFilter(FilterHandle); } status = FltStartFiltering(FilterHandle); if (!NT_SUCCESS(status)) { KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL, "Erro ao iniciar o MiniFilter\n")); FltUnregisterFilter(FilterHandle); } return status; } -
Boa tarde pessoal. Vou começar uma série de Tutoriais em python. Eu sou ansioso e impaciente. Esse tutorial vai para as pessoas que querem aprender coisas de forma rápida sem muito lero lero e Teoria. Porém para conseguir aprender seguindo meus tutoriais, você terá que mostrar para si mesmo que é capaz de aguentar o tranco. Vou começar do simples até o que eu considero hoje o essencial para um programador Python se encaixar em qualquer vaga no mercado de trabalho. Pelo menos é os que eu contrataria :) Antes de mais nada, você vai precisar do Python em sua maquina. Acredito que na sua maquina já tenha alguma versão de python rodando. Se não tiver eu explico um pouco abaixo como instalar para cada maquina. Vou deixar abaixo algumas palavras chaves que vou usar durante as aulas que você precisa ter sempre em mente para não ficar travando ou se atrapalhando. Lembrando também para ler isso com atenção, pois vou ignorar e reportar posts com dúvidas relacionadas a essa list aqui embaixo. LEIA COM ATENÇÃO Terminal/CMD: Quando eu falar Terminal, considere o seu CMD se estiver usando Windows. Terminal é para quem usa os sistemas operacionais OSx e Linux. É aquela telinha preta onde você digita os comandos. PIP: "...é um sistema de gerenciamento de pacotes usado para instalar e gerenciar pacotes de software escritos na linguagem de programação Python". Muitos pacotes podem ser encontrados no Python (Fonte). Vamos usar ele para instalar alguns pacotes que vão nos auxiliar no desenvolvimento. Amem o pip, vocês vão precisar dele e ele é o melhor amigo do programador Python. Erros & StackOverflow: Eu estou fazendo os tutoriais em um computador Windows, pois a grande parte dos iniciantes aqui provavelmente usam Windows. Porém eu desenvolvo em OSx. Então qualquer dúvida de lib que não instalou corretamente no seu pc por questão de funcionar em Windows e não em OSX/Linux, pergunte no meu MP e não aqui no tópico. Mas assim como qualquer desenvolvedor, aprenda a primeiro procurar no StackOverflow (Uma comunidade de duvidas para programadores). Joga no google o erro que está dando e provavelmente voce encontrara sua duvida perguntada por alguem nessa comunidade. Ame o Stackoverflow, ele também será seu amigo na tua vida de programador. Explicações Avançadas: Quando digo avançadas é que não vou ficar te contando a historinha de como o Python nasceu, sobre a cegonha e as primeiras palavras dessa linguagem. Eu vou te ensinar o essencial, com exemplos práticos, dar uma breve detalhada no que estou fazendo e ir avançando. Então se você está acostumado com escolinha do Professor Girafales, CORRE DAQUI. Aqui é paulera comigo. Vida de professor é foda, ainda mais aqui na WebCheats q não ganhamos nada kkkkk então aproveite :D Links, Fontes, Downloads: Provavelmente todos os links e downloads vou deixar no final do tópico. Se não deixei, mande mensagem pelo MP. Vamos tentar manter os tópicos o mais limpo possível. Peço que se for duvidas complexas ou que realmente estejam te travando e você não consiga encontrar uma solução, poste aqui que resolveremos juntos. Mas antes de uma pesquisada como falei, e tente resolver por si mesmo. Veja os comentários nesse tópico pois sua duvida pode já ter sido postada. Lembrando que eu posso atualizar essa lista no decorrer do desenvolvimento/tutoriais. APRESENTAÇÃO Podem me chamar de Cr4cko mesmo ou Guilherme Iazzetta, tenho 21 anos atualmente (2017), sou desenvolvedor Fullstack e arquiteto de Software. Crio e arquiteto projetos com Django (Python), Mean.io (MongoDB, Express, Angular, Node). Formado na FIAP como Analista e Desenvolvedor de Sistemas e atualmente iniciando MBA em Gestão de Tecnologia da Informação. E dedicando o resto das minhas horas e vida em estudos com Inteligencia Artificial :rolleyes:. DOWNLOAD DO PYTHON E PIP Vou deixar o download do Python e PIP para Windows/Linux/OSx. Vocês são bem grandinhos e ja sabem qual é o seu sistema operacional, certo? Obrigado. Estamos usando a versão 3.6.2 para esses tutoriais. Windows Ubuntu OSx (aqui é instalando o brew antes) VALIDANDO A INSTALAÇÃO DO PYTHON Para verificar as versões instaladas, você precisa digitar: --version na frente do python e pip. Se não aparecer a versão 3.6, digite python3 e pip3 em todos os tutoriais inclusive esse para ver versão, pois você está com 2 versões de python no PC. Para entender como remover ou usar uma de cada, leia: (LINUX/OSX) How to Python run Python3 python --version #Python 3.6.2 pip --version #pip 9.0.1 from c:\users\xxxxxx\appdata\local\programs\python\python36-32\lib\site-packages (python 3.6) CONCLUSÃO Bom, aqui provavelmente será o unico topico bem detalhadinho e de dúvidas sobre instalação e tudo mais. O resto, o que rodar no meu, se esforcem para rodar no de vocês. Dúvidas no MP e erros absurdos podem postar aqui. Logo abaixo, vou deixar a lista de tutoriais que eu for criando, pois eu QUERO que os novos usuários primeiro entenda como as aulas vão funcionar para ajudar a manter as aulas produtivas e limpas. Não sou ignorante nem FD*, fiquem tranquilos que faço oq amo e ajudar/ensinar faz parte disso. Só que como disse, sou ansioso e rápido, e gosto de ensinar dessa forma. Foi assim que aprendi. Desejo uma ótima aula para vocês, espero que gostem, e se tornem ótimos desenvolvedores (para quem quiser). É nois! Lista dos Tutoriais 2 - Entendendo as variaveis do Python 3 - Criando um jogo simples com Python 4 - Criando um jogo com Python/Flask e HTML
