Engenharia reversa

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

A engenharia reversa é o processo de descobrir os princípios tecnológicos de um dispositivo, objeto ou sistema, através da análise de sua estrutura, função e operação. [1] Muitas vezes envolve desmontar algo (um dispositivo mecânico , componente eletrônico , programa de computador, ou biológico , química ou matéria orgânica) e analisar seus componentes e funcionamento em detalhes, tanto para fins de manutenção ou para apoiar a criação de um novo dispositivo ou programa que faz a mesma coisa, sem o uso ou simplesmente duplicar (sem entender) o original.

A engenharia reversa tem suas origens na análise de hardware para obter vantagem comercial ou militar. [2] O objetivo é deduzir as decisões de design de produtos finais com pouco ou nenhum conhecimento adicional sobre os procedimentos envolvidos na produção original. As mesmas técnicas são posteriormente sendo pesquisado para aplicação em sistemas de software legado, não para fins industriais ou de defesa, mas sim para substituir documentação incorreta, incompleta ou indisponível. [3]

consiste em usar a criatividade para, a partir de uma solução pronta, retirar todos os possíveis conceitos novos ali empregados.

É o processo de análise de um artefato (um aparelho, um componente elétrico, um programa de computador, etc.) e dos detalhes de seu funcionamento, geralmente com a intenção de construir um novo aparelho ou programa que faça a mesma coisa, sem realmente copiar alguma coisa do original.

Objetivamente a engenharia reversa consiste em, por exemplo, desmontar uma máquina para descobrir como ela funciona.

Ou então podemos transformar uma simples aplicação de algoritmos em binários ou hexadecimais para facilitar ou dificultar, dependendo do objetivo de quem está colocando em prática uma engenharia reversa.

Conteúdo[editar | editar código-fonte]

  • 1 Motivação
  • 2 A engenharia reversa de máquinas
  • 3 A engenharia reversa de software
    • 3.1 software binário
      • 3.1.1 técnicas de software binários
    • 3.2 Classificação
  • 4 O código-fonte
  • 5 A engenharia reversa de protocolos
  • 6 engenharia reversa de circuitos / cartões inteligentes integrados
  • 7 engenharia reversa para aplicações militares
  • 8 Legalidade
    • 8.1 Estados Unidos
    • 8.2 União Europeia
  • 9 Ver também
  • 10 Referências
  • 11 Leitura
  • 12 Ligações externas

Motivação [editar | editar código-fonte]

Razões para a engenharia reversa:

  • Interface. Engenharia reversa pode ser usado quando é necessário um sistema para fazer a interface para um outro sistema e como os dois sistemas negociar deve ser estabelecida. Esses requisitos normalmente existem para interoperabilidade .
  • Militar ou comercial espionagem . Aprender sobre ou mais recente pesquisa do concorrente de um inimigo por roubar ou capturar um protótipo e desmantelá-lo. Isso pode resultar em desenvolvimento de produto semelhante, ou melhor contramedidas para isso.
  • Melhorar deficiências de documentação. A engenharia reversa pode ser feito quando a documentação de um sistema para a sua concepção, produção, operação ou manutenção têm deficiências e projetistas originais não estão disponíveis para melhorá-lo. RE de software pode fornecer a documentação mais atual necessário para compreender o estado mais atual de um sistema de software
  • Obsolescência. circuitos integrados muitas vezes parecem ter sido projetados em sistemas proprietários, obsoletos, o que significa que a única maneira de incorporar a funcionalidade em nova tecnologia é a engenharia reversa do chip existente e, em seguida, re-projetar -lo.
  • Modernização Software. RE é geralmente necessária, a fim de compreender o "como é" estado de software existente ou legado, a fim de estimar adequadamente o esforço necessário para migrar conhecimento do sistema em um 'ser' Estado. Muito disso pode ser impulsionada por mudanças de requisitos funcionais, de conformidade ou de segurança.
  • Produtos Análise de Segurança. Para examinar como um produto funciona, quais são as especificações de seus componentes, estimar os custos e identificar o potencial deviolação de patente . Aquisição de dados sensíveis por desmontar e analisar o projeto de um componente do sistema. [4] Outra intenção pode ser a de remover proteção contra cópia, a evasão de restrições de acesso.
  • Resolução de Bug. Para corrigir (ou às vezes para melhorar) software legado que não é mais suportada por seus criadores (por exemplo Abandonware ).
  • Criação de duplicatas não licenciados / não aprovados, tais duplicatas são chamados às vezes clones no domínio de computação.
  • Fins acadêmicos / aprendizagem. RE para fins de aprendizagem podem ser compreender as questões-chave de um projeto mal sucedido e, posteriormente, melhorar o design.
  • Inteligência técnica do competidor. Entenda o que um concorrente está realmente fazendo, contra o que eles dizem que estão fazendo.

