Successfully reported this slideshow.
Your SlideShare is downloading. ×

Hackeando o Facebook com Python

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 136 Ad

Hackeando o Facebook com Python

Download to read offline

Workshop de 2h no Campus Party 2013. Introdução à linguagem Python. Hackear o Facebook para baixar fotos de amigos. Requisitos: conta no Facebook, notebook com Python 3.x instalado e vontade de aprender coisas novas. Resumo nos vídeos abaixo:
http://www.youtube.com/watch?v=QH7b37URGSo
http://www.youtube.com/watch?v=or1gtKGhMLE

Workshop de 2h no Campus Party 2013. Introdução à linguagem Python. Hackear o Facebook para baixar fotos de amigos. Requisitos: conta no Facebook, notebook com Python 3.x instalado e vontade de aprender coisas novas. Resumo nos vídeos abaixo:
http://www.youtube.com/watch?v=QH7b37URGSo
http://www.youtube.com/watch?v=or1gtKGhMLE

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to Hackeando o Facebook com Python (20)

Advertisement

More from FATEC São José dos Campos (20)

Recently uploaded (20)

Advertisement

Hackeando o Facebook com Python

  1. 1. Hackeando o Facebook com Python 3 Fernando Masanori FATEC Centro Paula Souza @fmasanori
  2. 2. Agenda • • • • Python 3 (nestes slides) Facebook Material para aprofundamento Disclaimer: code for fun (no password hacking) • Obs: se preferir: slides para Python 2.7 • Obs: em junho de 2013 a API aberta do Twitter foi aposentada, veja nos slides finais como autenticar e acessar os dados
  3. 3. Conhecendo os assistentes • • • • • Estudantes Professores Profissionais de TI Sabem programar Sabem programar em Python
  4. 4. Prof old notebook
  5. 5. Prof new notebook
  6. 6. CV Resumido • • • • • • • • • Graduado IME USP Mestrado ITA Software Express Credicard Mastercard PriceWaterhouseCoopers ITAU BankBoston Fundador Hacker Clube SJC FATEC SJC (amo dar aulas) Nota dada para minhas aulas: 9,7
  7. 7. Adicione / Siga o Prof • • • • • Fernando Masanori (Massa) facebook.com/fmasanori twitter.com/fmasanori about.me/fmasanori Interesses: Algoritmos, Estrutura de Dados, Python, NoSQL, Business Intelligence, Google Technology, Facebook, Twitter
  8. 8. Palestras em eventos de TI Porto Alegre, Brasil - 04/07/2013 - FISL14 - Palestra Fernando Masanori -Python for Zombies - Foto: Guilherme Dias
  9. 9. Algumas palestras • • • • • • • • • • • • PyCon Uruguay 2013 (em espanhol) DevDay2013 Belo Horizonte - MG Python para Zumbis – RuPy Conference 2013 Para gostar de Python – Python Nordeste 2013 e TDC 2013 Hoje sou um professor FELIZ – FISL 2013 Python for Zombies – FISL 2013 MongoDB e Python – Python Nordeste 2013 NoSQL e Python – RuPy Conference 2012 I Love JSON Module – Python Brasil 2012 Pentaho: suite para BI JUG Vale 2012 Cassandra NoSQL – JUG Vale 2012 Benchmark LucidDB x MySQL – NoSQL(br)/v2
  10. 10. CEDET Decolar
  11. 11. Casdinho
  12. 12. We Love Python
  13. 13. We Love Python • Permite focar no problema, sem perder tempo na sintaxe • Interativa • Alta produtividade • Baterias inclusas • Comunidade livre, forte, diversificada, alegre e acolhedora • Orientada a objetos, funcional, estruturada • Uso geral vs nichos • Simples de iniciar, sem esgotar
  14. 14. Eu domino uma linguagem corporativa e o mercado é meu, quero vocês fora daqui. O mercado é enorme, não tem sentido que existam só linguagens corporativas
  15. 15. We Love Python http://www.python.org/psf/diversity/
  16. 16. We Love Python Meta: 20 % de presença feminina em 2015 Fato: 20% dos congressistas PyConUS 2013! Fato: Um terço dos palestrantes da PyConUS 2014!
  17. 17. We Love Python http://pyladies.com/
  18. 18. We Love Python Meta: 25% não americanos em 2015
  19. 19. First pt-br programming MOOC http://pycursos.com/python-para-zumbis/
  20. 20. Small interactive videos, no more blackboard and chalk
  21. 21. A lot of fun exercises Edx MIT Coursera Interactive Python IME-USP Codingbat Google Python Class Cracking Code Interview
  22. 22. 7200 inscriptions! and growing...
  23. 23. We Love Python Hello World
  24. 24. We Love Python Hello World
  25. 25. Origem do nome Python
  26. 26. Python como um diferencial The Python Paradox, Paul Graham
  27. 27. Python: quem usa 1h video/s 4 billion views
  28. 28. Python: quem usa
  29. 29. Python: quem usa
  30. 30. Python: quem usa
  31. 31. Python: quem usa
  32. 32. Python: quem usa
  33. 33. Python: quem usa
  34. 34. Python: quem usa
  35. 35. Python: quem usa Você sabia que o “Pi” do nome se origina de Python?
  36. 36. Python: quem usa
  37. 37. Popularidade Github e StackOverflow
  38. 38. JobTrends Indeed.com
  39. 39. Linguagem do ano TIOBE em 2007 e 2010 Linguagem Favorita do LinuxJournal: 2009 a 2013
  40. 40. Linguagem do ano TIOBE em 2007 e 2010
  41. 41. O que falam de Python “Se o Voldemort quisesse ser realmente imortal, ele teria programado uma horcrux recursiva em Python.” Harry Potter.
  42. 42. O que falam de Python “A vida é melhor sem chaves“. “A vida é curta! Você precisa de Python”. “Python me ajuda a focar nos meus conceitos em vez de ficar brigando com a linguagem”. “Eu não preciso digitar muito. Mas o que eu digito é certo”. Bruce Eckel, autor do best seller “Thinking in Java”.
  43. 43. O que falam de Python ”Entre todas as linguagens que eu aprendi, Python é a que menos interfere entre mim e o problema. É a mais efetiva para traduzir pensamentos em ações“. Eric Raymond, Autor “A catedral e o Bazar”. Contribuidor do GNU Emac, Linux, Fetchmail. Mantém o Jargonfile, mais conhecido como “Dicionário dos Hackers”
  44. 44. O que falam de Python ”Python tem sido uma parte importante do Google desde o início, e permanece assim conforme o sistema cresce e evolui... estamos procurando por mais pessoas com conhecimento nessa linguagem“. Peter Norvig, diretor de qualidade de busca do Google Inc.
  45. 45. O que falam de Python “[…] nossa filosofia aqui é “Python sempre que pudermos, C++ se necessário”". Alex Martelli, Líder Técnico, Sistemas de Produção, Google.
  46. 46. O que falam de Python “Python é rápido o suficiente para o nosso site e nos permite produzir características de fácil manutenção em tempos recordes, com um mínimo de desenvolvedores”. Cuong Do, Software Architect, YouTube.com
  47. 47. O que falam de Python “Python é uma das cinco mais importantes linguagens que todo programador deve conhecer” Bjarne Stroustrup, criador de C++
  48. 48. O que falam de Python
  49. 49. O que falam de Python "Only ugly languages become popular. Python is the one exception" Don Knuth, walking to dinner after Alan Turing's Centenary Celebration (from @ivanov on Twitter)
  50. 50. O que falam de Python "Python poised to become the de facto engine for modern science" Joshua Bloom, Berkeley Astronomy Department, at SciPy2012
  51. 51. Linguagem poderosa, mas simples de aprender Neil Ibata, 15 anos, foi aprender a programar em Python com o pai e virou capa da revista Nature.
  52. 52. Python for Kids Antonio: concluiu comigo o Coursera “Interactive Python with Games” Naomi: gosta de Justin Bieber e está estudando Python
  53. 53. Linguagem poderosa, mas simples de aprender Programa de uma menina de 12 anos do Projeto CEDET Decolar
  54. 54. Doze calouros no Google Developer Day 2011
  55. 55. 1º lugar fase regional maratona ACM- ICPC12
  56. 56. Twitter e Facebook nas aulas
  57. 57. Melhora da Auto Estima do Aluno olha eu aiiii... kkk
  58. 58. Melhora da Auto Estima do Aluno
  59. 59. Tempo Para Ser Produtivo C 2 anos Java 6 meses Python 1 mes
  60. 60. Expressive Power Language C Java Python Statements 1 2.5 6 Lines 1 1.5 6.5
  61. 61. Talk is cheap. Show me the code. Linus Torvalds
  62. 62. Check List • • • • • • Conta no Facebook Internet Python 3 IDLE ou semelhante Vamos fazer um aquecimento Tutorial 1h em Python for Zombies (Video no YouTube) • Curso completo free: Python para Zumbis
  63. 63. Aquecimento: Install Python 3 • Windows – download – executar > next > next... • Linux – sudo apt-get install idle-python3.3 • Mac OS X – sudo port install python32
  64. 64. Aquecimento: Using Python 3 • Windows – Iniciar > Programas > Python3.3 > IDLE (Python GUI) • Linux (terminal) – idle-python3.3 & • Mac OS X (terminal) – IDLE3.3 &
  65. 65. Aquecimento: hello world No modo interativo você recebe a resposta para cada comando executado
  66. 66. Aquecimento: modo interativo • • • • • • • • 2**100000 dir(“abacate”) help(“abacate”.upper) “abacate”.upper() a = “abacate” b = 42 a, b = b, a print (a, b)
  67. 67. Aquecimento: modo interativo • • • • • • • import random random.randint(1, 100) random.randint(1, 100) random.choice(42, 13, 24, 7, 3, 10) print (chr(33000)) import this import antigravity
  68. 68. Aquecimento: errando No Python os espaços iniciais são importantes
  69. 69. Aquecimento: errando
  70. 70. String diferente de inteiro
  71. 71. Aquecimento: edition mode No modo edição você precisa “rodar” o programa (Run Module ou F5)
  72. 72. Aquecimento: edition mode
  73. 73. Aquecimento: edition mode Sempre use a extensão “.py” para não perder as cores do seu programa
  74. 74. Aquecimento: jogo simples https://gist.github.com/fmasanori/6029123
  75. 75. Aquecimento: jogo simples Feito por uma menina de 12 anos https://gist.github.com/5615826
  76. 76. for == while enrustido Códigos equivalentes: for durante o dia vira while à noite
  77. 77. for == while enrustido Códigos equivalentes
  78. 78. for == while enrustido Códigos equivalentes
  79. 79. Aquecimento: criptografia Feito por outra menina de 12 anos
  80. 80. Dictionaries • O dicionário em si consiste em relacionar uma chave a um valor específico • Diferentemente das listas, onde o índice é um número, dicionários utilizam suas chaves como índice • Para adicionar novos elementos não preciso de append, basta fazer a atribuição – Se a chave já existe: o valor associado é alterado – Se a chave não existe: a nova chave é adicionada
  81. 81. Dictionaries
  82. 82. Dictionaries
  83. 83. Dictionaries • Faça um programa que leia o arquivo alice.txt e conte o número de ocorrências de cada palavra no texto. Obs.: para saber os caracteres especiais use import string e utilize string.punctuation • http://www.gutenberg.org/cache/epub/11/pg 11.txt
  84. 84. Dictionaries https://gist.github.com/4673017
  85. 85. Raspagem fotos churras alunos
  86. 86. Raspagem fotos churras alunos https://gist.github.com/6637873
  87. 87. JSON killer module
  88. 88. Java Script Object Notation • • • • • • http://json.org/ Independente de linguagem Pares nome/valor Lista ordenada Muito adotado atualmente Alternativa para o XML – Menos verbosa – Maior legibilidade
  89. 89. Chuck Norris Nerdy Jokes https://gist.github.com/4745061
  90. 90. Facebook Hacking
  91. 91. Facebook Hacking Hackers não são “do mal”?
  92. 92. Facebook Hacking “O Facebook é dirigido por hackers. A maioria das pessoas pensa de um hacker como alguém que invade um sistema de computador. Mas nós vemos isso como uma filosofia. Aqui, os hackers assumem que sempre há uma maneira melhor, mais eficiente de resolver problemas.” facebook.com/careers (2012)
  93. 93. Facebook Profile https://gist.github.com/4667205
  94. 94. Facebook Profile Photo https://gist.github.com/4667293
  95. 95. Graph API • https://developers.facebook.com/do cs/reference/api/examples/ • Objetos JSON • Links autenticados • Obs.: access_token expira • Autenticar novamente neste caso
  96. 96. Facebook Friends Anote o formato https://developers.facebook.com/docs/reference/api/examples/
  97. 97. Facebook Friends Copie o access_token https://developers.facebook.com/tools/explorer
  98. 98. Facebook Friends https://gist.github.com/4674792
  99. 99. Facebook Friends Photos https://gist.github.com/4684752
  100. 100. Android Wallpaper
  101. 101. Android Wallpaper
  102. 102. Facebook Search https://gist.github.com/4684949
  103. 103. Facebook Search
  104. 104. Sentiment Analysis (Facebook) • Sabe o que é ter vontade de acordar cedo no domingo para estudar?!? • Bom, eu também não sei explicar, mas é o que estou sentindo no momento .-. • Bora Casdinho!
  105. 105. Facebook Thanking (python 2.7) https://gist.github.com/8696746
  106. 106. Facebook Thanking (python 2.7) https://gist.github.com/8696746
  107. 107. Participantes de um evento qualquer • Hackear participantes a partir do evento criado no Facebook • Inserir link para o perfil pessoal no Facebook • Obs.: somente alguns participantes e com a foto na data do evento
  108. 108. Reddit MongoDB Client (tribute to Aaron Swartz, cofounder of Reddit, nov-1986, jan-2013)
  109. 109. Reddit Client (by 10gen) https://gist.github.com/4691077
  110. 110. Reddit Client
  111. 111. MongoDB == JSON Flexible Schema
  112. 112. Relational DB
  113. 113. Reddit MongoDB Client
  114. 114. Reddit MongoDB Client
  115. 115. Games com Python no browser http://www.codeskulptor.org/#demos-pyman.py
  116. 116. Games com Python no browser Rice Rocks (Asteroids) https://gist.github.com/fmasanori/6042315
  117. 117. Slides e videos • Python for Zombies • Hackeando o Facebook e o Twitter com Python 3
  118. 118. Links para iniciar Twitter Dev API Facebook Dev How To Facebook Dev Pictures Facebook Dev Search Facebook Dev Examples/ Facebook Dev Getting Started
  119. 119. Material para aprofundamento
  120. 120. Material para aprofundamento Obs.: o autor já anunciou a segunda edição, aguardem...
  121. 121. Material para aprofundamento
  122. 122. Material para aprofundamento
  123. 123. Material para aprofundamento
  124. 124. Material para aprofundamento Web Scraping http://pyvideo.org/video/609/web-scrapingreliably-and-efficiently-pull-data
  125. 125. Python para Zumbis (gratuito) http://beta.pycursos.com/python-para-zumbis/
  126. 126. Perguntas? fmasanori@gmail.com facebook.com/fmasanori twitter.com/fmasanori
  127. 127. Acesso Twitter Autenticado • Até junho de 2013 era possível acessar várias informações do Twitter sem necessidade de autenticação • O Twitter resolveu melhorar a segurança e utilizar OAuth (Open Authentication) até o acesso básico (search) • Neste protocolo, recebemos uma chave e senha que permite o acesso a um recurso específico durante algum tempo
  128. 128. Acesso Twitter Autenticado • O usuário do Twitter precisa autorizar um programa externo, que recebe um consumer_key e um consumer_secret • Na posse dessa chave e senha podemos pegar uma chave e senha de acesso temporária • Não se preocupe se você não entender o Tweepy. Ano passado era mais simples e só recentemente ficou mais complicado acessar o Twitter
  129. 129. Obtendo Chave e Senha de Acesso
  130. 130. Obtendo Chave e Senha de Acesso
  131. 131. Obtendo Chave e Senha de Acesso
  132. 132. Obtendo Chave e Senha de Acesso
  133. 133. Enviando mensagens
  134. 134. Enviando mensagens
  135. 135. Mensagens dos meus alunos

×