reversing(18)
-
HACKCTF - Strncmp
해당 문제를 ida로 까보면 변수가 굉장히 많은것을보아 xor연산을 할 것으로 보인다. 자세히 보면 65번 줄의 strcmp_ 가 우리가 아는 strcmp가 아니라 _ 가 붙은 재정의한 함수임으로 확인이 필요하다. 8~9번째줄은 무슨의미인지 모르겠고, key랑 xor하는 것을 보니 key를 찾아야겠다. 보면 public이므로, 어디에선가 쓰이는데 마침 함수명쪽에 check라는 의심되는 함수가 있어서 이를 확인해보았다. 여기를 보면 v3에 대한 이차방정식이 있는데 7을 넣으면 참이되니 key를 7로 알 수 있다. string을 구했고, xor할 key를 모두 구했으니 복호화만 하면 된다. 코드는 아래와 같다. 1 2 3 4 5 6 7 arr = [0x4f, 0x66, 0x64, 0x6c, 0x44, 0x5..
2020.08.27 -
DreamHack - rev-basic-8
보호되어 있는 글입니다.
2020.08.17 -
DreamHack - rev-basic-1
보호되어 있는 글입니다.
2020.07.27 -
HACKCTF - Keygen
리버싱 문제인데 nc를 주는 문제네요 일단 실행시켜보면 보면 키를 입력하고 이 키가 올바른키면 flag를 뿌려주는 구조인 것 같습니다. 역시 14번째줄에서 flag를 읽어주는 함수가 있고, 이 부분에 들어갈 수 있도록 하면 되기에 12번째의 분기문을 맞춰주면 될 것 같습니다. check_key 함수를 들어가보면 이렇게 "OO]oUU2U
2020.07.25 -
HACKCTF - Reversing Me
전형적인 리버싱 문제같네요 serial 문자열이 1, 0 하고만 XOR 을 하기 때문에 A ^ B = C B ^ C = A C ^ A = B 이라는 XOR의 특징을 이용해서 코드를 작성해보면 1 2 3 4 5 6 a = "H`cjCUFzhdy^stcbers^D1_x0t_jn1w^r2vdrre^3o9hndes1o9>}" flag = "" for i in range(0, len(a)) : flag += chr(ord(a[i])^(i%2)) print(flag) Colored by Color Scripter cs 라고 작성할 수 있고. 실행시켜보면 FLAG를 확인할 수 있다.
2020.07.24 -
HACKCTF - Welcome_REV
해당 파일을 받아서 파일에 대해서 알아보면 32비트 파일인것을 확인합니다. 이를 실행시켜보면 실행하면 password!를 제공해달라고합니다. 인자로 값을 넣어주면 맞는지 아닌지 확인 후에 결과를 알려주는군요. 이를 ida로 분석해보면 8번쨰 줄에 check_password라는 함수가 있습니다. 이를 따라 들어가보면 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..
2020.07.11