A engenharia reversa de máquinas [editar | editar código-fonte]

Como computer-aided design (CAD) tornou-se mais popular, engenharia reversa tornou-se um método viável para criar um modelo 3D virtual de uma parte física existente para uso em CAD 3D, CAM , CAE ou outro software. [5] O inverso- processo de engenharia envolve a medição de um objeto e, em seguida, reconstruí-lo como um modelo 3D. O objeto físico pode ser medida usando digitalização em 3D tecnologias como CMMs , scanners a laser , digitadores luz estruturada , ou industrial CT Scanning (tomografia computadorizada). Os dados medidos isoladamente, geralmente representado como uma nuvem de pontos , carece de informação topológica e é, portanto, muitas vezes processado e modelado em um formato mais útil como uma malha triangular de cara, um conjunto de NURBS superfícies, ou um CAD modelo.

A engenharia reversa também é usado pelas empresas para trazer geometria física existente em ambientes de desenvolvimento de produtos digitais, para fazer um registro digital 3D de seus próprios produtos, ou para avaliar os produtos dos concorrentes. Ele é usado para analisar, por exemplo, como um produto funciona, o que ele faz, e quais os componentes que consiste de, estimar custos, e identificar o potencial de patente violação, etc

Engenharia de valor é uma atividade relacionada também utilizado por empresas. Trata-se de-construção e análise de produtos, mas o objetivo é encontrar oportunidades de redução de custos.

A engenharia reversa de software [editar | editar código-fonte]

engenharia reversa termo aplicado ao software significa coisas diferentes para pessoas diferentes, o que levou Chikofsky e Cruz para escrever um papel pesquisando os vários usos e definir uma taxonomia . Do seu papel, eles afirmam: "A engenharia reversa é o processo de análise de um sistema sujeito a criar representações do sistema em um nível mais alto de abstração". [6] Ele também pode ser visto como "andar para trás ao longo do ciclo de desenvolvimento." [7] Neste modelo, a saída da fase de implementação (em forma de código-fonte) é a engenharia reversa de volta para a fase de análise, em uma inversão da tradicional modelo em cascata . A engenharia reversa é um processo de exame só: o sistema de software em questão não é modificada (o que tornaria re-engenharia ). software anti-adulteração tecnologia como ofuscação é usado para impedir tanto a engenharia reversa e reengenharia de software e software proprietário sistemas de potência. Na prática, os dois tipos principais de engenharia inversa emergir. No primeiro caso, o código fonte já está disponível para o software, mas aspectos de nível superior do programa, talvez mal documentado ou documentados, mas não é mais válido, são descobertos. No segundo caso, não há código fonte disponível para o software, e todos os esforços no sentido de descobrir um possível código-fonte do software são considerados como engenharia reversa. Este segundo uso do termo é o que a maioria das pessoas está familiarizada. A engenharia reversa de software pode fazer uso da sala de design clean técnica para evitar violação de direitos autorais.

Em uma nota relacionada, teste de caixa preta em engenharia de software tem muito em comum com a engenharia reversa. O testador geralmente tem a API , mas seus objetivos são a encontrar bugs e recursos não documentados por bashing o produto de fora. [8]

Outros efeitos da engenharia reversa incluem auditoria de segurança, a remoção de proteção contra cópia (" rachaduras "), evasão de restrições de acesso, muitas vezes presentes emprodutos eletrônicos de consumo , customização de sistemas embarcados (como sistemas de gerenciamento de motor), em casa reparos ou modernizações, activar recursos adicionais em hardware de baixo custo "aleijado" (como algumas placas gráficas chip-sets), ou mesmo mera satisfação da curiosidade.

