Engenharia reversa no Flash 10: fazendo funcionar no Arora
“A nova biblioteca Qt 4.5.0 Tech Preview 1 possui diversas novidades relacionadas ao QtWebKit, inclusive o suporte a plugins NPAPI (por exemplo o Flash).
Ao experimentar o navegador Arora com essa versão da Qt, deparei-me com um fato interessante: o mesmo funcionava só com a versão 9 do plugin, e não chegava nem ao menos a carregar o plugin caso a versão 10 fosse utilizada.
Neste artigo, investigo, passo-a-passo, o motivo da incompatibilidade da nova versão do plugin, mostrando como o problema pode ser contornado por meio de engenharia reversa. É realizada, também, uma crítica à implementação do plugin oficial do Flash para Linux.”
Enviado por Paulo Matias (matiasΘarchlinux-br·org) – referência (matias.archlinux-br.org).
Muito bom o artigo, bem detalhado.
Me deu saudade das épocas que eu brincava com o W32dasm e o SoftIce no outro sistema, a muitos anos atrás
O artigo está muito bom, até quem não domina o assunto consegue compreender um pouco. Parabéns!
Excelente, parabéns por sua paciencia. Escovar bits é realmente divertido e quando vemos o resultado final dá aquela sensação de vitória.
Parabéns pelo conteúdo técnico de alto nível, não são comuns artigos assim de autoria própria por aqui.
Todo este trabalho para tentar consertar um pequeno bug (imposto artificialmente, ao que parece) do Adobe Flash nos dá a noção do tamanho de trabalho que os desenvolvedores de alternativas livres ao Adobe Flash têm ao tentar decifrar as especificações do formato.
Quantos outros trechos ainda existem afora pelo plugin Adobe Flash com intenções duvidosas, colocados meticulosamente com a intenção de restringir seu uso ou, pior, agir maliciosamente? Ninguém saberá, isto é um software proprietário.
Puts, muito bom mesmo… O artigo ficou muito bem feito.
A mesma coisa pode-se dizer o que passam o pessoal do Samba. Os caras resolvem na tora, na engenharia reversa, com tacape na mão.Tridgell é um de meus campeões, acho até que é o proprio Buda encarnado pela paciencia que tem com os desenvolvedores miseraveis da M$.
Excelente o artigo de alta qualidade. Parabéns pelo artigo e crítica. :)
Abs, fica com Deus!
Muito interessante mesmo o artigo/tutorial! Cada vez que eu vejo um negócio desses vejo que sei usar muito pouco do gdb.
O artigo é realmente excelente, faltam materiais como esse na blogosfera nacional, mas será que a operação de engenharia reversa não seriam uma violação aos termos da licença de uso do plugin?
O artigo é realmente excelente, faltam materiais como esse na blogosfera nacional, mas será que a operação de engenharia reversa não seria uma violação aos termos da licença de uso do plugin?
Não tenho muito conhecimento a respeito de licenças, mas acho que isso depende da legislação que esteja em vigor no país. Alguém com mais conhecimento poderia esclarecer melhor. E ae Augusto, essa é uma dúvida razoável.
Uma das novidades do Flash 10 é o suporte ao recurso de transparencia no flash, disponivel a muito tempo no ambiente windows.
Essa transparencia funciona no Opera/Arora?
Realmente não concordo em se valer de uma biblioteca específica (gtk) se o motivo foi dar suporte a transparencia. Deveria haver um modo compativel com browsers nao gtk
Sobre a engenharia reversa no Brasil:
http://jus2.uol.com.br/doutrina/texto.asp?id=4500
P.S.: A licença proíbe até mesmo o uso do plugin em sistemas BSD. Então o pessoal que usa o plugin nos BSDs com emulação Linux está violando a licença.
É claro que uma cláusula dessas provavelmente é completamente nula de acordo com a lei brasileira (princípio constitucional de livre concorrência, talvez venda-casada pelo código de defesa do consumidor?, etc.).
Sinceramente, mesmo que a legislação permitisse, eu duvido muito que a Adobe tenha a intenção de tomar uma ação contra um usuário do plugin Flash na atual situação, com toda essa pressão do concorrente (SilverLight) em cima deles.
Tenho até mesmo esperanças que repentinamente o código do plugin Flash seja aberto. Como já disse em comentário aqui no BR-Linux previamente, eles já estão fornecendo o código gratuitamente para quem assine uma NDA (novamente por causa da pressão do SilverLight). Provavelmente só não liberaram o código devido a possíveis contratos assinados com terceiros.
Uma vez eu perguntei pro mantenedor do Flash pra Linux (o Mike Melanson, que também é desenvolvedor muito ativo no ffmpeg) o porque do plugin só suportar oficialmente navegadores compatíveis com o Gecko e a resposta me fez ver a má vontade da Adobe quanto aos usuários de Linux, segundo ele na época (começo de 2007) isso se deve pra proteger a “propriedade intelectual” da empresa. Algo mais ou menos parecido com o protocolo de DRM do iPod, sem sentido nenhum e que no final serve apenas para restringir a usabilidade do software/equipamento pelo usuário do mesmo. A Adobe e a Apple são realmente farinhas do mesmo saco, viram pra seus usuários e falam uma coisa e depois viram pros desenvolvedores e engenheiros e falam outra coisa que vai dificultar a vida dos usuários.
Você tem a referência (link) para os termos desse NDA do Adobe Flash? Inclui alguma cláusula “anti-competição”?
Duvido muito. Se tivessem boa intenção já teriam liberado as especificações (completa) do formato; o código-fonte é o de menos.
Não encontrei em lugar algum do site o texto dessa NDA. Se for pública e alguém achar, por favor poste aqui, pois também estou curioso para saber quais os termos.
Muito bom o artigo.
Excelente iniciativa hacker do Paulo. Espero que inspire a qualidade dos artigos do Br-Linux.