Pesquisa personalizada

2005/06/23

"A hora dos sapos"

Felizmente ou infelizmente, Deus não me deu o dom da palavra para expressar a tamanha indignação que me apresenta ao ver nosso congresso, nosso estado, nosso país, nossa malfadada república. Gostaria de ser honrado o suficiente para levantar a bunda da cadeira na qual escrevo este texto e fazer alguma coisa de realmente útil para nossa nação. Mas, como sou brasileiro - e nisto represento a maioria, pois como os outros de nós, sou um meio cidadão apolitizado, muito acomodado, um tanto alienado e mais mal-acostumado - não farei nada do que posso ou deveria para mudar o país. Assim, digo que:
  • Não votarei melhor nas próximas eleições, pois todo político rouba mesmo e quem não é corrupto, também não é eleito, provavelmente nem é candidato;
  • não lembrarei o nome daqueles que elegi, se possível, nem votarei. Justificarei meu voto!
  • também, não irei supervisionar o trabalho daqueles que deveriam me representar. Sei que o político que elegi, não está ali para fazer nada por mim ou pelos demais, mas sim, por si mesmo. Sei que ele irá roubar o quanto puder.
  • não organizarei ou participarei de associações com objetivos sociais comuns, já que quem participa dessas coisas, é porque não tem mais nada para fazer. E se algum dia eu tiver a oportunidade de contribuir realmente para mudar alguma coisa, não farei, pois há outras prioridades pessoais que me impedem de ceder um pouco de meu tempo à coletividade.
  • não irei sequer me informar sobre o que se passa no Brasil, pois estarei lendo apenas sites de notícias estrangeiros que pouco me dizem sobre o que se passa aqui.
  • não gosto que chamem onde moro de terceiro mundo. Por isso, quando puder, irei sair deste país e ir morar bem longe, em algum lugar que os demais chamem de primeiro.
  • irei trabalhar a semana toda, somente pensando no fim de semana, nas longas férias que demoram um ano inteiro para chegar. Queria que criassem mais feriados, pois seria bom se tivessem mais.
  • esperarei ansiosamente o fim deste ano, época boa no Brasil, pois é época que pouco se trabalha, muita festa, cerveja e tempo para não fazer nada... ah, época boa. Como é bom ser brasileiro.
  • mas quando chegar a hora de trabalhar de verdade, a hora de ralar e mostrar produção, nessa hora estarei cansado demais para fazer alguma coisa, e por favor, não me falem de política, pois nessas horas, gosto mesmo é de futebol!
  • se por acaso eu ver algo na TV sobre o congresso de meu país que me desagrade, irei no máximo me resumir a dizer: "nossa, esse país não tem jeito mesmo, né? A malandragem no congresso é descarada. Como nego, rouba! Deixa eu botar no Faustão que lá tá mais legal"
  • quando acontecer de eu chegar numa mesa de bar e os amigos estiverem falando de política, perguntarei: "Alguém sabe qual foi o resultado do bolão da semana passada?", só para mudar de assunto, pois não suporto política.
  • quando abrir o jornal e ver estampada uma manchete que contenha uma das seguintes palavras: corrupção, nova lei, emenda, remenda, atraso, segurança pública, arma, desarma, guerra, índio, eleição, deputado, senado, viciado, paz, presidente, congresso, regresso, ou qualquer outra que venha me lembrar de meu compromisso como cidadão, imediatamente folhearei o jornal procurando por uma notícia sobre esporte, TV ou TI. Afinal, não gosto de ficar lendo sobre assuntos chatos.
  • em suma, se puder, quando puder, se puder mesmo, então, nada farei para melhorar o Brasil. E o Brasil, o congresso, a política e todo meu dever cívico, que vá para o inferno!

Apesar disso tudo, para não dizer, que deixei passar em branco a palhaçada dos palhaços do congresso nacional brasileiro, reproduzo artigo de Reinaldo Azevedo publicado no site da revista Primeira Leitura, donde se vê uma analogia sensata de dois patetas de nosso estado: um imoral e outro também. Segue abaixo, reprodução integral (e não autorizada) do artigo.

A hora dos sapos

O melhor que Dirceu faria é recolher os seus soldados e recolher-se. Respondendo apenas ao que lhe for perguntado. O tempo das armas já passou

Por Reinaldo Azevedo