Software Binary [editar | editar código-fonte]

Este processo é às vezes chamado de código de engenharia reversa, ou RCE. [9] Como exemplo, descompilação de binários para a plataforma Java pode ser feito usando Jad. Um caso famoso de engenharia reversa foi o primeiro não- IBM implementação do PC BIOS que lançou o histórico PC IBM compatível indústria que tem sido a plataforma de hardware de computador esmagadoramente dominante por muitos anos. A engenharia reversa de software é protegido em os EUA pelo uso justo exceção na lei de direitos autorais . [10] O software Samba , que permite que os sistemas que não estão executando o Microsoft do Windows sistemas de compartilhar arquivos com sistemas que são, é um exemplo clássico reversa de engenharia de software, [11] desde que o projeto Samba teve que fazer engenharia reversa informações inéditas sobre como o compartilhamento de arquivos do Windows funcionou, para que os computadores não-Windows poderia imitá-lo. O projeto wine faz a mesma coisa para a API do Windows , e OpenOffice.org é uma festa fazendo isso para os Microsoft Office no formatos de arquivo. O projeto ReactOS é ainda mais ambicioso em seus objetivos, como ela se esforça para fornecer binário (ABI e API) compatibilidade com os atuais sistemas operacionais Windows NT do ramo, permitindo que o software e os drivers escritos para o Windows para rodar em um quarto limpo engenharia reversa GPL software livre ou contraparte open-source. WindowsSCOPE permite o conteúdo completo da memória viva de um sistema Windows, incluindo um nível de binário engenharia reversa, gráfica engenharia reversa de todos os processos em execução.

Técnicas de software binários [editar | editar código-fonte]

Engenharia inversa de software pode ser conseguida por vários métodos. Os três grupos principais de software de engenharia reversa são:

  1. Análise através da observação da troca de informações, mais prevalente no protocolo de engenharia reversa, que envolve o uso de analisadores de ônibus e sniffers , por exemplo, para acessar um barramento de computador ou rede de computadores conexão e revelando os dados nela tráfego. Bus ou o comportamento da rede podem então ser analisados ​​para produzir uma aplicação stand-alone que imita esse comportamento. Isto é especialmente útil para a engenharia reversa drivers de dispositivo . Às vezes, engenharia reversa em sistemas embarcados é muito facilitada por ferramentas deliberadamente introduzidas pelo fabricante, como JTAG portos ou outros meios de depuração. No Microsoft Windows , depuradores de baixo nível, como SoftICE são populares.
  2. Desmontagem usando um disassembler , ou seja, a matéria- linguagem de máquina do programa é lido e compreendido em seus próprios termos, apenas com o auxílio de em linguagem de máquina mnemônica . Isso funciona em qualquer programa de computador, mas pode demorar algum tempo, especialmente para alguém não é usado para código de máquina. O desmontador Interativo é uma ferramenta particularmente popular.
  3. Descompilação usando um decompiler , um processo que tenta, com resultados variados, para recriar o código-fonte em uma linguagem de alto nível para um programa só está disponível em código de máquina ou bytecode .

Classificação [editar | editar código-fonte]

Classificação de software é o processo de identificação de semelhanças entre diferentes binários de software (por exemplo, duas versões diferentes do mesmo binário) utilizados para detectar as relações entre as amostras de código de software. Esta tarefa era tradicionalmente feito manualmente por várias razões (como a análise de patch para detecção de vulnerabilidades e violação de direitos autorais ), mas hoje em dia pode ser feito um pouco automaticamente para grandes quantidades de amostras.

Este método está sendo usado principalmente para tarefas de engenharia reversa longas e exaustivas (análise completa de um algoritmo complexo ou grande pedaço de software). Em geral, a classificação estatística é considerado um problema difícil e isto é também verdade para a classificação de software, por conseguinte, não há muitas soluções / ferramentas que lidam com esta tarefa bem. Existem duas ferramentas importantes que fazem comparação binária no nível da função: BinDiff de zynamics [12] . (adquirida pela Google) e Revanche de Retheos [13]

O código-fonte [editar | editar código-fonte]

Uma série de UML ferramentas referem-se ao processo de importação e análise de código fonte para gerar diagramas UML como "engenharia reversa". Veja Lista de ferramentas UML .

Embora UML é uma abordagem para fornecer "engenharia reversa" avanços mais recentes em atividades internacionais de normalização resultaram no desenvolvimento do Knowledge Discovery Metamodel (KDM). Esta norma fornece uma ontologia para a representação intermediária (ou abstraído) de construções de linguagem de programação e suas inter-relações.Um Object Management Group padrão (em vias de se tornar um padrão ISO também), KDM começou a se firmar no setor com o desenvolvimento de ferramentas e ambientes de análise que podem proporcionar a extração e análise de fonte, binário e código de byte. Para a análise de código-fonte, arquitetura 'normas granulares do KDM permite a extração dos fluxos do sistema de software (dados, controle, e chamar mapas), arquiteturas e conhecimento camada de negócios (regras, termos do processo). A norma permite o uso de um formato de dados comum (XMI), permitindo a correlação das várias camadas de conhecimento do sistema para qualquer análise detalhada (por exemplo, causa raiz, impacto) ou análise derivado (por exemplo, extração de processos de negócios). Embora os esforços para representar construções de linguagem pode ser interminável, dado o número de línguas, a evolução contínua de linguagens de software e desenvolvimento de novas linguagens, a norma não permitir a utilização de extensões para suportar a linguagem de amplo conjunto, bem como a evolução. KDM é compatível com a UML, BPMN, RDF e outras normas que permitem a migração para outros ambientes e, portanto, conhecimento do sistema de alavancagem para os esforços de transformação, tais como sistema de software e empresa de análise camada de negócios.

A engenharia reversa de protocolos [editar | editar código-fonte]

Protocolos são conjuntos de regras que descrevem os formatos de mensagem e como as mensagens são trocadas (ou seja, o protocolo de estado-máquina ). Assim, o problema do protocolo de engenharia reversa pode ser dividida em dois subproblemas; formato de mensagem e estado-máquina de engenharia reversa.

Os formatos de mensagem têm sido tradicionalmente com engenharia reversa através de um processo manual tedioso, que envolveu a análise de como processar mensagens implementações do protocolo, mas a pesquisa recente propôs uma série de soluções automáticas. [14] [15] [16] Em geral, essas abordagens automáticas tanto grupo observou mensagens em clusters utilizando várias análises de agrupamento , ou emular a implementação do protocolo traçando o processamento de mensagens.

Houve menos trabalho em engenharia reversa de-máquinas de estado de protocolos. Em geral, o Estado-máquinas de protocolo pode ser aprendido através de um processo detreinamento off-line , que observa passivamente a comunicação e as tentativas de construir o Estado-máquina mais geral de aceitar todas as seqüências observadas de mensagens eaprendizagem on-line , que permite a geração interativa de sondagem seqüências de mensagens e ouvir as respostas a essas sequências de sondagem. Em geral, a aprendizagem offline pequenas máquinas de estado é conhecido por ser NP-completo , [17] enquanto a aprendizagem on-line pode ser feito em tempo polinomial. [18] Uma abordagem desligada automático tem sido demonstrado por Comparetti et al. [16] e uma abordagem online muito recentemente por Cho et al. [19]

Outros componentes de protocolos típicos, como funções de criptografia e hash, pode ser com engenharia reversa automaticamente também. Normalmente, as abordagens automáticas rastrear a execução de implementações do protocolo e tentar detectar buffers na memória segurando pacotes não criptografados. [20]

A engenharia inversa de circuitos / cartões inteligentes integrados [editar | editar código-fonte]

A engenharia reversa é uma forma invasiva e destrutiva de análise de um cartão inteligente. O atacante mói afastado camada após camada do smart card e tira fotos com ummicroscópio eletrônico . Com esta técnica, é possível revelar a parte completa do cartão inteligente de hardware e de software. O grande problema para o atacante é trazer tudo na ordem correta para descobrir como tudo funciona. Engenheiros tentam esconder as chaves e operações misturando-se posições de memória, por exemplo, ônibus lutando . [21] [22] Em alguns casos, é possível até mesmo anexar uma sonda para medir tensões enquanto o smart card ainda está operacional. Engenheiros utilizam sensores para detectar e impedir este ataque. [23] Este ataque não é muito comum, porque requer um grande investimento em esforço e equipamento especial que é geralmente disponível apenas para grandes fabricantes de chips. Além disso, o retorno deste ataque é baixo, já que outras técnicas de segurança são frequentemente utilizados, tais como contas de sombra.

