보통 우리는 함수를 만들때 자신이 알아보기 쉽게 함수를 작성하곤 합니다.
하지만 이 방법은 매우 보안에 취약하다는 단점이 있습니다.
해커가 자신의 소스를 본다면 누구나 취약점을 통해 공격할수 있을 것입니다.
올바르지 않은 함수 작성의 예) 배열합계;
다음 함수는 C언어로 작성된 단순한 배열의 합을 구하는 함수입니다.
보기에는 쉬워보일수 있으나 이런식의 코드작성은 해커의 공격에 속수무책으로 뚫리고 말 것입니다.
올바른 함수 작성의 예) 배열합계;
위의 올바르지 않은 예를 이런식으로 바꾸어 보았습니다.
해커가 소스를 본다고해도 전혀 이해할수가 없습니다.
비록 약간의 불필요한 연산이 있기는 하나 요즈음의 컴퓨터에서는 이러한 작업은
큰 부하를 일으키지 않습니다.
오히려 따로 보안 프로그램을 사용하지 않아도 되어 속도 상승의 효과까지 느낄수 있을 것입니다.
최근 보안의 위협에 따라 C/C++ 협회에서는 2013년 12월부터 goto의 사용을 다시 권장하고 있습니다.
goto를 남용하게 된다면 비록 소스보기는 힘들지 모르겠지만
보안적인면에서는 큰 도움이 될 것입니다.
와 님아. 신이세요? 핵스레이도 힘든 함수 구현을 손으로 하시다니.. 거기다 변수이름까지?
저딴 편법써도 어차피 뻔히 보임.
어셈을 저렇게 ...
리버싱 하면 어차피 똑같은 어셈코드 나오는거 아님??