Flag={C0MPU73R}

(리버싱) 밤랩 bomb - phase_1 본문

사이버 가디언즈

(리버싱) 밤랩 bomb - phase_1

땡관 2018. 8. 22. 22:22

#bomb 문제는 phase_1 부터 phase_6까지 6개의 문제로 이루어져있다

#1단계부터 6단계까지 모두 맞춰야 폭탄이 해체되는 형식이다



문제를 실행해본다



bomb 파일을 실행하면 문장 두 줄이 뜨고 뭔가를 입력할 수 있게 된다

뭔가를 입력하게 되면



사진과 같이 BOOM!!! 하면서 폭탄이 터진 것 같이 하면서 종료된다


먼저 gdb로 bomb 문제를 연다

그 후 phase_1을 분석한다



phase_1은 문자열을 입력해서 그게 정해진 문자열과 일치하면 

다음으로 넘어가는 문제인 것 같다


explode_bomb이란 함수(?)는 문자열이 틀리면 저 주소로 호출되서 폭탄이 터지는 것 같다


폭탄이 터지기 바로 전에 break를 걸어서 그 부분에서 

내가 입력한 문자열이 어디에 들어가있는지 확인해본다



폭탄 터뜨리는 함수 전에 브레이크 포인트를 걸고



r 로 실행하여 아무 문자열을 입력한다(sung7751)


그 후 context reg로 레지스터를 확인한다



띠용?


내가 찾던 sung7751은 어딨는지 모르겠고 RSI에 뭔가 되게 정답같이 생긴 문자열이 있다

"When a problem comes along, you must zip it!"


bomb 파일을 실행해서 넣어본다



phase_1이 해체되었다


#사실 phase_1 처음 부분의 0x4023b0을 보거나 <strings_not_equal>함수에서 비교하는 

#부분을 봐도 나오지만 이 둘은 너무 짧고 길어서 그냥 이걸로 정리했다


다음은 내가 몰라서 못한 것 같지만 뻘짓을 한 phase_2 문제를 풀어보겠따


오타있으면 지적 부탁드려용

'사이버 가디언즈' 카테고리의 다른 글

(리버싱) 밤랩 bomb - phase_3  (3) 2018.08.26
(리버싱) 밤랩 bomb - phase_2  (0) 2018.08.25
스택과 레지스터 이용  (0) 2018.08.22
리버싱(Reversing) 정보 블로그  (0) 2018.08.22
어셈블리어(Assembly)에 대해  (0) 2018.08.22