Engenharia reversa para aplicações militares[editar | editar código-fonte]

A engenharia reversa é frequentemente utilizado por pessoas, a fim de copiar tecnologias de outras nações, dispositivos ou informações que foram obtidas por tropas regulares nos campos ou por inteligência operações. Ele foi muitas vezes utilizado durante a Segunda Guerra Mundial ea Guerra Fria . Exemplos bem conhecidos da Segunda Guerra Mundial e, posteriormente, incluem:

  • Jerry pode : as forças britânicas e norte-americanos notaram que os alemães tinham latas de gasolina, com um excelente design. Cópias Eles engenharia reversa dessas latas. As latas eram popularmente conhecidos como "jerry cans".
  • Panzerschreck : Os alemães capturaram um americano Bazooka durante a Segunda Guerra Mundial, e engenharia reversa para criar o Panzerschreck maior.
  • Tupolev Tu-4 : Três americanos B-29 bombardeiros em missões mais de Japão foi forçado a pousar na URSS . Os soviéticos, que não tiveram um bombardeiro estratégico semelhante, decidiu copiar o B-29. Dentro de alguns anos, eles desenvolveram o Tu-4, uma cópia quase perfeita.
  • V-2 foguete: documentos técnicos para a V2 e tecnologias relacionadas foram capturados pelos aliados ocidentais no final da guerra. No lado americano levou engenharia reversa via operação Paperclip para o desenvolvimento da PGM-11 Redstone foguete. [24] No lado soviético engenheiros alemães soviéticos capturados e tiveram de reproduzir documentos técnicos e planos, trabalhando a partir de hardware capturado, a fim de tornar a sua clone do foguete, o R-1 , que começou o programa de foguetes soviético pós-guerra que levou àR-7 e o início da corrida espacial .
  • K-13/R-3S míssil ( NATO informando nome AA-2 Atoll), uma cópia de engenharia reversa Soviética do AIM-9 Sidewinder , só foi possível depois de uma taiwanesa AIM-9B bater um chinês MiG-17 sem explodir. O míssil ficou alojado dentro da célula, eo piloto voltou para a base com o que os cientistas russos descreveria como um curso universitário no desenvolvimento de mísseis.
  • BGM-71 TOW Missile: Em maio de 1975, as negociações entre o Irã eo Hughes Missile Sistemas na co-produção do TOW e mísseis Maverick paralisadas devido a discordâncias na estrutura de preços, o subseqüente 1979 revolução terminando todos os planos de tal co-produção. O Irã foi mais tarde sucedido em engenharia reversa do míssil e estão actualmente a produzir sua própria cópia: a Toophan .
  • China tem revertido muitos exemplos de engenharia de hardware Ocidental e da Rússia, a partir de aviões de combate para mísseis e HMMWV carros.
  • Durante a Segunda Guerra Mundial, poloneses e britânicos estudou criptógrafos alemães capturados "Enigma" máquinas de criptografia de mensagens para fracos. Sua operação foi então simulado em dispositivos eletro-mecânicos chamados " Bombes "que tentaram todos os ajustes dos misturadores possíveis das máquinas" Enigma "para ajudar a quebrar as mensagens codificadas enviadas pelos alemães.
  • Além disso, durante a Segunda Guerra Mundial, cientistas britânicos analisaram e derrotado uma série de sistemas de navegação de rádio cada vez mais sofisticadas sendo usado pela Luftwaffe alemã para executar missões de bombardeio guiadas à noite. As contramedidas britânicos a este sistema foram tão eficazes que em alguns casos, aviões alemães foram conduzidos por sinais para pousar em bases da RAF, acreditando que eles estavam de volta em território alemão.

Legalidade [editar | editar código-fonte]

Estados Unidos [editar | editar código-fonte]

