Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 a 10 de 16

Tópico: Dúvida com fork()

  1. #1
    Novato Avatar de edufgimenez
    Data de Ingresso
    Mar 2014
    Localização
    #!/usr/bin/perl
    Posts
    15
    Post Thanks / Like

    Dúvida com fork()

    Bom dia pessoal, tenho uma dúvida com o uso do fork() no Perl, gosto muito de programar em Perl e ultimamente estou desenvolvendo uma ferramenta para me auxiliar em pentest e para aprimorar mais meu conhecimento, e pelo que já vi em bots de irc ai o fork() é usado para trabalhar com vários processos de uma vez e fazer mais rápido um teste em um link por exemplo ( se não for isso me corrijam por favor ), o problema é que não consigo compreender o uso correto dele num script e não entendo muito bem a real função, alguém pode me explicar por favor? Já achei vários tutoriais sobre o fork, mas todos em inglês e meu inglês é fraco então não consigo entender muito bem.



    Obrigado desde já pela ajuda.

  2. #2
    Membro ingresso
    Data de Ingresso
    Apr 2012
    Posts
    70
    Post Thanks / Like
    fork é usado para multithreads (capacidade de se executar múltiplos processos ao mesmo tempo de forma independente) , um exemplo usando o loop while:

    Código PHP:
    #!/usr/bin/perl

    sub funcao {
            while(
    1){
                    print 
    "Voce esta em outra funcao | pid => $$\n";
            }
    }

    my $pid fork();

    if(
    $pid){
            
    funcao
    }

    while(
    1){
            print 
    "Voce esta na funcao principal | pid => $$\n";

    Os dois loops serão executados simultaneamente.

  3. #3
    Novato Avatar de edufgimenez
    Data de Ingresso
    Mar 2014
    Localização
    #!/usr/bin/perl
    Posts
    15
    Post Thanks / Like
    Compreendi então que ele é um sistema em vez de executar uma função apenas do código vai criar vários "processos" para executar várias tarefas ao mesmo tempo agilizando o trabalho, mas por exemplo uma linha como essa:

    Código:
    if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else {
    funções;
    } exit; }
    consegue me explicar mais ou menos uma linha dessa do que ela realmente está fazendo? Desculpa ser chato é que não consigo compreender :s é necessário usar o exit no final mesmo? Ele que "mata" esses processos extras?
    Última edição por str0p; 27 Mar 2014 às 11:58.

  4. #4
    Hacker ingresso Avatar de guedes.acp
    Data de Ingresso
    Sep 2010
    Localização
    #!/usr/bin/env perl
    Posts
    1.444
    Post Thanks / Like
    Cara,
    To num smartphone, então nao vou poder te ajudar muito agora. Amanha tento ajudar mais.
    Mas vamos la. Essa linha e uma maldita POG pq ele nao trata o erro por completo quando usa dois else um deles deveria ser um elsif.
    O exit finaliza o fork, pois você nao colocou o código completo mas imageno que esteja dentro de um loop tipo while.
    Agora se vale um conselho nao use fork. Fork nao roda em windows direito então perde a portabilidade.
    Eu tinha um projeto, ta cheio de erros, para pentest. Procura no cpan P50Tools.

    No lugar do fork use assíncrono, fica mais leve. Procure no CPAN AnyEvent.
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!


    just another biomedical perl hacker try to learn Delphi

  5. #5
    Novato Avatar de edufgimenez
    Data de Ingresso
    Mar 2014
    Localização
    #!/usr/bin/perl
    Posts
    15
    Post Thanks / Like
    guedes obrigado pela informação... estou dando uma olhada tanto no p50tools e no anyevent o problema é que nem falei no meu primeiro post ali, eu não entendo muito inglês e o didático de Perl em Português é difícil de se achar, pago muito pau para entender como usa esses módulos do cpan :/ tento até hoje entender o WWW::Mechanize porque não consigo ler bem o doc dele e o que ele tenta passar.

  6. #6
    Hacker ingresso Avatar de guedes.acp
    Data de Ingresso
    Sep 2010
    Localização
    #!/usr/bin/env perl
    Posts
    1.444
    Post Thanks / Like
    Amigo, infelizmente todo programador tem que ter noção básica de inglês, para qualquer linguagem, ate portugol.

    Particularmente acho Perl mais fácil de aprender que pascal, linguagem linda mesmo.

    Felizmente o inglês usado na programação é bastante técnico, e muitas coisas são fáceis de entender pois lembram termos em português.
    Então sugiro estudar mais a linguagem em si, pois se não compreender as instruções de uso de um código, lendo o mesmo você será capaz de entender.
    No Fórum Invaders tem bastante matérias para ajudar, basta pesquisar no fórum.
    Abaixo alguns links:

    P50Tools foi um projeto que iniciei mas não dei continuidade, pretendo retoma-lo um dia, voltado a pen-test, ele explora falhas extremamente básicas, contudo ele tem vário bugs.

    O AnyEvent, tem vários outros módulos semelhante, vem trazer soluções que substituem outras como fork ou threads. Threads deixa o sistema muito lento, e fork já é uma POG usada em Linux que facilmente gera buffer overflow, alguns magos fazem uma pog ainda pior e com poder de Rá usam fork no windows de uma forma que nenhum ser terráquio é capaz. O AnyEvent é usado para uma outra solução em programação chamada de Assíncrono.
    Achei esse tópico ate então: http://www.forum-invaders.com.br/vb/...ork_call%28%29

    E o WWW::Mechanize eis algumas utilizações:
    http://www.forum-invaders.com.br/vb/...ot-shoutbox-FI
    http://www.forum-invaders.com.br/vb/...ight=mechanize
    http://www.forum-invaders.com.br/vb/...ight=mechanize

    espero que ajude
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!


    just another biomedical perl hacker try to learn Delphi

  7. #7
    Novato Avatar de edufgimenez
    Data de Ingresso
    Mar 2014
    Localização
    #!/usr/bin/perl
    Posts
    15
    Post Thanks / Like
    Muito obrigado pela ajuda guedes, chegando em casa vou dar uma lida nos tópicos que você enviou como referência, eu tenho uma noção básica do inglês... até entendo bem lendo, o problema que dependendo do jeito que explica eu não consigo absorver o que o tutorial ou até mesmo os docs do Perl estou tentando passar e fico perdido de como iniciar o projeto usando aquele módulo ou função :/, consigo até me virar e criar alguma coisa porém não sei se do jeito que estou fazendo é uma boa prática de programação entende? Se é o caminho mais correto de criar tal função, adoro Perl, é uma linguagem prática e vem flexível porém gostaria que tivesse mais conteúdo em português ;s

  8. #8
    Hacker ingresso Avatar de guedes.acp
    Data de Ingresso
    Sep 2010
    Localização
    #!/usr/bin/env perl
    Posts
    1.444
    Post Thanks / Like
    Realmente a pratica faz toda diferença. Em 2 meses no maximo você vai ta e preferindo usar suas próprias rotinas e deixando o cpam so pro essencial mesmo.
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!


    just another biomedical perl hacker try to learn Delphi

  9. #9
    Novato Avatar de edufgimenez
    Data de Ingresso
    Mar 2014
    Localização
    #!/usr/bin/perl
    Posts
    15
    Post Thanks / Like
    Como disse, estou com um projeto que estou desenvolvendo para me auxiliar nas buscas e testes de falhas em websites na ideia de usar isso para pentest, mas também para aprimorar meu conhecimento pesquisando sobre funções que eu tenho que usar... pretendo deixar esse projeto em aberto para outras pessoas ( mesmo sabendo que algumas vão usar para prejudicar webpages por ai :/ ), mas terminando eu posto ele aqui e você poderia dar uma olhada e me dizer o que não precisaria estar ali ou o que seria melhor usar e tal função? Me ajudaria muito a entender melhor o que eu posso fazer de melhor.

  10. #10
    Hacker ingresso Avatar de guedes.acp
    Data de Ingresso
    Sep 2010
    Localização
    #!/usr/bin/env perl
    Posts
    1.444
    Post Thanks / Like
    Ajudamos sim.
    Mas de uma olhadinha la no P50Tools,
    Vai ajudar a se orientar para desenvolvimento da sua ferramenta.
    Desenvolve em módulos, vai te ajudar a usar depois.
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!


    just another biomedical perl hacker try to learn Delphi

Tags para este Tópico

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •