해당 바이너리는 헥스레이가 안되서 직접 어셈블리 디버깅하면서 동적분석을 했다.

 

쭉쭉 디버깅하다보면 일단 환경변수로 team_name이라는 변수에 bi0s값이 세팅되어 있어야되고 이 값을 통해 특정로직을 거쳐 0xc라는 값을 만든다. 그 다음 입력값에 대해 홀수,짝수번째 나눠서 간단한 연산을 할 때 위에서 구한 값을 사용한다.

 

대충 아래와 같이 스크립트 짜서 돌려주면 플래그가 나온다.

 

result = "?5b9no=k!5<jW;h7W~b4#|"
a = ""
for i in range(len(result)-1,-1,-1):
if i%2==1:
a += chr((ord(result[i])^0xc)-4)
else:
a += chr((ord(result[i]) ^ 0xc) + 4)
print "Find Flag = " + a
Find Flag = l34rn_7h3_b451c5_f1r57

 

 

'CTF > Writeup' 카테고리의 다른 글

SCTF 2018 dingJMax  (0) 2018.10.30
SECCON 2018 Quals GhostKingdom  (0) 2018.10.29
BSides Delhi CTF 2018 avap  (0) 2018.10.29
BSides Delhi CTF 2018 auth3ntication  (0) 2018.10.29
BSides Delhi CTF 2018 Old School SQL  (0) 2018.10.29
블로그 이미지

JeonYoungSin

메모 기록용 공간

,