r40 vs r41
......
152152
153153타이머 종료 3시간 30분 전, 디스코드 공지는 "EPC 2025 및 EPC : Finale의 스토리에 대한 어느 정도의 이해도를 전제로 구성되어 있습니다."라고 말했다.
154154
155그리고 오후 8시, 퍼즐이 시작되었다.
155그리고 오후 8시, 퍼즐이 시작되었다. 현재 16시간 째 해결 중이다.
156156{{{#!folding [#SPECIAL 풀이 보기]
157157----
158158{{{#!folding [Phase 1 : Beta]
......
242242역시나 다운로드하고, 압축을 풀고 확장자를 ".png"로 바꾸면, 열쇠 이미지의 일부가 드러난다.
243243}}}
244244{{{#!folding [Phase 3 : Finale]
245{{{#!wiki style="margin: 0 auto; padding: 5px 10px; max-width: 300px; text-align: center; border-radius: 8px; background: linear-gradient(120deg, #dd0, #ff0); color: #000"
246'''{{{+1 경고}}}'''[br]이 해설은 내용이 매우 복잡합니다.}}}
247> 열쇠 데이터가 저희에게 오는 동시에, 이번에도 저희는 열람이 불가능한 데이터가 같이 전송됐어요. 확인 부탁드립니다.
248>
249> 열쇠 데이터 수집도 벌써 막바지네요, 이번에도 힘내주세요..!
250{{{"stdout"}}} 채널에 위와 같은 메세지와 함께 "finale.zip"이 전송된다.
251이 파일은 총 6중보안이 되어있다. 즉, {{{#!wiki style="display: inline; text-shadow: 0 0 6px #f00; color:#f00"
252'''{{{-1 암호를 6개}}}'''}}} 풀어야 한다.
253
254
255> * finale.zip 안에 파일명 "PASSWORD_epica"가 있다.
256> * 즉, 첫 번째 암호의 정답은 '''"epica"'''. 이 암호를 이용하여 압축을 푼다.
257> * {{{PASSWORD_epica/ level.adofai.sha256/ str/ title^str.zip}}}의 4개 파일이 들어있다.
258
259> * 두 번째 암호는 title^str.zip를 압축 풀기 하는데 사용한다.
260> * str 파일을 확인해보면, 다음과 같은 13바이트 데이터가 있다.
261> * {{{1711171b3d0617000a02191101}}}
262> * 'level.adofai.sha256'와 맞는 adofai 파일의 노래 제목 "STATiCSHOCKER"와 1바이트 씩 XOR 연산한다.
263> * 1711171b3d0617000a02191101 (str) XOR
264> * STATiCSHOCKER (ASCII)
265> * = "DEVOTEDHEARTS"
266> * 즉, 두 번째 암호의 정답은 '''"DEVOTEDHEARTS"'''. 이 암호를 이용하여 압축을 푼다.
267> * {{{fireworks.png}}}의 1개 파일이 들어있다.
268
269> * 세 번째 암호는 압축 풀기할 zip 파일을 찾는 것부터 시작한다.
270> * fireworks.png에 데이터를 살펴보면, png 파일 뒤에 별도 zip 아카이브가 그대로 이어붙어 있다.
271> * 따라서 확장자를 .zip으로 바꾸면 id_rsa.pub/ message.txt/ r.zip 3개 파일이 보인다.
272> * 세 파일 모두 암호화 되었다고 표시되어있디만, 사실은 순수 deflate 압축 데이터일 뿐, 암호화에 대해서는 가짜 플래그이다.
273> * 따라서 헥스 에디터에서 직접 암호화 플래그를 수정하고, 압축을 푼다.
274> * 이제 세 번째 암호를 찾는다. 입력은 r.zip에 한다.
275> * id_rsa.pub를 분석해보면, RSA-1024 공개키가 있다.
276> * 개인키는 [[https://plutos.dazzle.st/home/pluto/.ssh/id_rsa]]에 노출되어 있다. 공개키와 개인키의 모듈러스가 정확히 일치하므로 옳은 개인키이다.
277> * message.txt를 분석해보면, 128 바이트 RSA 암호문이 있다.
278> * 위에서 얻은 개인키를 이용해 RSA-OAEP 패딩으로 복호화한다.
279> * 얻은 텍스트를 평문화하면,
280> * "hello! i hope no one can read this... it's encrypted after all!! cr4zy_prot3ct10n"[* 안녕하세요! 아무도 이걸 읽지 못했으면 좋겠어요… 어쨌든 암호화돼 있으니까요!! cr4zy_prot3ct10n]
281> * 즉, 세 번째 암호의 정답은 '''"cr4zy_prot3ct10n"'''. 이 암호를 이용하여 압축을 푼다.
282
283
284
245285}}}
246286{{{#!folding [Level 3 : DEVOTION]
247287페이즈 1, 2과 같이 코드 "EPC_FINALE_RESPITE"를 입력하면 세 번째 레벨을 플레이할 수 있다.
......