Jump to content

anderson_leite

Membros
  • Content Count

    13
  • Joined

  • Last visited

Everything posted by anderson_leite

  1. Qual programador/software voce esta usando ?
  2. Já faz um bom tempo (quase 1 ano!) desde o último artigo da série de desenvolvimento de debuggers. Este é o último artigo da série e iremos finalmente criar nosso primeiro prototipo de debugger. A ideia aqui, é compilar tudo que foi ensinado nos artigos anteriores sobre Sinais, Forks e ptrace . Com isso, criaremos um simples tracer em C que irá receber um endereço como argumento e colocar um breakpoint no mesmo. Diagrama Antes vamos definir um pouco o escopo do nosso software: O nosso tracer irá criar um fork e nesse fork será feita a chamada para a execv, que
  3. Alguns documentos da microsoft sobre. https://docs.microsoft.com/en-us/windows/win32/seccrypto/cryptography-tools https://docs.microsoft.com/en-us/windows/win32/seccrypto/signtool
  4. Olá, já faz um bom tempo desde do ultimo artigo sobre a construção de debuggers mas, sem mais delongas, vamos dar continuidade a esta série! ? Neste artigo iremos falar um pouco sobre uma chamada de sistema que é capaz de controlar quase todos os aspectos de um processo: a syscall PTRACE (process trace). Antes de continuarmos, vale ressaltar que todo o código utilizado neste artigo está disponível no repositório do Github. De acordo com o manual do Linux (man ptrace), a syscall ptrace é definida assim: "A syscall ptrace provê meios para que um processo (denominado "tracer") pos
  5. Olá! No artigo anterior falamos sobre Signals, que é de suma importância para a comunicação entre processos, mas para construir o nosso debugger precisamos muito mais do que apenas isso, precisamos de fato ter total controle sobre um dado processo e se possível controlar até o seu própio início. Neste artigo será explicado o que são forks e seu uso em desenvolvimento de aplicações em sistemas UNIX. Sem mais delongas, vamos prosseguir!!!? Resumidamente a syscall fork é usada para a duplicação e criação de um processo. Quando um dado processo chama a função fork(), é criada uma cópia i
  6. Olá, neste artigo compartilharei um pouco da minha pesquisa no desenvolvimento de debuggers. No momento estou trabalhando em um protótipo de debugger para Linux, mas nada tão avançado quanto um gdb ou radare (muitas coisas são necessárias para chegar neste nível de maturidade de software). O desenvolvimento de debuggers é uma atividade muito interessante, já que, em sua forma mais básica, pode ser resumido em uma série de chamadas de sistema (syscalls) para que seja possível o controle do processo a ser depurado (muitas vezes chamado de debuggee) e de seus recursos, mas não vamos colocar
  7. Opa, analise abaixo. As analises estão muito boas, evoluindo naturalmente
  8. Muito maneiro, segue a analise e o script para decifrar. Algoritmo em python
  9. Na main() voce esta enviando o vetor em si para o scanf, o certo seria voce enviar somente a variavel que voce deseja atribuir, nesse caso voce acessa ela via indice scanf("%d", vetor[i]); Visto que as variaveis sao globais, nao precisa enviar elas via parametros ja que voce pode acessar-las de qualquer local do codigo e ainda na mediaVetores() voce esta atribuindo valores para os argumentos que nao foram passados, isso funciona na maioria das linguagens(python, java, c++...) mas em C voce nao pode fazer isso. Voce nao precisa de argumentos nesse caso, ja que voce ja sabe quais sao
  10. Gentoo é muito bom, voce vai passar horas/dias compilando ele para a tua maquina e vai aprender muito mesmo sobre compilação/SO's, da uma testada antes :D Sem contar que ele é BEM rapido, ja que ele vai compilar tudo para o teu hardware.
  11. Ja chegou a instalar algum distro inteira na unha? Gentoo, slack, void, arch ? é interessante porque voce vai entender bastante de como funciona a estrutura de um sistema operacional unix, principalmente o Gentoo que tem varias inspirações do freeBSD, o Void linux tem uma comunidade muito boa e você pode criar pacotes para ele usando o gerenciador xbps de uma maneira bem simples, direto no github. Dessa maneira deve ficar bem mais claro na hora de usar o LFS, nunca cheguei a montar minha distro, por preguiça/esqueço (mas ta na lista de afazeres), mas acredito que o caminho seja esse. Good
  12. Talvez o docker seja interessante para analise de malware ja conhecidos e analisados, pois você ja vai saber que ele não vai carregar nenhum tipo de exploit que possa sair do container para o host, o container compartilha o kernel do host, logo pastas como /proc ( e se não me engano /sys, /dev ), ficam inclusas no container porem somente com permissão de leitura, mas vale lembrar que essas permissões volta e meia são burladas ( lembrar do dirtycow ). Para malwares que acabaram de sair do forno ou algum que tu recebeu por email ( sendo um elf no caso ), fortemente recomendo uma vm para mai
  13. Geralmente é essa senha, mas como não esta funcionando voce ja pode começar fazendo o seu primeiro "hack" . Na tela do grub aperte 'E' em cima do Kali, vai abrir os arquivos de inicialização dele no grub, na linha que esta escrito " linux /boot... ", coloque no final "init=/bin/bash", isso vai fazer com que seja rodado um comando no boot, e como o boot é gerenciado pelo root, você vai cair na shell root, agora basta digitar "passwd" e definir uma nova senha para o root! ps: Eu acho a ideia do kali rodar tudo como root uma pessima ideia, então crie um usuario para você e coloque e
  14. Exatamente oque eu estava buscando! otimizou bastante o processo, irei começar a usar em meus projetos! vlw a todos
  15. É sempre bom saber como as aplicações web funciona por baixo dos panos, além de te dar mais conhecimento, pode te ajudar a navegar com mais segurança, evitando uns javascripts maliciosos e etc
  16. Quando estamos desenvolvendo algum tipo de software, seja ele em C ou em C++, é comum dividi-lo em multiplos arquivos, sejam eles Classes ou uma header que perfome algum tipo de operação especifica, minha maior duvida é, como eu devo tratar as headers "compartilhadas" para não precisar declarar mais de uma vez no meu projeto? Exemplo: file.h #idndef _FILE_ #define _FILE #include <string.h> #include <sys/types.h> #include <dirent.h> class File { char* Filename; DIR* Path; }; #endif folder.h #idndef _FOLDER_ #define _FOLDER_ #include <
×
×
  • Create New...