전체 글 39

CCE Jr 1st

CCE 주니어 1등했다.모의 고사도 2 1 1 떠서 기분 좋은데 공짜 125만원 들어와서 기분이 매우 좋다.웃기게도 내가 푼 문제는 한 문제이다. 3솔브인데 우리 팀, The Duckling, The Gosling 이렇게 세 팀이 풀었다. 원시 다항식이 x^8+x^4+x^3+x^2+1인 GF(2^8) 체 내에서 연립 방정식을 구성해서 풀이하였다. 원시 다항식은 어짜피 바이트가 GF(2^8)이고 따라서 원시 다항식의 최고차항이 8차 이하라고 가정하여 512가지의 경우의 수를 브루트 포싱을 돌려서 얻어냈다. Sage에서 연립방정식은 solve_right로 풀 수 있다.amo님의 도움을 적잖게 받았다. 솔브 코드는 여기 있다. 1번 문제도 쉬웠다. 취약한 n에 대해 인수분해를 시도하면 되는데 문제는 내가 사용..

BOJ Diamond V

오늘 (2024년 6월 10일) 백준 다이아 5를 찍었다! 2022년 4월에 플레티넘 5로 승급하고 2년 2개월만에 승급에 성공하였다!!  정말 기쁘다!. 뇌가 확장된 것 같고 알고리즘 고수가 된 것 같아 기쁘다. HOW??? 두 가지 요인으로 승급에 성공했다고 할 수 있다. 첫 번째로 CLASS 8을 밀었고, 말 그대로 뇌의 확장이 있었다는 것도 한 몫 했다. 특히 고등학교 2학년이 되면서 플레 5까지밖에 풀지 못했던 것이 갑자기 플레 1 이하의 문제가 스르륵 다 풀려서 CLASS 8를 미는데 도움이 되었던 것 같다. 그리고 여러 어려운 알고리즘들 (HLD, FFT, Z, 블록껍질)을 배우면서 알 수 있었던 것 같다! CLASS 8은 18 자력 2 도움 (사실 도움이 아니라 개념을 배우고 응용하는 것에..

Dreamhack Invitationals 후기

어제 (2024년 5월 27일) Dreamhack Invitational에서 대회를 치루었고, 생각했던 것보다 낮은 순위를 기록했다..  19위에 랭크되었고, 대회 15문제 중 1문제밖에 풀지 못했다. 리버싱만 다 풀자는 마인드로 참여했는데 그게 잘 안 되었다.. ㅠㅠ 무엇이 문제였는가? 우선 1번 문제는 큰 문제는 아니였다. 1번 문제를 순삭하고 좋은 시작을 알렸다. solve.py# Use 'IDA Decompiled results' to parse the instructions# use sweeping to parse stringsdef parse1(s: str): instructions = s.split('\n') m = [] elasped = 0 for inst in ins..

2024.05.21

많은 시간이 지났다! 사실 그렇게 물리적으로 긴 시간은 아니지만 근 2개월간 한 게 좀 많아서 길게 느껴지는 것 같다. 때로는 지금까지 이룬 것들을 회상하면서 앞으로 어떻게 나아갈지 정하는 것이 중요한 것 같아서 여기에 글을 남긴다. Algorithms알고리즘 문제를 최근 들어 많이 풀었다. 아마도 해킹에 대해서 열정이 떨어지니 자연스럽게 PS쪽으로 눈이 가게 된 것 같다.알고리즘은 이 글을 기점으로 뭘 더 하지도 않았고 뭘 더 하고 싶지 않았는데, 디미고 1학년 신입생들이 다이아들이 우루루 들어와서 긴장감을 조성하길래 백준과 코드포스를 좀 하게 되었다. 결과는 Platinum V -> Platinum II 로 티어가 상승했고,Codeforces 1400 -> 1552 로 레이팅이 상승했다.   이제 블..

~Nothing~ 2024.05.21

드림핵 리버싱 랭킹 1등 소감 + 느낀 점

서론 드림핵 리버싱 워게임 랭킹 1등을 찍었다. 우선 자랑스럽다. 처음 리버싱 시작할 때는 랭킹 10위조차 정말 큰 벽으로 느껴졌는데, 조금조금씩 풀다 보니까 리더보드에 접근할 수 있게 되었고, 약 1년동안 집권하시던 G0RiyA 님을 제치고 2023년 3월 26일, 1위를 탈환하였다. 정말 긴 여정이였던 것 같다. 해킹을 제대로 시작한 건 10개월 전, 알고리즘 문제를 풀다가 다이아에서 벽을 느껴 '이거라도 해 보자'라며 시작한 해킹이였는데, 막상 하다 보니까 재밌어졌다. 이게 서론인가? 할 수 있겠지만 이제 시작할 얘기는 이것과는 사뭇 다른, 그리 밝은 이야기는 아니다. 본론 우선 처음 1등을 찍었을 때 가장 먼저 든 감정은 후련함, 자랑스러움 등이 있었지만 곧 이내 그런 감정보다는 허무감이 왔다. ..

~Nothing~ 2024.03.29

osu!gaming CTF 2024 Reversing Write-Up

66등 하였다. 서론 원래 osu! 라는 게임을 즐겨하는 사람으로서 이 CTF는 굉장히 흥미로웠다. CTF 문제에 osu라는 새로운 항목이 추가되면서 CTF의 Fresh함을 챙겼다고 볼 수 있다. osu!와 CTF 모두 좋아하는 사람으로서 이 콤비네이션은 열심히 안 할 수 없다. 그 결과로 리버싱을 올킬했다. 이 글에서는 리버싱 문제에 관련해 Write-Up을 작성할 예정이다 SAT-before-osu 언제부터 이딴 게 리버싱이였는지 모르겠다. 주어진 dist.txt 안의 식을 풀면 된다. z3를 이용하거나 Sage를 이용하여 간단히 해결할 수 있다. wysi-baby Wysi 밈을 토대로 만든 웹사이트가 주어진다. 소스를 살펴보면 다음과 같은 Javascript 코드가 보인다. combos에 들어가는 ..

LACTF 2024 - Write-Up

오랜만에 글을 올린다. 그 이유는 해킹 공부 이외 공부를 수행하느라, 글을 쓸 여유가 없었던 것이다. 서론 전체 일반부에서 33등을 차지했다. 처음 나가는 외국 CTF이고, 문제 스타일을 알 수 있어서 유용했다. 나갈 생각이 없었지만 친구의 권유로 참가하게 되었다. 리버싱 문제만 풀었는데, 리버싱 문제는 대체로 쉬웠던 것 같다. 하지만 이 문제를 다 풀어도 돌아오는 혜택이 없다는 것을 인지한 터라 열심히 참가를 하지 않아서, 결국 올킬을 못하고 2개의 문제를 남겼다. aplet321 연립방정식을 풀어서 please의 개수, pretty의 개수를 맞춰 조건에 맞게 보내면 된다. 익스 코드 안 짰다. lactf{next_year_i'll_make_aplet456_hqp3c1a7bip5bmnc} the-sec..