CTFlearn의 여든두번째 문제
이번엔 프로그래밍과 관련한 문제이다.
반응형
문제 설명을 읽어보면 이상한 안드로이드 계산기라고 하는데
이상한점을 찾아내라고 한다.
문제를 풀때 안드로이드 기기는 필요없다고 한다.
문제에서 주어지는 것은 WeirdCalculator.apk 파일이다.
apk 파일이 주어지는 jadx 라는 도구를 사용하면 유용하다.
(https://github.com/skylot/jadx)
자바 디컴파일러로
apk 파일을 넣으면 디컴파일해서 java 소스코드를 볼 수 있게 해준다.
jadx 를 실행시킨 후
문제 파일을 열면 이런 화면이 나온다.
왼쪽 메뉴에서 가장먼저
MainActivity 부분을 확인해봤다.
특별한게 없는거 같아서
아래쪽에 Parser 를 눌러보니
AnonymousClass1InternalParser 라는 수상한 클래스가 보였다.
해당 클래스를 선택하고 쭉 내리다보니
딱 봐도 수상한 부분이 보였다.
뭔가 배열에 숫자들이 들어가 있고,
이 숫자들을 1337 과 XOR 한 뒤
그 결과를 로그로 남긴다.
CTF 나 워게임에서 이런 로직이 보이면 거의 플래그이다.
flarry = [1407, 1397, 1400, 1406, 1346, 1400, 1385, 1394, 1382, 1293, 1367, 1368, 1365, 1344, 1354, 1288, 1354, 1382, 1288, 1354, 1382, 1355, 1293, 1357, 1361, 1290, 1355, 1382, 1290, 1368, 1354, 1344, 1382, 1288, 1354, 1367, 1357, 1382, 1288, 1357, 1348]
flag = ''
for i in range(len(flarry)):
flag += chr(flarry[i] ^ 1337)
print(flag)
Python 을 이용해 코드를 그대로 따라써주면 된다.
배열에 있는 값을 그대로 가져오고,
그 값을 1337 과 XOR 한 뒤
flag 변수에 결과를 저장해 출력시켰다.
코드를 실행시키면 플래그가 나온다.
반응형
'워게임 > CTFlearn' 카테고리의 다른 글
[CTFlearn] Is it the Flag? (JAVA) - 프로그래밍 / Python (69) | 2023.04.07 |
---|---|
[CTFlearn] HailCaesar! - 포렌식 / ASCII Cipher (66) | 2023.04.02 |
[CTFlearn] CoppeRSA Lattice - 암호학 / RsaCtfTool (64) | 2023.03.28 |
[CTFlearn] Adoni Assembler Chall - 프로그래밍 (62) | 2023.03.26 |
[CTFlearn] XOR Is Friend Not Food - 암호학 (68) | 2023.03.10 |