Research in reverse engineering March 8, 2008
Posted by lizardo in Reverse Engineering.trackback
I am about to graduate in Computer Science at Universidade Federal do Amazonas (UFAM), so I think I will now have more time to continue my personal research on some subjects I am interested in, but never found time to continue after I entered college.
One of these subjects is Reverse Engineering (RE). Before entering college, I played a little with RE and started a project on reverse engineering a driver for my scanner. It was quite challenging, and I liked it a lot, but never had time since then to either continue this project or start new ones.
Now it is time to change
. During college I developed interest in Artificial Intelligence (IA) and ontologies. This (somehow
) led me to create interest in a research area known as “program comprehension” or “program understanding”. This is a research domain that, in my opinion, includes RE when it is applied to understanding how a system works. Therefore, my focus will be on applying RE techniques for program understanding.
As a first step, I started gathering some domain knowledge, but I would like to make something more pragmatic in parallel, so my studies could have a focus. I decided for now to work with the Boomerang decompiler and make some RE experiments with it. I chose it because It is, to my knowledge, the most advanced Open Source decompiler I am aware of, and decompilers can help understanding programs for which you don’t have sources. Of course, there are some other tools I would like to experiment with, such as Sparse.
I will probably make some kind of schedule so I don’t lose track during my research. More to follow!
Comments
Sorry comments are closed for this entry
Fala Anderson!
Estou fazendo mestrado na PUC-Rio e também estou trabalhando na área de program-comprehension. Pretendo desenvolver uma ferramenta para auxiliar o entendimento de sistemas legados.
Pode ser que possamos contribuir com nossas pesquisas!
[]’s
Seria ótimo! Meu interesse no momento é entendimento de programa a partir de código de máquina (Assembly). Este tópico em específico apresenta seus próprios desafios, visto que muito menos informação está disponível no código compilado; além disso, possui algumas aplicações interessantes, principalmente na área de segurança (por exemplo, detecção de código malicioso) e para interoperabilidade com software proprietário.