Reverse engineering of computer software has assumed greater importance in
recent years because of the need to examine legacy code to remove the year
2000 bug. There are different types of reverse engineering based on the lev
el of abstraction of the code to be reengineered; machine code, assembly co
de, source code or even CASE code. We describe the different types of rever
se engineering and the extent of copyright protection for software. The mos
t common uses of reverse engineering are described. This provides for a com
parative overview of the legal standing on reverse engineering at the inter
national level. We propose challenges to the global electronic community in
relation to existing and future legislation in the area of reverse enginee
ring and protection of digital works.