quarta-feira , julho 26 2017
Últimas Notícias

Dicas para iniciantes – Python

Introdução

Antes de ler este artigo, é muito importante que primeiramente leia o artigo sobre programação para iniciante.

O Python é uma linguagem de programação interpretada, multiparadigma, multiplataforma, simples, poderosa com muitos recursos prontos e uma grande comunidade que a utiliza e poderá dar suporte.

A simplicidade pode ser visto abaixo quando comparamos a linguagem Python com o C em um simples “Hello, World!”, com o java essa diferença seria ainda maior.

 

 

 

 

 

 

Uma linguagem que é bem objetiva, limpa e nem por isso deixa de ser menos poderosa do que as demais. O seu poder é quase onipresente, quem programar pra web, desktop, mobile, computação gráfica, assembly in line, bot, criar malware, forense, pentest, web crawler, jogos, inteligência artificial e etc… Python está em todos estes lugares, com ótimas ferramentas, bibliotecas e frameworks para tornar isto muito simples e versátil. Para ter uma ideia o próprio Google Search Engine foi criado em Python (Ou pelo menos usava), além de outras ferramentas.

 

Versões do Python

Uma peculiaridade do Python é que o mesmo trabalha com duas versões, 2.x e 3.x. A versão 3.x foi criada depois da 2.x de forma mais estruturada e algumas coisas mudaram de forma bem sutil, como as funções como print, se tornou obrigatório usar parenteses, no 2.x era print “Hello World” e no 3.x ficou print(“Hello World”). Algumas pessoas tiveram resistência ao migrar de uma versão para outra, dessa forma os desenvolvedores do Python mantém as 2 versões, ao invés de descontinuar a 2.x.

Na área de segurança, quando se vai estudar sobre o tema, alguns cursos e livros poderão usar uma versão ou outra, atualmente a maioria dos materias feitos são para a 3.x, mas alguns ainda criam na versão 2.x por ser a que gostam simplesmente ou por certos recursos existentes na 2.x que ainda não existem na 3.x, principalmente questão de bibliotecas.

 

Desvantagens

Foi se falado muito bem do Python atém o momento, mas ele tem desvantagens e limitações.

  • Por ser uma linguagem interpretada, ele requere ter um interpretador Python instalado na máquina onde será executado. Existem sim formas de compila-lo, mas é algo o qual ele não foi projetado; (e sabemos a desvantagem disso)
  • Ainda precisa de um pouco mais de maturidade no desenvolvimento de interfaces gráficas e web. Ele consegue fazer, mas comparado a seus concorrentes de mercado que já tem muito mais maturidade nisso, ele perde um pouco de seu brilho;
  • A orientação a objetos para quem conhece Java, vai sentir falta de diversos recursos e padrão do Java, pois apesar de trabalhar com orientação a objetos, ele não tem uma riqueza tão grande nativamente, as vezes necessitando de frameworks ou bibliotecas para complementa-lo um pouco;
  • Python é mais lento comparado a outras linguagens, tem alguns formas de otimiza-lo, mas continua sendo mais lento.

 

Materiais de estudo básico de Python

Os primeiros livros que indico a ler são:

  • Pense em Python
  • Introducing Python: Modern Computing in Simple Packages
  • Learning Python, 5th Edition

Em seguida para se aprofundar mais em Python indico:

  • Programming Python: Powerful Object-Oriented Programming 4th Edition [Fala muita coisa de Python, se quiser pode ler apenas ele dentre os que falei]
  • Python Para Desenvolvedores [Dá uma visão geral do que pode ser feito com Python para quem já tem mais experiência em programação]
  • Python Pocket Reference: Python In Your Pocket (Pocket Reference (O’Reilly)) 5th Edition
  • Python Cookbook, Third edition
  • Python Fluente
  • Automatize Tarefas Maçantes com Python [Serve para automatizar muitas de suas rotinas, uso muito no trabalho]

Depois poderá procurar por temas mais específicos de Python como Machine learning, Web scraping e outros de acordo com sua necessidade, as editoras que mais indico é a No Starch PressO’Reilly.

Com relação a cursos tem o gratuitamente e em português o curso Python para Zumbis e caso deseje comprar indico os da Udemy do professor Marcos Castro, da Alura e da DevMedia.

Uma dica para quem busca programação web para Python, recomendo pesquisar por Django que é a framework mais popular para Python e para desenvolvimento de interface gráfica multiplataforma (desktop e mobile, para qualquer sistema) indico estudar o Kivy.

 

Python na área da segurança

Python atualmente tem sido bem utilizado na área da segurança. Ao longo do tempo eu via mais a utilização de C, Perl, Pascal e Visual Basic nesse cenário, hoje notei uma demanda crescente em Python, tanto ferramentas criadas com ele como materiais didáticos de segurança que o utilizam, claro que para algumas coisas o C e Assembly não tem como substituir. Inclusive o immunity debugger é feito em Python e trabalha com plugins escritos em Python.

 

Python para Pentest

Python tem sido muito popular na área de pentest ultimamente com uma grande força, tem até certificações de pentest em Python.

Na parte de livros eu livros eu indico:

  • Violent Python: A Cookbook for Hackers, Forensic Analysts, Penetration Testers and Security Engineers
  • Black Hat Python: Python Programming for Hackers and Pentesters [Tem versão em português]
  • Gray Hat Python: Python Programming for Hackers and Reverse Engineers

 

Referente a cursos indico:

  • Python for pentesters – Pentester Academy
  • Black Hat Python – Udemy
  • Python para Hackers – Udemy
  • Security Specialist da Esecurity [Fala um pouco no meio do curso]

 

Python para Computação Forense

Na área de forense também existem algumas referências de livros, é um grande exemplo é o immunity dB ser criado nessa linguagem. Apesar de ter alguns livros sobre, não os achei tão bons do mesmo nível dos de pentest.

  • Python Forensics: A Workbench for Inventing and Sharing Digital Forensic Technology
  • Learning Python for Forensics
  • Mastering Python Forensics

 

Python para Auditoria

Na parte de auditoria de redes, indico apenas o Python Passive Network Mapping: P2NMAP.

 

Outros

Na área de criação de ciphers, tem um livro gratuito que é bem simples e básico sobre o assunto usando python:  Hacking Secret Ciphers with Python (English Edition)

 

Não indico a se prenderem apenas a estas referências, poderá encontrar muitas bibliotecas, repositórios no GitHub e em alguns blogs e fóruns com excelentes exemplos e utilitários que poderá usar em python.

Sobre NullS3c

Possuo especialidade na área de computação forense. Mais informações sobre mim poderá ver em: https://www.linkedin.com/in/victor-cunha-8753073b/
Free WordPress Themes - Download High-quality Templates