Olá,
seguindo a linha de assunto do post anterior hoje eu compartilho com vocês o link para uma ferramenta que eu achei incrivel!
Você já se perguntou como uma máquina virtual consegue ler e executar as instruções do programa (compilado!) que você quer emular? Interessante não? O Pin [1] não é exatamente uma máquina virtual mas em um certo nível ele é, porém ele faz mais que isso, ele te permite fazer a instrumentação (inspecção e modificação) do código binário que está sendo executado! Por exemplo: saber o endereço de memória que os programas estão acessando, saber quantas instruções – em linguagem de montagem – foram executadas, saber quais foram as instruções executadas, etc.
Nesse link [2] você encontra vários exemplos bem bacanas, vale a pena dar uma olhada =D. Fico devendo para um futuro post um tutorial sobre como utilizar o Pin.
Cheers.
JT.
[1] http://www.pintool.org/
[2] http://www.pintool.org/docs/39599/Pin/html/
