Flag={C0MPU73R}

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

사이버 가디언즈

(리버싱) 밤랩 bomb - phase_3

땡관 2018. 8. 26. 23:50

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

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



방금 phase_5를 풀어서 기분이 좋기 때문에 Root권한으로 실행해준다 OvO


이번엔 숫자 2개란다


항상 그랬듯이 아무거나 입력해주고 터진다 (1, 2)


gdb로 분석해보자



어우 너무 길어서 내 작은 화면에 다 안나온다 ㅜㅜㅜ


<+38>부분에서 인자의 갯수를 확인합니다


맨 처음에 이번에는 인자가 2개라고 했기 때문에 1개 이하면 폭탄이 터집니다


일단 +48과 +49를 보면 첫번째 인자를 7과 비교해서 7보다 크면 폭탄이 터지는 것 같다


여기서 첫번째 인자가 나왔다 (인자1 =< 7)



이 부분을 보면 첫번째 인자를 eax에 넣고


그걸 어찌저찌 해서 저 여러개 중 한 곳으로 점프한다


# 난 [rax*8+0x402420] 요거 뭔지 모르겠다 값에 8을 곱하는건지 뭔지...


첫번째 인자의 값이 1~7 총 7개인 이유가 여기서 점프되는 곳의 갯수가 7개이기 때문인 것 같다


아마..


점프되고 나면 어떤 값을 eax에 넣고 비교문으로 점프되서 


eax와 두번째 인자가 비교된다


난 첫번째 인자로 1을 넣었기 때문에 어디로 가는지 봐야겠다



어디로 점프되는지 결정하는 곳 까지 왔다


나는 첫번째 인자로 1을 넣었더니 +64로 점프 된단다


여기선 eax에 0x35c가 들어가서 두번째 인자와 비교된다



0x35c를 10진수로 바꿔보면 860이다 


첫번째에 1을 넣으면 두번째 인자는 860인지 비교되는 것 같다


다시 실행해서 넣어본다



짜자아안 phase_3 클리어~


난 첨에 그냥 두번째 인자를 0x35c(860)과 비교한다고 하면 860을 넣으면 되는데


0x35c가 뭔데 비교하는거지?? 하면서 뻘짓을 했다 ㅜㅜㅜ


근데 친구가 10진수로 바꿔서 넣었더니 됬다고해서 그제야 알았다..


고마워요 현짱!


# 현재 phase_5까지 풀었다

# phase_4와 phase_5는 도움없이 태어나서 처음 혼자 푼거다 ㅜㅜ

# 하나 풀고 정리하고 해야하는데 계속 밀린다