A Thorough Investigation on Software Protection Techniques against Various Attacks (Bonfring international journal of software engineering and soft computing, 2012)