Nos Estados Unidos, mesmo que um artefato ou processo está protegido por segredos comerciais , a engenharia reversa do artefato ou processo muitas vezes é legal, desde que seja obtido de forma legítima. [25] As patentes , por outro lado, precisa de uma divulgação pública de uma invenção , e, por conseguinte, os itens patenteados não têm necessariamente de ser a engenharia reversa a ser estudado. (No entanto, um artigo produzido sob uma ou mais patentes também poderia incluir outra tecnologia que não é patenteado e não divulgado.) Uma motivação comum de engenharia reversa é determinar se um produto do concorrente contém violações de patentes ou de violações de direitos autorais .

A engenharia reversa de software em os EUA é geralmente uma quebra de contrato, como a maioria dos EULAs especificamente proibi-la, e os tribunais têm encontrado tais proibições contratuais para substituir a lei de direitos autorais que permite expressamente; ver Bowers v Baystate Technologies . [26] [27 ]

Sec. 103 (f) da DMCA ( 17 USC § 1201 (f) ), diz que, se alguém legalmente obtém um programa que está protegida, eles estão autorizados a fazer engenharia reversa e contornar a proteção para alcançar a interoperabilidade entre programas de computador (ou seja, a capacidade para trocar e fazer uso de informações). Os estados de seção:

União Europeia [editar | editar código-fonte]

Artigo 6 º da UE 1991 Directiva Programas de computador permite que a engenharia reversa para fins de interoperabilidade, mas proíbe-o para fins de criação de um produto concorrente, e também proíbe a divulgação pública de informações obtidas através de engenharia reversa de software. [28] [29 ] [30]

Em 2009, a Directiva do Programa Computador UE foi substituída ea directiva agora afirma: [31]

Veja também [editar | editar código-fonte]

  • Mecanismo de Antikythera
  • Aferição
  • Analisador Bus
  • Chonda
  • Clone (computação)
  • Projeto de sala limpa
  • CMM
  • Morphing Código
  • Game Station Connectix Virtual
  • Cryptanalysis
  • Decompiler
  • Deformulation
  • Digital Millennium Copyright Act (DMCA)
  • Engenharia forense
  • Tomografia computadorizada industrial
  • Desmontador interativo
  • Knowledge Discovery Metamodel
  • Scanner a laser
  • Lista de tópicos de produção
  • Motores Listeroid
  • Analisador lógico
  • Paycheck (filme)
  • Sega v Accolade
  • Software arqueologia
  • Estruturado luz digitalizador
  • Engenharia de valor

