термин "обфускация" обозначает буквально "запутывание" и применяется только к интерпретирующим языкам программирования, таким, как
Java или
C#. дело в том, что исходные тексты таких программ не могут быть скрыты - они ведь не компилируются, и исполняются интерпретатором. предварительная компиляция в байт-код мало что дает, т.к. по байт-коду довольно хорошо восстанавливается первоначальный исходник. ну а производители ПО не хотят, чтобы их программы могли быть легко взломаны - если есть исходник, то взлом не представляет сложности.
так вот, обфускация - это обработка исходного текста программы программой-обфускатором, которая делает исходник нечитаемым человеком, но вполне понятным интерпретатору. например, если в вашей программе есть объект
SecretService, а в нем есть метод
DisableSaveFile - даже козе понятно, что
SecretService.DisableSaveFile = true означает, что запись файлов заблокирована секретной службой

а обфускатор просто ПЕРЕИМЕНОВЫВАЕТ
SecretService во что-то нечитаемое типа
e_12_sdf5_11_334 и в итоге исходная строка превращается в
e_12_sdf5_11_334.wwevfskh_2123_w = 23 - можно по этой строке угадать, что тут как раз и устанавливается блокировка важной функции?
если бфускатор постарается - узнать исходный текст будет практически нереально!
даже если из обычной программы Си убрать все переносы строк, т.е. записать программу в одну строку - разобраться в ней будет непросто...
надеюсь, я понятно объяснил суть обфускации?