main 보면 윈도우 창을 만들고 여러 rule을 넣는다.
앞에서 "qN7BuRx4rElDv84dgNaaNBanZf0HSHFjqOvbkFfgTRg3r" 라는 임의의 Flag 값을 넣어두고 이 부분에서 리듬게임 입력값에 따라 연산을 진행한다.
이 부분을 보면 특정 연산이 v16와 같을 경우 반복문을 도는데 이 코드의 의미는 리듬게임 1칸(4줄) 이 내려오게 해주는 부분이다.
또한 밑 부분에서 누른 타이밍에 따라 perfect, great, miss 로 나뉜다.
처음엔 코드 제데로 안보고 perfect만 나오게 코드수정하고 점수 채워봤으나 역시 안됐다..
또한 버튼을 누를 때 마다 플래그가 바뀌는 장면을 볼 수 있는데, 사실 Flag에 영향을 미치는 요소는 딱 2가지다.
perfect(타이밍), ball의 순서
즉 해당 리듬게임을 무조곤 perfect로만 ball이 내려오는 순서대로 버튼을 눌러 만점을 획득하면 정상적인 FLAG가 나올 것이다.
메인 밑부분에 보면 usleep 함수가 ball이 내려오는 시간을 set하고 있는데 이부분에서 굉장히 갈등을 하였다.
일단 usleep을 느리게 조정하고 게임을 시작해봤으나 답답함과 지루함을 이겨내지 못하는 바람에..(사실 시간 늦췄는데도 타이밍을 못맞춤)
플래그 연산 루틴을 구현하고 리듬게임 칸을 dump 뜬 후에 타이밍 맞춰주는 식으로 코딩해서 풀었다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | ball = ['u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', # djngJMax line 19 padding 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', '4"@', 'u"@', '1"@', 'u"@', '3"@', 'u"@', '1"@', 'u"@', '2"@', 'u"@', '1"@', 'u"@', '1"@', 'u"@', '1"@', 'u"@', '2"@', 'u"@', '1"@', 'u"@', '3"@', 'u"@', '1"@', '4"@', '1"@', '3"@', '1"@', '2"@', '1"@', '2"@', '1"@', '3"@', '1"@', '4"@', '3"@', '2"@', '1"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', '1"@', 'u"@', '4"@', '3"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', '3"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', '1"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', '1"@', '2"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', '4"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', '3"@', '3"@', '1"@', 'u"@', 'u"@', 'u"@', '4"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', '2"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', '1"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', '4"@', '2"@', 'u"@', 'u"@', '3"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', '4"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', '4"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', '3"@', '1"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', '4"@', 'u"@', '4"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', '4"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', '3"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', '3"@', '4"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', '4"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', 'u"@', 'u"@', 'u"@', 'u"@', '1"@', '2"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', '3"@', 'u"@', 'u"@', 'u"@', 'u"@', '4"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@', 'u"@'] ''' 1 : d 2 : f 3 : j 4 : k ''' flag = bytearray('qN7BuRx4rElDv84dgNaaNBanZf0HSHFjqOvbkFfgTRg3r') dword_60756C = 0x40 byte_607588 = 0 byte_607568 = 0 byte_6075A0 = [] s = bytearray('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_!') for i in range(len(s)): byte_6075A0.append(i) def sub_401C50(a1): for i in range(dword_60756C): if a1 == s[i]: return i return 0xFFFFFFFF def sub_401C9A(a1): global byte_607588 global byte_607568 v3 = 0 for i in range(a1): byte_607588 = (byte_607588 + 1) % dword_60756C byte_607568 = (byte_607568 + byte_6075A0[byte_607588]) % dword_60756C v1 = byte_6075A0[byte_607588] byte_6075A0[byte_607588] = byte_6075A0[byte_607568] byte_6075A0[byte_607568] = v1 v3 = byte_6075A0[(byte_6075A0[byte_607588] + byte_6075A0[byte_607568]) % dword_60756C] return s[v3] def sub_401DB8(a1, a2): v2 = sub_401C50(a1) return s[sub_401C50(a2) ^ v2 % dword_60756C] def sub_400C5E(): v4 = len(flag) for i in range(v4): v1 = sub_401C9A(1) flag[i] = sub_401DB8(flag[i], v1) def main(): idx = 0 for i in range(42260): # 1 ball is 0x30c if i == 20 * ((0xCCCCCCCCCCCCCCCD * i >> 64) >> 4): if ball[idx][0] == '2': sub_401C9A(102 * i) #f sub_400C5E() print flag elif ball[idx][0] == '3': sub_401C9A(106 * i) #j sub_400C5E() print flag elif ball[idx][0] == '4': sub_401C9A(107 * i) #k sub_400C5E() print flag elif ball[idx][0] == '1': sub_401C9A(100 * i) #d sub_400C5E() print flag idx += 1 if __name__ == "__main__": main() #I_w0u1d_l1k3_70_d3v3l0p_GUI_v3rs10n_n3x7_t1m3 | cs |
'CTF' 카테고리의 다른 글
YISF 2018 예선 Write up (1) | 2018.08.16 |
---|---|
[ISITDTU CTF 2018] write up (0) | 2018.07.29 |
[RCTF 2018] cpushop (2) | 2018.05.22 |
[RCTF 2018] simple vm (4) | 2018.05.21 |
[ASIS CTF 2018] Density (0) | 2018.05.18 |