Essa semana me dediquei a atualizar meu currículo e tive a brilhante ideia de colocar um histórico técnico, o que resumindo é uma lista de coisas que fiz ou estive relacionado com durante minha breve estadia de dez anos no mundo da programação.
Daí pensei: "isso pode ser útil para as pessoas que leem". E por que não? Talvez você tenha alguma dúvida esperando para ser sanada e não encontra um maldito que saiba alguma coisa sobre. Talvez esse maldito até tenha um blogue em que possa compartilhar algum conhecimento que está inerte naquela cabeça oca de programador.
Sendo assim, abaixo segue um resumo da minha vida profissional, com as coisas que eu consegui me lembrar que fiz desde dezembro de 2000. O que eu não lembrei talvez não valha tanto a pena assim.
- Inventário de hardware (WMI/SMBIOS) e software (registro)
- Proteção da área de transferência e PrintScreen através de hook de janelas e manipulação de mensagens globais
- Escrita de alertas no log de eventos do sistema através de drivers
- Comunicação user/kernel mode através de DeviceIoControl
- Acesso remoto de desktop através de ferramenta similar ao VNC
- Ferramenta de execução remota similar ao PsExec
- Controle de impressão de documentos através de regex (Boost) usando hook do Shell
- Gerenciamento de diretivas de acesso do sistema durante logon e logoff de usuários (registro e hooks)
- Migração de base de dados CTree para SQL (classes OLE)
- Autenticação Windows com serviço DCOM e GINA customizada ou Credential Provider (Vista)
- Sincronismo remoto de base de dados CTree usando serviço DCOM
- CD Linux bootável com scripts bash e ferramentas de criptografia de discos em linguagem C
- Driver de criptografia de discos rígidos e armazenamento USB (PenDrives)
- Análise de telas azuis ou dumps de memória usando WinDbg
- Serviço COM de execução de aplicativos na conta de sistema
- Customização da MBR (Master Boot Record) de acordo com características da BIOS
- Biblioteca de criptografia Blowfish e SHA-1 em C++ e Assembly 16 bits
- Driver de auditoria de acesso com memória compartilhada e eventos entre user e kernel
- Hook de API em kernel mode para plataformas NT e 9X
- Carregador de boot em Assembly 16 bits; depuração usando Debug.com
- Proteção de executáveis através de autenticação em domínio configurado no resource dos arquivos
- DLL de proteção à navegação em Internet Explorer 6/7 e Firefox 1/2 com injeção de código Assembly 32 bits
- Biblioteca de proteção de código, strings e execução monitorada; uso de interrupções Win32
- Biblioteca de geração de log centralizado através de memória mapeada e eventos globais
- BHO (Broser Helper Object) e ActiveX para Internet Explorer 6/7 e plugin XPI para Mozilla/Firefox
- Gerenciamento de projetos com Source Safe, Bazaar e scripts Batch
- Depuração de kernel mode em plataforma NT usando SoftIce e WinDbg, em 9X usando SoftIce e WDeb98
- Engenharia reversa de trojans feitos em C++, Visual Basic e Delphi usando WinDbg e IDA
- Ferramenta de diagnóstico que lista arquivos, serviços, drivers, registro, partições, processos, etc da máquina
- Monitoramento de jobs em Windows 2000+ para controle de instalação e atualização de produtos
- Monitoramento da frequência de uso de aplicações usando hook de janelas invasiva e não-invasiva
- Engenharia reversa do dicionário Houaiss e importação para o formato Babylon
- Controle de build com Cruise Control .NET, servidor de símbolos com Debugging Tools for Windows
- Documentação de projetos através de Doxygen e Wiki (Trac)
- Interfaces de gerenciamento em C++ Builder 5/6 e bibliotecas Visual C++
- Analisador de e-mails usando expressões regulares (ATL)
- Interfaces de análise em Visual C++ (MFC /ATL/WTL)
- Análise de logs e edição global de projetos utilizando regular expressions
- Desenvolvimento de artigos através de blogue técnico e comunidade Code Project (esse você já sabia, não é?)
Talvez eu atualize isso constantemente. Se bem que o mais certo a fazer é atualizar essa lista com artigos sobre o meu dia-a-dia escovando bits. Afinal de contas, eu tenho um blogue técnico!

August 4th, 2009 at 11:48 am
Parabéns pelo Blog.
Sou iniciante em C++ e percebi que escolhi uma linguagem onde poucos se aventuram (comparando com VB, etc).
A gente encontra programadores VB em tudo qué esquina, mas coisa rara é encontrar um camarada que programa em C++.
Na banca de jornal se vê revistas de tudo qué linguagem, mas nunca vi (e procurei) uma revista especializada em C++. Me corrijam mas parece que tal coisa nem existe. Por causa dessas coisas é que sinto que a vida do programador C++ é muito "solitária" (me refiro mais ao Brasil) se comparada às outras linguagens.
Por isso agradeço pelo seu blog e que continue escrevendo pra valer, pois em lingua portuguesa, vejo que tá meio escasso os bons blogs C++ na Web. Até hoje só encontrei dois que achei valer à pena seguir: o seu e o do Rodrigo Strauss.
Grande abraço.
August 4th, 2009 at 4:30 pm
Camarada Caloni. Espero (e acredito) que vc esteje bem feliz hoje!
August 4th, 2009 at 11:05 pm
Olá, Cesar.
Imagino que essa falta de divulgação da linguagem seja exatamente a falta de exploração da nossa massa de programadores em fazer coisas realmente interessantes que o povo de fora costuma fazer. Já que coisas realmente interessantes são feitas em C++ =)
Camarada Victor,
Com certeza estou em um dos meu melhores momentos. Isso quer dizer também que estou bem feliz; hoje e sempre =)
[]s
March 9th, 2010 at 8:57 pm
Olá Cezar, achei muito bom seu blog. Reparei que vc ja teve que trabalhar com WMI, estou fazendo o meu TCC sobre um sistema de reconhecimento de hardware via web e estou tendo dificuldades para gerar a dll no c++ builder 2010. Vc tem algum material que possa me ajudar?
Se tiver algo agradeço, se não fica ai meu recado pelo excelente blog.
ps: achei interessante sua historia de como virou programador...hehe...
abraço