Referências [editar | editar código-fonte]

  1. ^ . Eilam, Eldad e Chikofsky, Elliot J. (2007) Invertendo: segredos de engenharia reversa . John Wiley & Sons. p. 3. ISBN 978-0-7645-7481-8 .
  2. ^ Chikofsky, EJ & Cruz, JH, II (1990). "Reverse Engineering and Design de recuperação: A Taxonomy". IEEE Software 7 (1):. 13-17 doi : 10.1109/52.43044 .
  3. ^ Uma Pesquisa de Engenharia Reversa e Programa de Compreensão. Michael L. Nelson, 19 de abril de 1996, ODU CS 551 - Pesquisa de Engenharia de Software. Além disso, reverter conceito de engenharia é usado para modificar ou alterar premade. Dll em um sistema operacional
  4. ^ Internet Engineering Task Force RFC 2828 Internet Glossário de Segurança
  5. ^ . Varady, T; Martin, R; Cox, J (1997) "A engenharia reversa de modelos geométricos-uma introdução" .. Assistido por Computador Projeto 29 (4): 255-268 doi : 10.1016/S0010-4485 (96) 00054-1 .
  6. ^ Chikofsky, EJ; Cruz, JH (janeiro de 1990). "Reverso engenharia e design de recuperação: A taxonomia" . IEEE Software 7: 13-17. doi : 10.1109/52.43044 .
  7. ^ Warden, R. (1992). Reutilização de Software e Engenharia Reversa na Prática. Londres, Inglaterra: Chapman & Hall. pp 283-305.
  8. ^ . Shahbaz, Muzammil (2012) Engenharia e Teste de caixa-preta Componentes de Software Reverso: através de técnicas de inferência gramatical . LAP LAMBERT Academic Publishing. ISBN 978-3659140730 .
  9. ^ Chuvakin, Anton;. Cyrus Peikari (Janeiro de 2004) Guerreiro de Segurança (1 ª ed.).O'Reilly.
  10. ^ Samuelson, Pamela . & Scotchmer, Suzanne (2002) "O Direito e Economia de Engenharia Reversa" . Yale Law Journal 111 (7): 1575-1663. doi : 10.2307/797533 .JSTOR 797.533 .
  11. ^ "Samba: Uma Introdução" . 2001-11-27. Retirado 2009/05/07.
  12. ^ http://www.zynamics.com/bindiff.html
  13. ^ http://www.retheos.com
  14. ^ W. Cui, J. Kannan, e HJ Wang. Discoverer: protocolo de engenharia reversa automática a partir de vestígios de rede. Em Anais do 16 º Simpósio de Segurança em USENIX USENIX Simpósio de Segurança, pp 1-14.
  15. ^ W. Cui, M. Peinado, K. Chen, HJ Wang, e L. Irún-Briz. Tupni: engenharia reversa automática de formatos de entrada. Em Anais da Conferência ACM 15 em Informática e Comunicações de Segurança, pp 391-402. ACM, Out 2008.
  16. um b PM Comparetti, G. Wondracek, C. Kruegel e E. Kirda. Prospex: extração especificação protocolo. Em Proceedings of the 2009 30 IEEE Symposium on Security and Privacy, pp 110-125, Washington, 2009. IEEE Computer Society.
  17. ^ ouro, E (1978). "A complexidade da identificação do autômato dado dados" Informação e Controle 37 (3):.. 302-320 doi : 10.1016/S0019-9958 (78) 90562-4 .
  18. ^ D. Angluin (1987). "Aprender conjuntos regulares de consultas e contra-exemplos"Informação e Computação 75 (2):.. 87-106 doi : 10.1016/0890-5401 (87) 90052-6 .
  19. ^ CY Cho, D. Babic, R. Shin, e D. Canção. Inferência e Análise de modelos formais de Botnet Comando e Controle Protocolos de 2010 na Conferência ACM em Informática e Comunicações de Segurança.
  20. ^ Polyglot: extração automática de formato de mensagem de protocolo usando análise de binário dinâmico . J. Caballero, H. Yin, Z. Liang, e D. Canção. Anais da conferência ACM 14 no computador e segurança das comunicações, p. 317-329.
  21. ^ Wolfgang Rankl, Wolfgang Effing, Smart Card Handbook (2004)
  22. ^ T. Welz: Os cartões inteligentes como métodos de pagamento (2008), Seminário de Segurança ITS-Ruhr-Universität Bochum
  23. ^ David C. Musker: Proteger e Exploração de Propriedade Intelectual em Eletrônica , Conferências IBC, 10 de junho de 1998
  24. ^ "foguete Redstone" . centennialofflight.net. Retirado 2010/04/27.
  25. ^ "segredos comerciais 101," artigos de recursos, março 2011 . ASME. Página visitada em 2013/10/31.
  26. ^ v Baystate Bowers Discussão . Utsystem.edu. Página visitada em 2011-05-29.
  27. ^ Gross, Grant. (2003-06-26) caso de contrato poderia ferir engenharia reversa | Mundo da programação . InfoWorld. Página visitada em 2011-05-29.
  28. ^ Directiva 91/250/CEE do Conselho, de 14 de Maio de 1991 relativa à protecção jurídica dos programas de computador . Eur-lex.europa.eu. Página visitada em 2011-05-29.
  29. ^ PB Hugenholtz (2006). O futuro do domínio público: a identificação dos bens comuns em lei de informação . Kluwer Law International. pp 321 -. ISBN 978-90-411-2435-7 .Retirado 29 de maio de 2011.
  30. ^ Jenkins | Marcas e Patentes Advogados | Engenharia Reversa . Jenkins.eu. Página visitada em 2011-05-29.
  31. ^ DIRECTIVA 2009/24/CE DO PARLAMENTO EUROPEU E DO ​​CONSELHO de 23 de Abril de 2009 relativa à protecção jurídica dos programas de computador

