2주동안 열렸었던 picoCTF 2018 에 참여한 뒤 write-up을 쓴다. 나는 리버싱분야의 문제를 혼자서 풀었다. Reversing Warmup 1 - Points: 50 - (Solves: 6075) ida로 열면 바로 플래그가 보인다. flag:picoCTF{welc0m3_t0_r3VeRs1nG} Reversing Warmup 2 dGg0dF93NHNfczFtcEwz를 base64로 decode하면 th4t_w4s_s1mpL3 이다. flag:th4t_w4s_s1mpL3 be-quick-or-be-dead-1 2가지 방법으로 풀었는데 1.ida remote debugging을 이용해서 시간을 비교하는 분기문에 break point를 걸고 f9로 한번에 실행하는 방법과 2.table을 분석해서 ..
이번에도 리버싱 1문제만 잡았지만 2%부족한 플래그로 인해서 정답을 인증하지 못했다.그래서 풀이가 공개되기 전에 플래그가 무엇인지만 알아내고 내가 먼저 write-up을 쓴다. 그래도 이번에는 ctf가 끝날즈음에 단 1명밖에 풀지못한 문제여서 시간이 조금만 더 있었다면 나도 풀 수 있었을거라고 생각한다. main함수에 들어가면 이런게 보인다!! 16진수 배열을 내가 입력한 문자열과 xor해서 나온값이 내가입력한 문자열의 다음인덱스가 아니면 v5를 0으로 만들어서 플래그가 아닌 NOPE을 출력하고 맞으면 내가 입력한 그 값이 플래그이다. 1 2 3 4 5 6 7 8 9 10 11 #include int main() { int encoded[30 ] = { 0x43 ,0x5F ,0x30 ,0x2B ,0x1C..
이문제는 내가 순천향대 정보보호 페스티벌에 나가서 몇시간을 투자했지만 풀지 못했었던 문제이다.하지만 오늘 다른 사람의 wrtie up의 한 부분을 보고 내가 연산실수를 해서 풀지 못하였다는 사실이 아쉬워서 이해한 내용들을 바탕으로 write up을 쓴다. 주의사항: 내가 이해한 방식으로 write up을 작성하였으므로 객관적으로 봤을 때 틀린 부분이 있을 수 있음 함수 401970이 이 프로그램의 main 격인 부분이다. 10번동안 가위 바위 보를 실행하면서 입력을 받은 후에 11번째가 되면 아래 함수들을 실행한다. 함수 4013D0을 보면 이전에 입력했던 4045A4의 값이 해당 문자에 해당하지 않으면 ++v4를 하는것을 볼수 있는데 아래쪽에 v4>0이면 exit하는 것을 볼 수 있다. 나는 v4를 0..