Sei que muitos ficaram chocados com os gritos do deputado Jair Bolsonaro (PP-RJ), que bradava “terrorista, terrorista!”, enquanto José Dirceu (PT-SP) falava. É... Com efeito, não parece educado e tampouco concorre para um ambiente de concórdia política. Bolsonaro, a gente sabe, é um pouco cru ao expressar as suas convicções e insiste, hoje em dia, em plena democracia, em fazer a defesa da ditadura militar e, quiçá, de seus métodos condenáveis. Ora, por que alguém, defenderia, em plena democracia, uma ditadura que também torturou e matou? Eu me atreveria a dizer que o faz pelos mesmos motivos por que um ex-guerrilheiro se orgulha de seu passado de arma na mão. A diferença é que Bolsonaro é considerado um patinho feio do Parlamento e não tem idade para ter participado daquilo que defende em tese. Já Dirceu adentra as dependências da Câmara como príncipe e foi protagonista de uma tentativa de implementar no país uma outra ditadura. Para mim, os dois são sapos. E não há beijo que os transforme.

Não gosto de gente que usa a democracia para defender teses que, levadas a efeito, a solaparia; não gosto de gente que usa as liberdades democráticas para defender a antidemocracia, nem que seja pretérita. E esses dois senhores fazem rigorosamente isso de que falo.

A diferença é que Bolsonaro é uma espécie de marginal dentro do Parlamento. Muitos resistem até em cumprimentá-lo. E Dirceu circula pelos salões da alta política (segundo Jefferson, da baixa também...), freqüenta círculos de intelectuais que lhe dão bola (embora ninguém relevante dê bola para esses intelectuais sabujos), é respeitado pela crônica política como grande estrategista, e muitos até tremem ante sua passagem.

Bolsonaro tem a seu favor o fato de ter-se tornado meio folclórico — embora tenha feito um belíssimo resumo biográfico de Luiz Eduardo Greenhalgh quando candidato à Presidência da Câmara... Já Dirceu não é folclore, mas a fábula macabra que deu certo (pelo menos para ele e para os seus). Bolsonaro, que defende uma ditadura pregressa, ataca, hoje em dia, o outro porque, diz ele, foi um “terrorista”. Ou o deputado se penitencia das bobagens que diz sobre a ditadura, que fez terrorismo de Estado, ou não tem moral para desclassificar ninguém.

O busílis é que Dirceu não se diferencia de seu oponente em nada quando, numa solenidade de posse de ministra, faz graça com seu passado de quem aderiu à luta armada, o que voltou a fazer nesta quarta-feira. Dirceu queria implementar no Brasil uma ditadura comunista, que teria sido certamente mais feroz do que aquela que Bolsonaro defende. A diferença entre ele e o deputado do PP do Rio é que aquele não pode fazer mal nenhum a não ser a si mesmo. Já Dirceu demonstra que não tem grande receio em, se preciso, arrastar o país para uma crise. Convocando, de resto, o apparatchik a ocupar as ruas.

Chega dessa história! Acho vergonhoso que Dirceu se orgulhe de seu passado. Não do passado de quem combateu a ditadura. Mas que se jacte de ter pegado em armas. Ele sabe, eu sei,  e os historiadores sabem que a arma era a expressão material de uma ilusão ideológica regressiva, autoritária, que já havia feito milhões de vítimas mundo afora. Por que em plena democracia alguém precisa se orgulhar de seu passado de militante em favor de uma ditadura? Ainda que uma ditadura oposta àquela que estava instalada no país?

Mais: o ex-ministro fez muito mal em ter permitido que o Congresso se transformasse numa assembléia do PT, num esforço claro de intimidar a oposição. A propósito: como é que esses petistas todos ganham a vida? Quem lhes paga o salário? São todos militantes profissionais? Por que não vão trabalhar para honrar um partido que se diz de trabalhadores?

A lógica da intimidação não funcionou e não vai funcionar. E me parece que, até agora, poucos no PT (talvez ninguém) compreenderam o que está em curso e o tamanho da crise. De certo modo, as instituições brasileiras foram mergulhadas no Rio da Morte com o Collorgate e se tornaram, se não imortais, bastante resistentes. Muitos querem que Lula seja o seu calcanhar, com sua popularidade ainda alta para um governo que é um desastre administrativo e institucional.

