Ir para conteúdo
  • Cadastre-se

Todas Atividades

Atualizada automaticamente     

  1. Hoje
  2. Edno Garcia

    Keygen Feito em python

    Fiz uma traduçao desse programinha. Assim que possível, posto pra vc baixar, amigo.
  3. Ontem
  4. Última semana
  5. vitoralmeida

    Planejando carreira em SI

    Olá, pessoal. Tô chegando aqui agora e já quero sentar na janela xD. Eu já dei uma olhada por aqui, e também vi nos vídeos do Papo Binário, que para iniciar o caminho indicado é construir uma base sólida em redes, sistemas operacionais, programação, web e aí vai. E também que não é comum chegar em segurança de cabeça, geralmente se começa por outras áreas. Mas como vocês organizam o que estudar? Se eu começo por desenvolvimento web e migrando pra segurança, tenho que estudar milhões de cosias de desenvolvimento e quando estudo as outras áreas? Visto que estou desempregado, migrando pra computação (saí da faculdade de Direito e tô no segundo semestre de ciências da computação ), ainda é indicado entrar na área de segurança indiretamente? Tenho muitas outras dúvidas, mas fico por aqui para não me alongar. Agradeço desde já. Valeu
  6. gnoo

    Gostaria de sugestões de tema para TCC

    @R3n4to Boa! Depois partilha esse trabalho aqui se for possível. Boa sorte ☺️
  7. R3n4to

    Gostaria de sugestões de tema para TCC

    @gnoo Sim. Estou no último ano de engenharia de computação
  8. Gabriel de Lima

    [Duvida] Como parar um While?

    vlw
  9. Aof

    [Duvida] Como parar um While?

    sim. existem varias formas de fazer isso, vc pode dar um NOP no loop todo, mas não é totalmente seguro, pode-se fazer um JMP antes do loop e pulando para o final do mesmo, assim ele nunca vai acontecer, etc.
  10. matarms

    Crackme 01 - Linux - Geyslan

    Por algum motivo estou sem permissão para ver o tópico, alguém sabe o que pode ser?
  11. void_

    Emuladores de Redes

    Ponto de partida interessante, caso alguém mais venha a se interessar pelo CORE. Parte 1 - Introdução Teórica: Parte 2 - Exemplo de Emulação:
  12. Aof

    AnalyseMe - Nível 06

    iniciando as analises
  13. void_

    Quais os conhecimentos nescessarios ?

    Falando bem por cima, é necessário saber programação, redes e conhecer também sistemas operacionais, uma vez que a exploração de falhas interliga esses conhecimentos. É necessário saber programar para compreender na prática como a exploração em si pode ser realizada, ao invés de depender de exploits de terceiros que, na maioria das vezes, não funcionam ou não produzem o resultado esperado. Como se tratam de servidores e serviços de rede, é necessário saber como eles funcionam. Inclusive, muitos detalhes desse conhecimento precisam ser explícitos no código de um exploit. Quanto aos sistemas, não é nem preciso falar. Se você não compreende o sistema que ataca, você não compreenderá como/por quê a falha acontece e, no caso de sucesso em uma exploração (acesso remoto, por exemplo), você não vai conseguir fazer muita coisa se não souber como o sistema é configurado, quais são seus comandos, etc.
  14. Nicole Reis

    Quais os conhecimentos nescessarios ?

    Quais os conhecimentos nescessarios para ser um pesquisador e criar exploits para serviços comuns como ftp,ssh,pop,smtp e etc ?
  15. gnoo

    [Duvida] Como parar um While?

    @Gabriel de Lima Desculpa. Mas nesse caso não te posso ajudar eu não tenho conhecimento nesse campo vou marcar aqui o @Fernando Mercês Pode ser que ele te ajude... Ou talvez apareça outra pessoa. Abraço
  16. Gabriel de Lima

    [Duvida] Como parar um While?

    @void_ @gnoo vcs não entenderam '-' eu estava falando parar loop pelo x64dbg, isto é possivel?
  17. void_

    [Duvida] Como parar um While?

    Eu não programo em C no Windows ; na verdade, eu não uso Windows, então não vou poder entrar em detalhes sobre o conteúdo de Windows.h, mas o erro aí foi claramente não estabelecer uma condição de parada no loop while. Uma vez que a condição sempre é verdadeira, ela nunca irá terminar, pois nunca se tornará falsa. Eu escreveria esse código da seguinte forma: #include <Windows.h> #include <stdio.h> int main(){ while(true){ if (IsDebuggerPresent() == 1) { printf("Debugger Ativo.\n"); break; } else printf("Debugger nao ativo.\n"); } return 0; } Fazendo uso do break com uma comparação condicional (if), você cria uma exceção no fluxo de execução do programa, dando uma chance da condição se tornar falsa e encerrar o loop de while. Note que é interessante você colocar em else uma função que permita verificar se em algum momento IsDebuggerPresent() muda de 0 para 1 e em caso negativo, faça algo para mudar esse valor, senão você verá um flood constante de "Debbuger não ativo" na tela.
  18. gnoo

    [Duvida] Como parar um While?

    ola @Gabriel de Lima espero que esteja tudo bem contigo :) Olha eu não consigo de momento dar-te um código como exemplo porque estás a usar headers do windows que eu não tenho no meu sistema. Mas o que te posso dizer é que o teu problema está na tua lógica, tu quando defines a função func_001() , essa função tem retornar um valor para que ao chamar essa função na função main() tu possas comparar esse valor numa estrutura de decisão e se essa comparação for verdadeira então chamas o break para interromper esse ciclo de repetição, ou seja dentro do teu cico while está a faltar uma comparação entre dois valores um deles retornado fa tua função func_001(). Vou deixar este código para ver se perceber o que quero dizer e se consegues estruturar o teu raciocínio... #include<stdio.h> int soma(void){ int num1 = 4, num2 = 3, soma_numeros; soma_numeros = num1 + num2; return soma_numeros; }; int main(void){ int x; int total = soma(); while( x < 10){ printf("%d\n", x); x++; if(x == total){ break; } } }; eu penso que seja essa a solução mas eu não sou especialista em C, talvez alguém tenha outro tipo de abordagem que eu desconheço. Abraço.
  19. Gabriel de Lima

    [Duvida] Como parar um While?

    Eu estou fazendo uns testes, eu fiz um código super simples: #include <Windows.h> #include <stdio.h> void func_001(){ if (IsDebuggerPresent() == 1){ printf("Debugger Ativo.\n"); }else{ printf("Debugger nao ativo.\n"); } } int main(){ while(true){ func_001(); } return 0; } Ele só tem um loop em um IsDebuggerPresent, eu queria saber como faço para não acontecer o loop? No IDA: IsDebuggerPresent: http://prntscr.com/mj8sqp Main com o loop: http://prntscr.com/mj8t4b no x64dbg: Main + Func_001: http://prntscr.com/mj90hp quero muito saber como fazer para dar um break no while (mas ja que é uma CALL acho que não tem como.... até pq sou mt leigo)
  20. Euler Neto

    CAJUsec

    Evento de Segurança da Informação que será realizado em 6 de Julho de 2019 na cidade de Aracaju, Sergipe. A proposta do evento é reunir estudantes, profissionais e entusiastas dessa área que vem crescendo muito nos últimos anos. www.cajusec.com.br
  21. R3n4to

    Gostaria de sugestões de tema para TCC

    Obrigado, @gnoo. Vou dar uma olhadinha nesses links e pesquisar sobre o assunto. Valeu mesmo!
  22. Anteriormente
  23. 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 a carroça na frente dos cavalos e vamos em partes. Antes de começarmos a discutir detalhes mais específicos acerca da depuração de processos, é necessário um entendimento básico de como os mesmos se comunicam na plataforma que vamos desenvolver o tal debugger, no nosso caso, UNIX-like. Inter-process communication (IPC) IPC é uma forma que processos podem utilizar para se comunicar dentro de um sistema operacional. Existem diversas maneiras de comunicação: via sinais (signals), sockets, etc, mas para a criação de um debugger é apenas necessário usar sinais para a execução. Sinais funcionam como uma notificação que pode ser enviada à um processo específico para avisar que algum evento ocorreu. É possível também programar um processo para reagir aos sinais de maneira não padrão. Se você já teve um uso razoável de Linux, você provavelmente já enviou sinais à um processo. Por exemplo, quando você aperta Ctrl+C para interromper a execução de um processo, é enviado um sinal do tipo SIGINT, que nada mais é que uma abreviação para Signal Interruption. Se o processo em questão não está preparado para reagir a este sinal, o mesmo é terminado. Por exemplo, considere o seguinte código: #include <stdio.h> int main(void) { while(1) printf("hi\n"); return 0; } Ao compilar e executar o código acima e apertar Ctrl+C, o mesmo encerra como esperado, porém podemos verificar que um SIGINT foi enviado usando a ferramenta ltrace, que além de listar chamadas a bibliotecas também mostra os sinais enviados ao processo: $ gcc -o hello hello.c $ ltrace ./hello Rode o comando acima e aperte Ctrl+C para verificar o sinal enviado! Programando reações a sinais A capacidade de enviar sinais a um processo nos dá a possibilidade de saber o que esta acontecendo com algum processo específico que estejamos depurando. Para programar reações a algum tipo de sinal, podemos incluir a biblioteca signal, para que possamos usar a função e estrutura (struct) sigaction: struct sigaction { void (*sa_handler)(int); void (*sa_sigaction)(int, siginfo_t *, void *); sigset_t sa_mask; int sa_flags; void (*sa_restorer)(void); }; int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); A struct sigaction nos permite adicionar handlers (tratadores) para nossos sinais, enviando o endereço de nossa função que realiza algum tipo de ação baseada no sinal enviado para o campo sa_handler(sigaction handler). Um handler neste contexto nada mais é que uma função que sempre vai ser chamada quando um dado sinal for enviado, dessa maneira podemos executar alguma ação quando recebermos um sinal. Já a função sigaction recebe o número do sinal, porém uma série de macros já são pré-definidas e podemos passar como argumento apenas o nome do sinal, como SIGINT por exemplo. A função recebe também a referência da struct previamente definida (struct sigaction) e, caso precise trocar um handler por outro, também recebe no último argumento (oldact) o handler anterior, para que possa ser feita a troca pelo novo. Como não é o nosso caso, vamos passar NULL neste último argumento. O código abaixo simula um uso de handlers de sinais, que imprime uma mensagem quando um sinal é enviado: #include <stdio.h> #include <signal.h> #include <unistd.h> // sleep void simple_handler(int sig) { printf("Hello SIGINT\n"); } int main() { struct sigaction sig_handler = { simple_handler }; sigaction(SIGINT, &sig_handler, NULL); sleep(1000); return 0; } Ao executar o código acima, aperte Ctrl+C e veja que será imprimido a mensagem do nosso handler! O manual da signal contém uma tabela com todos os sinais usados por sistemas POSIX. Para enviarmos sinais facilmente em sistemas UNIX podemos usar o comando kill: $ kill -l O comando acima mostra todos os sinais e seus respectivos números, com isso podemos fazer algo interessante. Por exemplo, rode o código acima em um terminal separado e use o kill para se comunicar com o seu processo, assim: $ ps ax | grep simple_signal $ kill -2 <pid> Primeiro buscamos o PID do nosso processo então usamos o kill que espera como primeiro argumento numero do sinal (listado em kill -l) e o segundo o PID do processo alvo. Ao enviar o sinal, podemos ver que o nosso código reage aos sinais que foram associados a um handler especifico! Tente criar handlers para vários sinais e teste usando o comando kill. 😃 Abaixo um código para demonstrar um uso real de um software que escreve dados aleatórios nos arquivos temporários e antes de uma finalização abrupta, é deletado o que foi usado: #include <stdio.h> #include <signal.h> #include <unistd.h> // Log errors void fatal(const char* err_msg) { fprintf(stderr, "Error: %s\n", err_msg); } // Escreve algo random em um arquivo void random_work() { FILE* temp_files = fopen("/tmp/foo", "w"); if (!temp_files) { fatal("Cant open foo!"); } else { fprintf(temp_files, "%s", "Random random random!\n"); fclose(temp_files); } } // Handler para deleta arquivos criados void handler_termination(int sig) { // Verifica se existe usando a function access // Caso existe usa a syscall unlink para remover o arquivo if (access("/tmp/foo", R_OK) < 0) return; unlink("/tmp/foo"); printf("All clean! closing...\n"); } int main() { //struct sigaction que recebe a function handler_termination como valor do seu handler struct sigaction interruption_handler; interruption_handler.sa_handler = handler_termination; // Syscall sigaction que associa o nosso handler para um sinal especifico // O ultimo campo NULL, espera o handler anterior para que posso tornar o novo handler o default sigaction(SIGINT, &interruption_handler, NULL); random_work(); sleep(1000); handler_termination(0); return 0; } Dica: Dê uma olhada na tabela de sinais e crie handlers para o mesmo código acima! Para a construção do nosso debugger iremos focar mais no signal SIGTRAP, para que seja possível detectar se o nosso processo sofreu uma "trap" da CPU. Uma trap ocorre quando acontece alguma interrupção síncrona na execução, que faz o processo ficar parado até que o sistema operacional execute alguma ação. Isto será usado para implementar e interpretar breakpoints. Veremos tudo isso com mais detalhes em breve! Sinta-se livre para comentar e sugerir correções e melhorias. Até o próximo artigo! Links úteis: Syscall IPC CERO 11 – Linux Syscalls Syscalls, Kernel mode vs User mode Programação em C
  24. gnoo

    Gostaria de sugestões de tema para TCC

    Olá @R3n4to tudo bem? Podia ser interessante pegar neste tema sobre os routers e as suas configurações, firmewarw, que o @phbs14 trouxe noutro post que podes ver nest link: https://www.mentebinaria.com.br/forums/topic/489-firmware-de-operadoras-em-routers/ Acho que é um assunto que não se fala muito, e é um tema com bastante relevância, especialmente após alguns ataques que foram feitos nos ultimos tempos, tens como exemplo o video que o @Fernando Mercês deixo no canal do youtube, que podes ver aqui. https://www.youtube.com/watch?v=ndQGJdm2Nbk Abraço.
  25. Leandro Fróes

    AnalyseMe - Nível 06

    Boa tarde pessoal, tudo certo? Como vocês podem ver tínhamos dado uma pausa nos desafios, isto para dar mais tempo à aqueles que não tentaram ainda ou não resolveram os desafios anteriores. Isto não significa que os desafios pararam, certo??? Então aqui está o nosso sétimo desafio, espero que curtam bastante o fds revertendo !!! AnalyseMe-06.exe
  26. R3n4to

    Gostaria de sugestões de tema para TCC

    Olá, Gostaria de sugestões de tema para TCC na área segurança. Segurança da informação me atrai bastante, mas estou muito sem ideia em relação ao tema para TCC. O que vocês podem me sugerir? Com o que dá para fazer um bom trabalho? Muito obrigado!
  27. void_

    Emuladores de Redes

    Eu acabei pegando o CORE e achei muito legal. Gostei principalmente da interface limpa e direta. Dá para testar várias situações com ele. O Mininet mesmo, que eu citei, acabei nem testando.
  28. joaomorenorf

    CriptoTrem BH

    Oi gente, no dia 13 de Abril de 2019 vai rolar o CriptoTrem, uma criptofesta em Belo Horizonte no Centro de Referência da Juventude, na praça da estação.
  1. Mais Resultados
×