이번엔 #define과 함수 작성에 대해서 알아보겠습니다.
흔히들 최대한 알아보기 쉽게 #define은 관례상 대문자로 작성하곤 하는데, 이것은 매우 좋지 못한 선택입니다.
해커가 만약 자신의 소스코드를 보게된다면 간단하게 CTRL + F만 누른다면
이 변수가 어떠한 일을 하는지를 금방 알수 있습니다.
올바르지 않은 예) 가독성 좋게 작성한 #define과 메인 함수;
이런식으로 작성해버린다면 해커나 나의 친구가 나쁜마음을 먹고 소스를 보려고하면
얼마든지 뚫려버릴수 있는 좋지 못한 코드가 됩니다.
그러면 우리는 올바르게 작성한 #define과 함수를 알아보겠습니다.
올바른 예)
매우 훌륭하게 작성된 코드입니다.
만약 일반적인 텍스트 편집기로 MYVALUE를 검색한다고 해도 \때문에 아랫칸에 있어서 절대 검색할수 없습니다.
true와 false를 반대로 선언하는것도 매우 훌륭한 방법입니다.
일반적인 관례상 true또는 TRUE는 1로 선언되있고 false나 FALSE는 0으로 선언되어있기때문에
저렇게 바꿔놓는다면 절대 알수가 없습니다.
또한 어째서 이런일이 발생하는지 #define으로 잘라놓아서 절대 알수가 없습니다.
또한 사이사이에 필요없는 어셈블리 코드를 작성함으로써 소스 난독화에 크게 기여할수 있습니다.
적절하네요.