Por isso, as oposições ainda tomam muito cuidado com suas flechas, evitando sempre atingir o calcanhar presidencial, mais exposto do que nunca, é bom que se diga. Vá lá. É mesmo o caso de não investir no acirramento da crise. Mas convém que Lula não faça de sua língua o seu outro ponto vulnerável, expondo-se a mais e reiteradas declarações de moralidade acima de qualquer suspeita. A primeira pinta no nariz, se me permitem uma alusão dostoievskiana, e ele vai à lona.

O melhor que Dirceu faria é recolher os seus soldados e recolher-se. Respondendo apenas ao que lhe for perguntado. O tempo das armas já passou.

Leia ainda A PARTE E O TODO

Labels:

2005/06/19

Entendendo o mecanismo de controle da versão trial do IBExpert

Alguma justificativa

De início esclareço que este artigo tem o único propósito de mostrar como funciona o mecanismo de segurança do IBExpert. Eu não incentivo ninguém a usar a informação ou software aqui contidos com fins de usar o IBExpert sem remunerar devidamente seus autores. Também, não apoio o uso ilegítmo de determinados softwares, como é o caso do IBExpert. Penso que o IBExpert é um excelente produto e que seus autores devem ser recompensados pelo trabalho, dedicação e esforço necessário para se produzir e manter um produto como esse.

Ressalto porém, que também penso que o valor de EUR 199,00 (cento e noventa e nove euros! aff) é um tanto alto para o padrão do desenvolvedor independente brasileiro, assim como tenho a absoluta certeza que este valor é mais alto ainda para a Russia, país donde se origina os autores. Tanto que lá pelos confins da ex URSS, eles não cobram nada dos usuários residentes desses paises. De certa forma, o resto do mundo paga para que eles tenham esse benéficio. Os autores do IBExpert acreditam que os russos não tem grana para bancar pelo produto e como eles sabem que os russos costumam (não digo todos, digamos a maioria) crackear (de fato, boa parte dos crackers são russos) o software que não podem adquirir, então imaginaram que seria melhor que deixassem que usassem o produto deles de graça. Acho que esse pensamento teve sentido, pois basta uma simples busca no Google, Astalavista e eMule para verificar que não há crackers para os mais recentes lançamentos (últimos seis meses) do IBExpert. Creio que se os autores do IBExpert tivessem noção da situação brasileira, eles também pensariam numa forma de baixarem o preço para nossa realidade. Veja que não estou afirmando que nenhum brasileiro pode pagar o preço que pedem, mas sim que a maioria dos desenvolvedores independentes, como o meu caso, não podem pagar por ele.

Lembro que o IBExpert tem uma versão Free, mas que infelizmente não oferece todos os recursos da versão comercial. Acredito, porém, que para a maioria dos desenvolvedores a versão Free do IBExpert os atenderá. A versão free pode ser baixada diretamente do site do IBExpert.

O mecanismo da versão trial

Na primeira vez que você instala a versão trial do IBExpert, ele utiliza a data do sistema (do seu computador) para fazer o controle da expiração da versão de demonstração. Normalmente ele te dará alguns dias para que você o avalie e decida se deseja comprá-lo ou não. Após esse périodo ele permite que você continue usando-o, mas começa a incomodá-lo apresentando uma série de popups informando-o que o périodo de avaliação já acabou. Ele não mostra sempre uma mesma popup, mas sim um conjunto de popups. Se você deseja usá-lo após o périodo de teste ter se esgotado, isso irá chateá-lo um pouco. O que descrevo é como burlar essa limitação e fazer com que ele sempre "pense" que está sendo executado pela primeira vez. De forma que para o IBExpert, você sempre esteja dentro do périodo de teste. Para isto, basta identificar as três chaves de controle do IBExpert e excluí-las todas as vezes antes de rodar o IBExpert.

O mecanismo de controle de expiração da versão trial do IBExpert funciona por meio de três chaves que são gravadas no registry (registro do Windows). Essas três chaves seguem sempre esse padrão de nome:
HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000000}\InProcServer32
Note que onde aparece {00000000-0000-0000-0000-000000000000} conterá uma outra sequência de identificação (UUID). Essa sequência é determinada pelo IBExpert de acordo com o nome de sua máquina. Portanto, na prática haverá sequências diferentes para máquinas com nomes diferentes. O IBExpert gerará três chaves com essa mesma estrutura. Dentro de cada chave haverá um par de valores, como o abaixo:

