Sh3rl0ck Postado Agosto 21, 2017 em 02:54 Compartilhar Postado Agosto 21, 2017 em 02:54 O que é? A engenharia reversa, também conhecido com reverse engineering ou RE. O conceito nasceu no mundo real, quando precisávamos saber como algo funciona ou como foi construído, quando não tínhamos uma documentação ou conhecimento disso. Um grande exemplo disso tratasse do ambiente competitivo das indústrias, onde uma empresa x lançava um produto novo com mercado com um bom diferencial, principalmente com algo inovador deixando seu concorrentes para trás, mas um ou mais concorrente para não ter tanta perde financeira ou de imagem, pegava este novo produto e começava a tentar descobrir como ele funcionava de várias formas, uma delas poderia ser desmontando e analisando cada parte do produto e de que material era feito, em seguida o mesmo criava um produto similar para competir baseado na engenharia reversa realizada. Na computação a engenharia reversa existe também, tanto de hardware como para software, mas neste caso vamos somente nos referir a engenharia reversa de software, onde temos geralmente o cenário de ter um programa compilado, já em seu formato binário, não temos seu fonte, mas queremos saber como ele foi feito, como funciona e até como altera-lo. É importante destacar que RE não é exclusivo de caso de arquivos em binário, pode ser também de códigos que estão utilizado técnicas de ofuscação, arquivos intermediários de compilação e etc... Por que aprender? A RE é utilizada em várias áreas e situações, seguem alguns exemplos: Crackear um programa; Criar cheats; Proteção de propriedade intelectual do software; Debugar um programa para achar onde está dando erro; ´Criar exploits; Criação de softwares seguros; Bypass em antivírus e firewall; Na computação forense é muito utilizado para analisar malware; Criar proteções contra malwares, inclusive antivirus nada mais é do que uma analise de malware automatizada pro assim dizer; Entender como determinado programa funciona; Utilizado em parte da criação de Rootkits; Além desses fatores podem existir outros, mas dá para ter uma ideia do quão importante é aprender RE. Como aprender? Antes de partir diretamente para os estudos focados em RE, é necessário que tenha as bases bem formadas, caso contrário poderá ficar muito perdido ao ler literaturas que falam do assunto, pois parte do princípio que já conhece assembly e chamadas de sistema. Primeiramente deve-se aprender arquitetura de computadores, onde aprenderá como o computador funciona como, como o hardware e software funcionam juntos e principalmente o ponto mais importante como que funciona a memória RAM e processador, que é o que o assembly interagem bastante. A literatura que indico é: "Organização Estruturada de Computadores" de Andrew S. Tanenbaum. É indicado saber o que é um sistema operacional, pois o assembly interage frequentemente com o mesmo com as chamadas de sistema. Nesse caso deixo 2 literaturas indicadas, basta ler pelo menos uma delas: "Fundamento de Sistemas Operacionais" de Silberschatz, Galbin e Gagne (De fácil leitura) e "Sistemas Operacionais Modernos" de Andrew S. Tanenbaum. O Assembly em si, que é a linguagem que utilizará na engenharia reversa: Para linux "Assembly Language Step-by-Step: Programming with Linux" de Jeff Duntemann e "The Art of Assembly Language, 2nd Edition" de Randall Hyde. Indico aprende mais sobre o Windows como funciona internamente: "Windows Internals, Part 1: System architecture, processes, threads, memory management, and more (7th Edition)" de Pavel Yosifovich , Alex Ionescu , Mark E. Russinovich , David A. Solomon. Finalmente sobre engenharia reversa indico começar pelo "Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation" de Bruce Dang , Alexandre Gazet, Elias Bachaalany, Sébastien Josse. E depois pegar "Reversing: Secrets of Reverse Engineering" de Eldad Eilam Em seguida poderá se aprofundar melhor em outras áreas que utilizam RE. Link para o comentário Compartilhar em outros sites More sharing options...
Vernieri Postado Setembro 11, 2017 em 16:50 Compartilhar Postado Setembro 11, 2017 em 16:50 Muito bom, ajudou muito. Link para o comentário Compartilhar em outros sites More sharing options...
Fernando Eloi Postado Novembro 9, 2017 em 09:55 Compartilhar Postado Novembro 9, 2017 em 09:55 Como entrar no mercado de trabalho de RE? ´precisa de algum curso/certificação/faculdade etc? Link para o comentário Compartilhar em outros sites More sharing options...
MateusP Postado Novembro 9, 2017 em 13:18 Compartilhar Postado Novembro 9, 2017 em 13:18 3 horas atrás, Fernando Eloi disse: Como entrar no mercado de trabalho de RE? ´precisa de algum curso/certificação/faculdade etc? Não acredito que exista um mercado de trabalho de RE, em minha visão, é apenas uma habilidade ou um conjunto de habilidades utilizadas na prática de alguns profissionais, como pesquisadores, Analistas de Malware, Pentesters ou mesmo programadores "comuns" ao suportar sistemas legados. Link para o comentário Compartilhar em outros sites More sharing options...
Sh3rl0ck Postado Novembro 11, 2017 em 21:14 Autor Compartilhar Postado Novembro 11, 2017 em 21:14 Em 09/11/2017 em 11:18, MateusP disse: Não acredito que exista um mercado de trabalho de RE, em minha visão, é apenas uma habilidade ou um conjunto de habilidades utilizadas na prática de alguns profissionais, como pesquisadores, Analistas de Malware, Pentesters ou mesmo programadores "comuns" ao suportar sistemas legados. Sim, o que o MateusP disse é verdade, a serve como apoio/base para outras profissões. Link para o comentário Compartilhar em outros sites More sharing options...
Luciano Estevam Rangel Postado Junho 4, 2018 em 15:10 Compartilhar Postado Junho 4, 2018 em 15:10 excelentes dicas. Eu mesmo estava com muita dificuldade de entender a estrutura do computador (Como o programa e carregado na memoria, como o processador faz as chamadas as instruções armazendas na RAM). Acredito que o livro Organização Estruturada de Computadores e uma leitura obrigatoria para quem esta no mundo da programação assembly. Link para o comentário Compartilhar em outros sites More sharing options...
irinel Postado Junho 4, 2018 em 23:59 Compartilhar Postado Junho 4, 2018 em 23:59 como o Fernando Elói estava perguntando, então não tem faculdade para RE ? Link para o comentário Compartilhar em outros sites More sharing options...
irinel Postado Junho 5, 2018 em 00:02 Compartilhar Postado Junho 5, 2018 em 00:02 Esse Livro do Andrew S. Tanenbaum já peguei para fazer meu TCC, recomendo muito bom. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Arquivado
Este tópico foi arquivado e está fechado para novas respostas.