3 Formas de burlar Marca d’àgua no Áudio/Vídeo, desde que os mesmos canais estejam disponíveis de várias fontes

1) Identificar ponteiros, substituir marcas, adicionar lixo

Para sistemas que usam um cartão compatível com EMV, o cartão é geralmente encaixado na parte de trás do seu equipamento receptor. Seu equipamento, com a ajuda do cartão EMV na traseira do mesmo, decodifica o sinal, geralmente recebido via cabo, para o seu receptor e finalmente para sua tela.

Pesquisadores precisam começar com ao menos 3 receptores diferentes sintonizados no mesmo canal para “ver/analizar” os dados DEPOIS de decriptados, para então iniciar o trabalho de identificar as marcas d’àgua tanto no áudio quanto no vídeo.

Se você for capaz de colocar as mãos no algoritmo de “patch” da marca d’àgua, esta é claro uma forma mais fácil, e tudo estará resolvido, mas duvido muito que estarão tão facilmente disponíveis em qualquer tipo de mercado 🙂

É um inferno de análise de baixo nível, tipo hexdump/xxd, mas tenho certeza que algum mago do Python pode semi-automatizar a tarefa, mesmo em tempo real. Adicionalmente, após identificar os ponteiros normalmente utilizados (porque esses offsets podem sim mudar com o tempo), vai precisar inserir seu próprio “lixo” para que a fonte original da transmissão não possa ser propriamente identificada. É como realizar o “patch” de uma assinatura de vírus de computador com uma sequência randômica de bytes num editor hexadecimal, para que o “vírus” (nesse caso a marca d’àgua) não possa mais ser detectado. Tudo isso sendo feito sem perder a qualidade do àudio/vídeo.

Para o áudio ser processado quase em tempo real, sabemos que poder de processamento é necessário, então prepare-se para escalar o mesmo, de acordo com a demanda.

2) Multiplexação – A Forma Fácil nº 1

Não seja barato – esta é a regra.
Vamos lá, você tem milhares de consumidores, então vamos fazer uma matemática simples, ok? Compare o número total de verdinhas pagas pelos seus consumidores, ao número total de verdinhas que são cobradas pela operadora, por cartão EMV. Quantas contas com a operadora você pode ter por canal mantendo uma boa margem de lucro? Mais de 5? Ok. Compre até 32 cartões por canal.

Mude constantemente a origem dos canais no seu sistema IPTV no estilo round-robin. Porque? Negação-plausível. O rastreamento do seu serviço pela marca d’àgua não irá levar a um único cartão EMV.

Cancele assinaturas e compre novos cartões, antes mesmo de serem cancelados.

Você irá necessitar de um engenheiro para colocar isso no ar 🙂

3) Filtros – A Forma Fácil nº 2

Essa forma possui um ótimo custo/benefício, então não vou explicar. Deixo pra vocês imaginarem como é feita.

Atenção: Nenhuma responsabilidade será assumida pela implementação das soluções acima mencionadas, que foram explicadas puramente por princípios de pesquisa. Não encorajo nenhum tipo de atividade ilegal. Nem tenho tempo ou disponibilidade para implementá-las, apesar de serem tecnicamente viáveis.

3 Ways to circumvent Watermarking in Audio/Video, upon same streams availability from multiple sources

1) Indentify Offsets, replace marks, add noise

For systems used with an EMV-compatible card, the card is usually available in the back of your receiver equipment. Your equipment with the help of the EMV-card in its back, decodes the streams, usually sent via cable, to your receiver and finally to your screen.

Fellas need to start with at least 3 different receivers tunned on the same stream(channel) to “watch/analyze” the RAW streams AFTER decryption, identifying the watermarks in both audio AND video.

If you manage to get your hands on the watermarking patching algorithm, for sure a much easier way, its all done, but I doubt it is so easily available in any market at all 🙂

It is a hell of low-level analysis, hexdump/xxd-like, I am sure some Python-magician can semi-automate the task, even in realtime. In addition, after identifying the offsets commonly used (because these spots can also change with time), you need to insert your own “noise” so the original streams cannot be properly identified. Its pretty much like “patching” a virus signature with random sequence of bytes in an hex-editor, so the “virus” (in this case the watermark) cannot be detected anymore. All while not breaking the quality of the audio/video stream.

For the audio stream to be processed in near realtime, y’all know GPU/CPU usage spikes will occur – and possibly delay, so prepare for scaling of processing power.

2) Multiplexing – The Easy way nº 1

You shall not be cheap – this is the rule.
Come on, you have thousands of customers, so lets make a simple math, ok? Compare the total number of greens paid by customers, to the total number of greens providers charge per EMV-card. How much EMV-card subscriptions can you buy retaining a good profit margin? More than 5? Ok. Buy up to 32.

Shuffle the source of the cable streams into your IPTV-based stream. Why? Plausible-deniability. They cannot trace a single card to your service.

Keep cancelling subscriptions and buying new cards.

You will need an engineer to set this up 🙂

3) Filters – The Easy way nº 2

This is too much cost-effective, so I will not explain it. I leave to you fellas to figure it out.

Warning: I assume no responsability for the implementation of the solutions above mentioned, which were explained just for research purposes. I haven’t the time nor the will to implement them, but can be done.

Tecnologia Militar – A necessidade e a oportunidade de modernização dos sistemas legados

O desenvolvimento de produtos no meio militar, em contraste com a norma capitalista da “obsolescência programada”, concebe sistemas feitos para durarem décadas.

O documentário “The Light Bulb Conspiracy” [1] nos dá uma visão capitalista e maquiavélica das empresas que planejam obter lucro programando seus produtos para falharem.

Uma impressora Epson foi descoberta com um contador interno num chip, que instruia a parada da mesma após um número determinado de impressões [2].

Nos meios militares, sistemas concebidos há mais de 50 anos encontram-se em pleno funcionamento, muitas vezes exigem mínima manutenção, independente da letalidade do mesmo.

Algumas obras cinematográficas já realizaram paródias sobre o caso, como no caso do filme “Johnny English Strikes Again” [3] onde não era recomendado utilizar nenhum aparelho celular próximo a um submarino nuclear antigo, o que ocasiona o envio de um míssel balístico inadvertidamente.

Sistemas de lançamento de mísseis nucleares oriundos da guerra fria ainda encontram-se em atividade, alguns com “senha padrão” composta de oito zeros, outros com “flashcards” postados online[9], causando vazamento de informações sensíveis.

Numa época em que as guerras eletrônicas[6] e cibernéticas[5] evoluíram o suficiente para causar preocupação, respostas cinéticas[7], e até mesmo a capitulação de nações com poderio bélico nuclear, a necessidade de modernização segura de muitos desses sistemas é uma ótima janela de oportunidade para realizar novos negócios e aumentar nosso poder de dissuasão nesta área.

Ao invés de um código estático configurado manualmente num lançador de mísseis, a tecnologia de chaves pública/privada e curvas elípticas de hoje, nos permite ter códigos que mudam a cada X horas ou minutos, e as sementes para o cálculo dos códigos podem existir apenas na mala presidencial e/ou no alto comando das forças armadas.

Tendo em vista as recentes evoluções nos chamados ataques a cadeia produtiva [8], nada mais interessante que desenvolvermos um HSM “padrão militar” com tecnologia 100% nacional – alguns chips ainda precisam ser importados.

O prolongado tempo de vida de veículos e armas abre um espaço enorme para a indústria, no que tange a modernização, como a adição ou substituição de sensores, e outros dispositivos analógicos mais propensos a falhas mecânicas. Alguns microchips atuais [4], padrão militar, possuem tempo de vida de mais de 50 anos, contagem feita, claro, a partir de testes que multiplicam, às vezes em fatores de centenas de vezes, suas operações, para estimar o tempo de vida dos mesmos em laboratório.

[1] https://www.imdb.com/title/tt1825163/
[2] https://therestartproject.org/design/triumphing-together-against-planned-obsolescence/
[3] https://en.wikipedia.org/wiki/Johnny_English_Strikes_Again
[4] https://www.microchip.com/wwwproducts/ProductCompare/ATECC608B/ATECC608B-TCSM
[5] https://www.theregister.com/2016/06/22/cyber_warfare_future_stuxnet/
[6] https://www.maritime-executive.com/article/gps-spoofing-patterns-discovered
[7] https://www.bbc.co.uk/news/uk-34078900
[8] https://www.fireeye.com/blog/threat-research/2021/03/sunshuttle-second-stage-backdoor-targeting-us-based-entity.html
[9] https://www.bellingcat.com/news/2021/05/28/us-soldiers-expose-nuclear-weapons-secrets-via-flashcard-apps/

Explorando vulnerabilidades no Cellebrite UFED e Analisador Fisico pela perspectiva de um App

(Traduzido de https://signal.org/blog/cellebrite-vulnerabilities/ por Fábio Martins)

moxie0 em 21 de abril de 2021

A Cellebrite desenvolve software para automatizar a extração e indexação física de dados de dispositivos móveis. Eles existem dentro do “label cinza” – onde a marca corporativa se junta com o ladrão para ser chamado de “inteligência digital”. Sua lista de clientes inclui regimes autoritários na Bielo-Rússia, Israel, Estados Unidos da América do Norte (EUA), e Venezuela; policiais em Mianmar. Alguns meses atrás, eles anunciaram que adicionaram suporte ao Signal em seu software.

Seus produtos costumam ser vinculados à perseguição de jornalistas e ativistas presos em todo o mundo, mas menos se escreveu sobre o que seu software realmente faz ou como funciona. Vamos olhar mais de perto. Em particular, seu software é frequentemente associado a contornar a segurança, então vamos examinar a segurança de seu próprio software.

Olhando por trás

Em primeiro lugar, qualquer coisa que envolva o Cellebrite começa com outra pessoa fisicamente segurando seu dispositivo nas mãos. A Cellebrite não faz nenhum tipo de interceptação de dados ou vigilância remota. Eles produzem dois softwares principais (ambos para Windows): UFED e Physical Analyzer (ou Analisador Fisico).

O UFED cria um backup do seu dispositivo na máquina Windows que esta rodando o UFED (é essencialmente um front-end para backup via adb no Android e backup do iTunes no iPhone, com algumas análises adicionais). Depois de criar um backup, o Physical Analyzer analisa os arquivos do backup para exibir os dados em formato navegável.

Quando a Cellebrite anunciou que adicionou o suporte Signal ao seu software, tudo o que realmente significava foi que eles adicionaram suporte ao Physical Analyzer para os formatos de arquivo usados ​​pelo Signal. Isso permite que o Physical Analyzer exiba os dados do Signal que foram extraídos de um dispositivo desbloqueado, que se encontra na posse física de um usuário do Cellebrite.

Uma maneira de pensar sobre os produtos da Cellebrite é que se alguém estiver segurando fisicamente seu dispositivo desbloqueado nas mãos, eles podem abrir os aplicativos que quiserem e tirar capturas de tela de tudo que há neles para salvar e revisar mais tarde. O Cellebrite basicamente automatiza esse processo para alguém que está segurando seu dispositivo nas mãos.

No lugar certo, a Celleb … ridade certa

Por uma coincidência verdadeiramente inacreditável, recentemente estava passeando quando vi um pequeno pacote cair de um caminhão à minha frente. Conforme me aproximei, o tipo de letra empresarial enfadonho lentamente entrou em foco: Cellebrite. Lá dentro, encontramos as versões mais recentes do software Cellebrite, um dongle de hardware projetado para evitar a pirataria (diz algo sobre seus clientes, eu acho!) E um número bizarramente grande de cabos dapatadores de celular.

Pacote da Cellebrite na beira da estrada.

O software

Qualquer pessoa familiarizada com segurança de software reconhecerá imediatamente que a principal tarefa do software da Cellebrite é analisar dados “não confiáveis” de uma ampla variedade de formatos usados ​​por muitos aplicativos diferentes. Ou seja, os dados que o software da Cellebrite precisa para extrair e exibir são, em última análise, gerados e controlados pelos aplicativos no dispositivo, não por uma fonte “confiável”, então a Cellebrite não pode fazer nenhuma suposição sobre a “exatidão” dos dados formatados que está recebendo. Este é o espaço em que virtualmente todas as vulnerabilidades de segurança se originam.

Uma vez que quase todo o código da Cellebrite existe para analisar entradas não confiáveis ​​que podem ser formatadas de uma forma inesperada para explorar a corrupção de memória ou outras vulnerabilidades no software de análise, pode-se esperar que a Cellebrite tenha sido extremamente cautelosa. Olhando para o UFED e o Physical Analyzer, no entanto, ficamos surpresos ao descobrir que muito pouco cuidado parece ter sido dado à segurança de software da própria Cellebrite. Faltam defesas de mitigação de exploits padrão da indústria e muitas oportunidades de exploração estão presentes.

Como apenas um exemplo (não relacionado ao que segue), seu software agrupa DLLs FFmpeg que foram construídas em 2012 e não foram atualizadas desde então. Houve mais de uma centena de atualizações de segurança nesse período, nenhuma das quais foi aplicada.

Vulnerabilidades FFmpeg por ano

Os exploits


Dado o número de oportunidades presentes, descobrimos que é possível executar código arbitrário em uma máquina Cellebrite simplesmente incluindo um arquivo formatado especialmente, mas inócuo em qualquer aplicativo em um dispositivo que é posteriormente conectado ao Cellebrite e escaneado. Praticamente não há limites para o código que pode ser executado.

Por exemplo, ao incluir um arquivo especialmente formatado, mas inócuo em um aplicativo em um dispositivo que é verificado pela Cellebrite, é possível executar um código que modifica não apenas o relatório Cellebrite sendo criado nessa verificação, mas também todos os anteriores e futuros. Os relatórios da Cellebrite de todos os dispositivos escaneados anteriormente e de todos os dispositivos escaneados no futuro, de qualquer forma (inserir ou remover texto, e-mail, fotos, contatos, arquivos ou quaisquer outros dados), sem alterações de carimbo de data / hora detectáveis ​​ou falhas de checksum. Isso pode até ser feito aleatoriamente e colocaria seriamente em questão a integridade dos dados dos relatórios da Cellebrite.

Qualquer aplicativo pode conter esse arquivo e, até que o Cellebrite seja capaz de reparar com precisão todas as vulnerabilidades em seu software com extrema confiança, o único remédio que um usuário do Cellebrite tem é não fazer a varredura dos dispositivos. A Cellebrite poderia reduzir o risco para seus usuários atualizando seu software para interromper a varredura de aplicativos que considera alto risco para esses tipos de problemas de integridade de dados, mas mesmo isso não é garantia.

Obviamente, estamos dispostos a divulgar de forma responsável as vulnerabilidades específicas que conhecemos para a Cellebrite se eles fizerem o mesmo para todas as vulnerabilidades que usam em sua extração física e outros serviços para seus respectivos fornecedores, agora e no futuro.

Abaixo está um vídeo de amostra de um exploit para UFED (exploits semelhantes existem para o Physical Analyzer). No vídeo, o UFED atinge um arquivo que executa código arbitrário na máquina Cellebrite. Essa carga útil de exploração usa a API do Windows MessageBox para exibir uma caixa de diálogo com uma mensagem. Isso é para fins de demonstração; é possível executar qualquer código, e uma carga útil de exploração real provavelmente tentaria alterar relatórios anteriores de forma indetectável, comprometer a integridade de relatórios futuros (talvez aleatoriamente!) ou exfiltrar dados da máquina Cellebrite.

O copyright


Também é interessante que o instalador do Physical Analyzer contém dois pacotes de instalador MSI chamados AppleApplicationsSupport64.msi e AppleMobileDeviceSupport6464.msi. Esses dois pacotes MSI são assinados digitalmente pela Apple e parecem ter sido extraídos do instalador do Windows para o iTunes versão 12.9.0.167.

Pacotes MSI

O programa de instalação do Physical Analyzer instala esses pacotes MSI em C:\Program Files\Common Files\Apple. Eles contêm DLLs que implementam a funcionalidade que o iTunes usa para interagir com dispositivos iOS.

DLLs instaladas no sistema de arquivos

A ferramenta Cellebrite iOS Advanced Logical carrega essas DLLs da Apple e usa sua funcionalidade para extrair dados de dispositivos móveis iOS. A captura de tela abaixo mostra que as DLLs da Apple são carregadas no processo UFED iPhone Logical.exe, que é o nome do processo da ferramenta iOS Advanced Logical.

DLLs carregadas em processo

Parece improvável para nós que a Apple tenha concedido à Cellebrite uma licença para redistribuir e incorporar DLLs da Apple em seu próprio produto, então isso pode representar um risco legal para a Cellebrite e seus usuários.

Completamente não relacionado

Uma notícia completamente não relacionada, mas as próximas versões do Signal irão baixar arquivos periodicamente para colocar no armazenamento do aplicativo. Esses arquivos nunca são usados ​​para nada dentro do Signal e nunca interagem com o software ou dados do Signal, mas têm uma boa aparência e a estética é importante no software. Os arquivos serão devolvidos apenas para contas que já tiveram instalações ativas por algum tempo, e apenas probabilisticamente em baixas porcentagens com base no número de telefone. Temos algumas versões diferentes de arquivos que consideramos esteticamente agradáveis ​​e faremos uma iteração por eles lentamente ao longo do tempo. Não há outro significado para esses arquivos.

Nota do Tradutor

A caixa de pandora foi aberta.

Não confie em empresas que oferecem “simulação de adversário” com adversários capazes e reais. Contrate tal pessoal com assinatura de NDA (Non-Disclosure Agreement), ou você pode acabar perdendo a sua empresa e/ou, seu produto e potencialmente seus clientes no mundo real, não no simulado.

Qualquer um que tenha tido o celular auditado / analisado pelo equipamento da Cellebrite em um processo judicial, já pode requerer a auditoria / análise do programa UFED pelos seus próprios peritos (inclusive este que vos fala, especialista nas tecnologias e ferramentas em questão, capaz de realizar as demonstrações necessárias fora ou em corte), alegando que as vulnerabilidades existentes (algumas públicas, outras não) do mesmo podem ferir a integridade das informações obtidas, e caso o pedido seja negado, pedir que as provas sejam removidas do processo judicial.

É importante ressaltar que tal medida vale não apenas para processos futuros, mas também passados – já que existe a possibilidade de que arquivos com nome ou conteúdo mal-formado, inválido ou corrompido, fato comum de acontecer em memórias tipo SDcard ou flash presentes no hardware dos dispositivos móveis, possam ter ferido a integridade das provas obtidas.

Exemplo de nome de arquivo corrompido num SDcard de smartphone, fato ocorrido sem interação humana proposital, mas que mesmo assim pode afetar a integridade de relatórios periciais:

SDcard de smartphone naturalmente corrompido

Sentenças podem ser anuladas, processos e julgamentos que tiveram base neste tipo de prova, recomeçarem do zero.

Também existe a possibilidade de que quantias bilionárias sequestradas pela justiça, precisem ser devolvidas.

O impacto dessa revelação pode afetar centenas, senão milhares, de processos judiciais em todo o mundo – já que não se pode mais confiar na integridade dos dados extraídos de um smartphone através dessa ferramenta, sem mencionar que as suas ações (CLBT) a serem listadas ( num suposto “merge” bilionário, de aproximadamente 12 bilhões de reais – realmente ocorrerá? ) em breve na NASDAQ, não atrairão muitos investidores, devido ao futuro incerto da companhia Israelense.

Quanto vale um relatório forense que não pode ser usado em corte?

Ou que se usado, pode ser facilmente retirado da lista de supostas provas, pelo advogado de defesa e seus peritos?

Entre o assassino e o corrupto (Bota na conta)

Me mostre apenas 1 chefe de estado, com exceção de Vossa Santidade O Papa, que nunca precisou tomar decisões difíceis – na minha opinião, não existe.

Em todo o rumo da história, seja em tempos de paz ou guerra, todos os chefes de estado foram levados a tomar decisões extremas para garantir a evolução e a independência de seus povos.

Quanto mais longe formos pesquisar, mais sangue veremos. Nos dias atuais menos sangue, mais hipocrisia e mídia.

Nossa sociedade evoluiu o suficiente para chefes de estado não precisarem mais tomar tais decisões, correto? Shangri-la foi encontrada e todos vivemos alegres e felizes nela, com maná caindo do céu, certo?

Opa, me esqueci que também o Papa quis visitar uma das zonas mais perigosas da cidade do Rio de Janeiro, logo, assumiu o risco das decisões difíceis a serem tomadas, transferindo a responsabilidade para os agentes de segurança que necessitaram realizar as ações necessárias.

Favor retirar Vossa Santidade O Papa da lista.

Precisamos de uma fábrica de waffles!

O Brasil precisa sim urgentemente de uma fabrica de chips.

Longe de querer chegar em poucos anos, aos 10 ou 7 nanômetros na tecnologia de produção dos mesmos, mas a necessidade de se começar existe.

As pesquisas mais avançadas no setor são lideradas por EUA e China, sendo EUA o primeiro lugar absoluto com Intel / AMD.

Porem isso não impediu que China tentasse alcançar a sua independência tecnológica, aliando polo industrial, PPP e universidades – nasce Loongson / Godson. Quanto tempo vai demorar para chegar ao patamar de Intel / AMD? Ninguem sabe – mas talvez chegue um dia.

Como fomentar a área? Não sei, mas podemos iniciar nos perguntando:

  • Quais as universidades federais mais avançadas na área?
  • Quais os Institutos de engenharia militares mais avançados nessa pesquisa?
  • E empresas privadas querendo produzir tecnologia indígena de baixo custo para equipar consumidores de baixa / media renda que não necessitam de computadores acima dos 10 mil reais para estudo e trabalho?

Boleto Santander para clientes NET via SPAM detectado no honeypot

NET_Virtua_spam


Recentemente meu honeypot pegou muitas tentativas de envio de boletos (>5000) – aparentemente todos iguais, PDF com codigo de barras do Santander, impersonando a NET:

03399853012970000048141305301016382130000033382

Não consegui verificar a validade do boleto no site do Santander, mas
fica o alerta caso alguem receba algum email similar imitando a NET.

A maioria dos emails é com destino ao domínio do ig.com.br:

(REDACTED)778@ig.com.br
(REDACTED)_abat@ig.com.br
(REDACTED)_ambrosio@ig.com.br
(REDACTED)_azevedo@ig.com.br
(REDACTED)_bulls@ig.com.br
(REDACTED)_chme@ig.com.br
(REDACTED)_crisostomo@ig.com.br
(REDACTED)_dias_ramos@ig.com.br
(REDACTED)_eyes@ig.com.br
(REDACTED)_ferraz@ig.com.br

Segue cópia do boleto recebido:

https://mega.nz/#!1rQmACAI!smiQftBVvnmmx5KIFr4OyUtKZbYeN5tuOvx8P-UTdO8

Ou AQUI!

Usando a senha: spam

MD5 (NET_Virtua_spam.pdf) = 357eff754cfd87fdb96538f1dbd66f7d
SHA256 (NET_Virtua_spam.pdf) = 8af1e2d0a8eac8d38ce14517d5591005c76e8ea105f9ad3903635998145031d9

 

A gótica de São Paulo

Ferias em São Paulo, peguei o ônibus de noite e fui ver amigos que só conhecia via IRC.

Cheguei na casa de um deles, que foi escalado para a minha recepção, tirei o disco rígido da mochila, ele montou um computador a partir de umas partes jogadas num canto, e pronto – estávamos os dois online no mesmo quarto.

Conectamos na #undernet, entramos no canal, saudamos alguns conhecidos, dissemos que estávamos juntos.

Alguém teve a ideia de algum projeto novo, começamos a programar, mas ficou tarde e o código ficou em algum canto do HD e fomos dormir.

No dia seguinte conheci os pais desse amigo, gente boa e humilde. Comemos, demos uma volta no bairro e conversamos sobre coisas da adolescência. Almoçamos, voltamos aos computadores e retomamos a programação.

A noite estava reservada para um outro amigo, mais velho porem que só conhecia também via IRC, trabalhava numa conhecida empresa. Íamos numa boite gótica.

Ao chegar, o ambiente era tomado de fumaça de cigarro e outros fumígenos, algumas frases de Baudelaire e outros poetas escritas na parede.

Fui pra pista de dança, me separei dos recém-conhecidos da vida real, e apos fui tomar um ar numa área externa.

Enrolei um cigarro, comecei a fumar, e alguns estranhos chegaram juntos. Eram 2 mulheres e 1 homem, todos paulistas. Nos apresentamos, disse ser carioca, uma delas disse que se mudaria para o Rio dentro de 1 mês e por isso trocamos telefone.

Estava perdido nas frases de Baudelaire escritas nas paredes, não percebi que os 3 tinham sumido e que um segurança se aproximou e disse que eu não podia fumar ali, o que obedeci de pronto, pedindo desculpas, apagando o cigarro e dizendo não ser da região.

Reencontrei os amigos e fomos para casa.

Nos próximos dias mais códigos e IRC dentro de um quarto relativamente pequeno, mais ideias iam se agregando ao projeto, e algo maior ia tomando forma. Algo com muitos módulos, em diferentes linguagens de programação, além de assembly, que era a base.

Voltei ao Rio, e esperava ansioso a ligação daquela menina magrinha, um pouco intrigante, de um branco muito pálido, de olhos e cabelos negros. Ela não ligou.

Liguei para ela apos algumas semanas, ela pediu desculpas e disse que o namorado pediu o maco de cigarros, onde o telefone estava escondido, e para ele não ver, ela jogou o maco fora. A explicação convenceu e me ofereci a mostrar o Rio de Janeiro para a paulista recém-chegada.

Nos encontramos na Barra da Tijuca, ao vê-la, estava com um vestido preto e com uma garrafa de vinho. Bebemos no gargalo toda a garrafa, e a convidei a ir a boite Bunker.

Dançamos bastante, mas nessa época eu ainda gostava mais de computadores do que do sexo feminino. Ela tomou a iniciativa e me ofereceu uma bala, quando fui pegar ela falou para pegar a que estava em sua boca, e assim começamos a ficar mais íntimos.

Fomos a varios outros lugares juntos, nos conhecendo mais. Experimentamos algumas coisas novas.

Com o passar dos anos viramos amigos íntimos. Combinamos que não importava quem estivesse namorando, mas se nos encontrássemos, tinha que rolar alguma coisa. Ficou divertido e com uma sensação de meio proibido, porque quase sempre um dos dois estava num relacionamento, e tínhamos que improvisar.

Tive um breve relacionamento com uma pessoa próxima a ela, e a relação ficou prejudicada quando ela descobriu nossa falta.

Apos alguns meses o projeto computacional se materializou, feito a mais mãos do que era previsto, com pessoas de mais países do que esperávamos.

Ela se mudou para longe com outra pessoa. Perdemos o contato, acho que ela viajou mais do que deveria, mas não tenho certeza.