NomeTipoValor
ThreadingModelREG_SZ2J3pX0_jyfp5E>Evdf@sXKEhbs^EU7

Esse par também segue sempre um mesmo padrão. E o valor 2J3pX0_jyfp5E>Evdf@sXKEhbs^EU7 terá sempre o mesmo tamanho, mas terá valores diferentes. Dentro das chaves não haverá mais nenhuma outra entrada e se você conhece a estrutura das chaves que ficam dentro de HKEY_CLASSES_ROOT\CLSID notará que as chaves criadas pelo IBExpert, de fato, tem valores que dissoam das chaves usuais.


Para a nossa ambição de identificar as três chaves de controle do IBExpert, temos um problema visto que não sabemos qual é o algoritmo usado pelo IBExpert para gerar suas chaves. Descobrir qual é esse algoritmo está no momento fora de nosso escopo. Uma outra abordagem é tentar determinar quais são essas chaves, mas sem saber de fato quais são elas exatamente. Devemos, então, usar de método heurístico para determinar se uma dada chave foi criada pelo IBExpert ou não.

Comparando as chaves criada pelo IBExpert com as chaves que geralmente são criadas dentro de HKCR\CLSID, é possível verificar algumas diferenças que possibilitam determinar as chaves que são do IBExpert das que não são. Uma chave criada pelo IBExpert tem as seguintes características:

  • É uma subchave de HKEY_CLASSES_ROOT\CLSID
  • A seqência da chave tem o formato de uma CLSID (UUID)
  • A chave da CLSID não tem qualquer par de nomes (entrada) e nem um valor default
  • A chave da CLSID tem uma única subchave de nome InProcServer32
  • A única entrada na chave InProcServer32 é do tipo REG_SZ e tem o nome ThreadingModel
  • O valor da entrada ThreadingModel tem sempre 30 caracteres

O Utilitário

Para descobrir cada uma das três chaves do IBExpert usando o método de identificação acima, poderiamos fazê-lo manualmente, mas seria muito entediante ter que conferir chave-por-chave. Para isso, resolvi criar um pequeno utilitário em Delphi. Acredito que por ser fácil a implementação do método acima, você poderá facilmente criar um utilitário em sua linguagem preferida.


Abaixo está disponível o link para que se possa fazer o download do executável do utilitário e também de seu código fonte em Delphi 7.

Após baixar é só descompactar o pacote e rodar o executável.
Para procurar as chaves, clique no primeiro botão e espere ele fazer a busca. Na minha máquina é instantâneo Ele exibirá uma mensagem informando se localizou ou não. Se ele conseguiu localizar, aparecerá na caixa de texto os nomes das chaves que ele encontrou.
Para excluir, é necessário antes localizar as chaves. Se ele localizou, clique sobre o segundo botão para excluir as chaves.
Uma vez que ele localiza as chaves, ele as deixa em cache para que da próxima vez possa usá-las sem realizar uma busca. Este recurso é principalmente últil para máquinas lentas. De qualquer forma, para realizar uma nova busca é só clicar no primeiro botão.
Você também pode rodá-lo silenciosamente via prompt de comando usando o parâmetro: quiet. Exemplo:

Este recurso é particularmente útil se você planeja criar um arquivo de batch para automatizar o processo de rodá-lo antes do IBExpert.
Um exemplo de um arquivo de batch que rode o utilitário sempre antes do IBExpert, seria: r:\temp\exe\IBExpertTrialExtender.exe quiet c:\Arquivos de programas\HK-Software\IBExpert\ibexpert.exe É claro que você deve ajustar o caminho para os arquivos de acordo com o do seu sistema.
Se desejar, use este arquivo de batch. Após baixá-lo, não esqueça de editar o caminho dos arquivos.

Eu cheguei a estudar uma forma de fazer um programa que realizasse uma espécie de um patch no executável do IBExpert, mas eu não cheguei a concluir o trabalho no momento. Caso eu prossiga com os estudos e obtenha sucesso, em breve estarei publicando um novo artigo com a versão modificada do utilitário e se possível com detalhes sobre a implementação do patcher (que será genérico, funcionando com qualquer executável que tenha uma tabela de realocação).
No mais, espero que isto seja útil para alguém.
(y)

Labels: