애기중붕이라면 한번쯤 해봤을 고향만두
스토리는 대충 옆에 새로생긴 경쟁사 "타향만두"보다 더 맛있는 만두를 만들어서 장성하려고 하는 스토리이다
곧 대머리를 앞두고있는 아저씨가 만두를 목표로 결의를 다지고 있는 모습이 인상적이다
하지만 알다시피 아는사람만 아는 고인물 레시피와 진입장벽, 난이도 때문에
공략없이 웃고있는 고향만두 아재의 얼굴을 본 사람은 극 소수이고
많은 중붕이들이 클리어를 하지못해 눈물을 흘렸었던것을 기억할 것이다
구글링해서 공략을 찾아보면, 정식 공략 외에 저렇게 병신같은 버그 레시피를 찾아볼수있는데
도대체 어떤 방식으로 고향만두 아재의 얼굴을 웃게 만들수 있는것일까??
진성 컴공을 다니는 중붕이가 고향만두 게임을 리버싱해서 그 원리를 알아보도록 하자
중붕-매직!!
우선, 만두 성공 여부를 판단하는 핵심 알고리즘은 위와 같다
많은 공략법대로 만두빚는 모양, 용기가 알맞은지 확인한 후 밀가루+물 잘 선택했는지 체크를 한다.
요즘 학교에서 코딩을 한시간이라도 배운 중붕이라면 눈치껏 로직을 파악할 수 있을것이다.
다만, 재밌는점은 위에 하이라이트 쳤던것처럼 속재료의 점수가 8점 이상인지를 판별하는 것이다.
속재료의 점수 증가의 경우 각 버튼에 매핑되어 있다.
저런식으로 "돼지고기"를 고르면 속재료 점수가 1점씩 올라가고,
반대로 "옹스짱"같은 개도 거를 재료를 고르면 속재료 점수가 1점씩 내려간다.
초기 점수가 1점이기 때문에, 올바른 재료 7개를 때려박으면 점수가 8점이 되고, 게임을 클리어 할 수 있다.
점수 1점이 올라가는 재료 목록
돼지고기, 두부, 양파, 양배추, 참기름, 마늘, 대파
점수 1점이 내려가는 재료 목록
계란, 에이스, 매운고추, 치즈, 고추장, 마요네즈, 옹스짱
보면 알겠지만 점수 1점이 올라가는 재료가 총 7개기때문에
모든 재료를 정확히 다 때려박고, 다른 재료를 정확히 넣지 않아야 게임을 클리어 할수 있다.
그렇다면 흔히 말하는 "버그 공략법"은 왜 나온것일까?
다시한번 버튼 알고리즘을 살펴보자.
소스코드를 잘 읽어보면, 한번 클릭해 선택을 했을시 속재료 점수가 올라가지만
두번 클릭해 선택을 취소하면 속재료 점수가 내려가는 로직을 짜지 않았다.
즉, 다시말해 점수 올라가는 알고리즘은 있는데 점수 내려가는 알고리즘은 없기때문에
하나의 재료를 계속 클릭해 점수를 올려놓으면 아무리 이상한 재료를 골라도 클리어가 가능하다.
이러한 취약점을 보안업계에선 Business Logic Vulnerability 라고 하는데, 궁금한 중붕이들은 알아서 검색을 해보자.
(폰트가 깨지는건 디컴파일 시 원본 폰트를 소실해서 그럼)
실제로 돼지고기를 넣다뺏다 하고 아무 재료나 넣고 제대로 굽기만 했더니 아저씨가 좋아하는걸 볼 수 있다.
오늘은 이렇게 분석을 통해 고향만두 아저씨를 어떤 방법이든 웃게하는 방법을 알게 되었다.
덕분에 경쟁사 만두집도 빵집으로 바뀐 모습이다.
다음에 또 분석할 일이 있을지 모르겠지만 재밌는 플래시게임이 있으면 중붕이와 함께 분석해보는 시간을 가져보도록 하자.
병신
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.