Test your coding abilities, challenge yourself,
and get a taste of the programming skills needed
for a career at Raincode Labs!
A corporation has a large portfolio of C programs. The vast majority is generated code that has been intentionally obfuscated. This was done to make reverse engineering it more difficult, so this code is executable but not maintainable. The rest of the code is hand-written C. All the code is valid and compiles on Windows and Linux.
The challenge is to develop a deobfuscating facility to be applied to this code, so that it can be read, understood and even superficially maintained by a human developer. You must create a fully automatic process that treats the entire portfolio. You are free to use any tool, language or library, as long as it is freely available. The solution does not have to be universal in the sense of applying to any C source code portfolio, but it should be usable for any equivalent, C-generated software system that has gone through the same obfuscation process.
Show us what you’re made of!