이 퍼즐의 요점은 프로그램에서 악성 코드를 숨기고 발견하는 방법을 배우는 것입니다.
사람이 질문을하고 있습니다 :
Plz는 파일을 검색하는 방법이 Present Directory 또는 해당 하위 디렉토리에있을 수있는 코드를 제공합니다.
(이것은 한 사이트에 게시 된 실제 질문의 변형입니다.)
보다 구체적으로 말하면 : OP는 문자열과 디렉토리를 허용하는 프로그램을 작성하려고합니다. 디렉토리의 모든 파일과 재귀 적으로 모든 서브 디렉토리를 순회합니다. 각 파일마다 파일에 문자열이 포함되어 있는지 확인하고 포함되어 있으면 파일 이름을 인쇄합니다. (원하는 경우 프로그램이 주요 목표와 관련이있는 한 추가 기능을 가질 수 있습니다.) 순회 순서에 대한 요구 사항은 없습니다.
그러나이 퍼즐의 주요 임무는 사용자 / 동료 / 보스 등의 눈에 프로그램을 요청하는 사람을 속이는 추가 코드를 프로그램에 숨기는 것입니다. 예를 들어, 다음과 같은 시점에 굴욕적인 텍스트를 인쇄 하십시오. 프로그램 작성자는 프로그래밍 방법을 모르고 졸업장을 반환하여 해고를 당해야합니다. 창의력을 발휘하십시오.
규칙 :
- 솔루션 은 해롭지 않아야합니다 (물론 OP를 바보로 만드는 것을 제외하고). 최종 사용자에게 돌이킬 수없는 피해를 입히지 않아야합니다 (와 같은 물건 없음
rm -rf
)! 이러한 솔루션은 실격 처리됩니다. - OP가 쉽게 찾을 수 없도록 트롤링 항목을 숨겨야합니다.
- OP를 트롤링하고 있다는 것은 분명하지 않습니다. 코드는 진짜처럼 보일 것입니다.
- 솔루션 에는 모든 사람이 솔루션에서 무언가를 배울 수 있도록 OP를 조정하는 방법에 대한 적절한 설명 이 제공 되어야합니다 . 설명은 클릭 할 때까지 숨겨진 텍스트 (스포일러)에 숨겨져 야합니다 . 심사 할 때 설명을 보지 않고 트롤링을 발견하고 발견하기 어려운 사람들에 투표하십시오.
- 또한 코드를 몇 번 실행하려고하면 OP에서 트롤링을 숨기십시오. 아마도 특정 날짜 이후 또는 조잡한 프로그래머가 테스트하지 않는 일부 조건에서만 트롤링을 시작합니다. 창의력을 발휘하고 트릭을 설명하는 것을 잊지 마십시오.
grep
또는 과 같은 기존 도구를 사용하여 스크립트를 만들지 마십시오find
. 처음부터 프로그램을 작성하십시오. 라이브러리를 피하는 것이 좋으며 저수준 호출을 선호합니다. 이렇게하면 코드가 더 복잡해지고 악의적 인 것을 숨길 수 있습니다.
이것은 인기 콘테스트 입니다. 위의 사항에 따라 판단하십시오.