Leitura [editar | editar código-fonte]

  • Yurichev, Dennis, "Uma Introdução à engenharia reversa para Iniciantes". Livro Online: http://yurichev.com/writings/RE_for_beginners-en.pdf
  • Eilam, Eldad (2005). Invertendo: Secrets of Reverse Engineering . Wiley Publishing . p. 595. ISBN 0-7645-7481-7 .
  • . James, Dick (19 janeiro de 2006) "Proporciona Engenharia Reversa Conhecimento do produto; disseminação da Aids Tecnologia" . Electronic Design. Penton Media, Inc. Retirado 2009/02/03.
  • . Raja, Vinesh; Fernandes, Kiran J. (2008) Engenharia Reversa - Uma Perspectiva Industrial. Springer . p. 242. ISBN 978-1-84628-855-5 .
  • Thumm, Mike (2007). "Táticas de Falar" . IEEE 2007 Circuitos Conferência Integrada Personalizado (CICC). IEEE, Inc. Retirado 2009/02/03.
  • Cipresso, Teodoro (2009). "Software Engineering Education reversa" Tese. SJSU do Mestre. ProQuest UML. Retirado 2009/08/22.
  • . Schulman et al , Andrew (1994). indocumentados DOS: Guia do Programador de Funções reservados MS-DOS e Estruturas de Dados, 2 ª ed. Addison Wesley . ISBN 0-201-63287-X . (Pp. 229-241 na metodologia geral de engenharia inversa, aplicado ao software de mercado de massa: um programa para explorar DOS, desmontar DOS)
  • . Schulman et al ., Andrew (1992) indocumentados do Windows: Guia do Programador de funções da API do Microsoft Windows reservados . Addison Wesley . ISBN 0-201-60834-0. (Pp. 59-188 sobre a metodologia geral de engenharia inversa, aplicado ao software de mercado de massa: examinando executáveis ​​do Windows, desmontagem do Windows, ferramentas para explorar Windows)
  • . Messler, Robert (2013) Mecanismos, Estruturas, Sistemas e Materiais: Engenharia Reversa . McGraw Hill . ISBN 978-0071825160 . (introduction to hardware teardowns, including methodology, goals)
  • Huang, Andrew "bunnie" (2003). Hacking the Xbox: An Introduction to Reverse Engineering . No Starch Press . ISBN 978-1593270292 .
  • Pamela Samuelson and Suzanne Scotchmer, "The Law and Economics of Reverse Engineering," 111 Yale LJ 1575 (2002). Online:http://people.ischool.berkeley.edu/~pam/papers/l&e%20reveng3.pdf
  • Andrew Schulman, “Hiding in Plain Sight: Using Reverse Engineering to Uncover Software Patent Infringement," Intellectual Property Today , Nov. 2010. Online:http://www.iptoday.com/issues/2010/11/hiding-in-plain-sight-using-reverse-engineering-to-uncover-software-patent-infringement.asp
  • Andrew Schulman, “Open to Inspection: Using Reverse Engineering to Uncover Software Prior Art,” New Matter (Calif. State Bar IP Section), Summer 2011 (Part 1); Fall 2011 (Part 2). Online: http://www.SoftwareLitigationConsulting.com
  • Henry Heines, "Determining Infringement by X-Ray Diffraction," Chemical Engineering Process , Jan. 1999 (example of reverse engineering used to detect IP infringement)
  • Julia Elvidge, "Using Reverse Engineering to Discover Patent Infringement," Chipworks, Sept. 2010. Online: http://www.photonics.com/Article.aspx?AID=44063

Ligações externas [editar | editar código-fonte]

Wikibooks has more on the topic of: Reverse engineering
Wikimedia Commons has media related to Reverse engineering .
  • What Is Reverse Engineering
  • An Open Source Reverse Engineering tool for Linux
  • An Open Source Reverse Engineering tools and ideas for Linux
  • Java Call Trace to UML Sequence Diagram A reverse engineering tool for Java. This tool helps one to reverse engineer UML Sequence Diagram for their Java program at runtime. It works well with both complex Java programs (that have multiple threads) and J2EE applications deployed on Application Servers.
  • CASE Tools for Reverse Code Engineering
  • Additional tutorials, bibliographies and related sites for reverse engineering of available source code.
  • Anti-Reverse Engineering Guide
  • OWASP Reverse Engineering and Code Modification Prevention Project