DEPCAMP r100

2018. 4. 2. 05:160x07 CTF/[라이트업 보고 푼 것]

728x90

Angr 공부용으로 풀어보았다.


바이너리  :  r100.bin


메인함수이다.

패스워드를 입력하고 옳고 그름을 판단하는 전형적인 문제다.




심플해보이지만, 계산하기 귀찮게 되어 있는 연산이다.


이 연산을 한방에 해결하는 녀석이 angr라고 한다. 

진심으로 오늘 처음 사용하고 충격받았다.

import angr


def main():

p = angr.Project("r100", load_options={'auto_load_libs': False}) // 실행시킬 바이너리 명 

# 내가 찾는 주소가 0x400844 (Nice!)

# 피하려는 주소가 0x400855 (Incorrect Password!)

ex = p.surveyors.Explorer(find=(0x400844, ), avoid=(0x400855,))

ex.run() // 실행

return ex.found[0].state.posix.dumps(0).strip('\0\n')



if __name__ == '__main__':

print main()



몇 초 뒤에 정답이 딴.. ㅠㅠ 진심 충격이다. 

'0x07 CTF > [라이트업 보고 푼 것]' 카테고리의 다른 글

NOX CTF att3nti0n[REV]  (2) 2018.09.09
ISITDTU CTF PWNABLE XOXOPWN  (0) 2018.07.30
defcon2015 r0pbaby writeup  (0) 2018.04.08
defcon2015 r0pbaby 풀고 알게 된 것들  (0) 2018.04.08