Time attack.exe Printing flag 획득
프로그램 구성
WINMM.timeSetEvent 를 사용하여 타이머 설정
입력되는 파라미더 = (1388, 0, 00E11000, 0, 0, ECX(0))
각 파라미터 별 의미
•
1388 = 다음 이벤트가 발생하기까지의 시간 (밀리초)
•
0 = 해상도(정확도)
•
00E11000 = 콜백함수 (타이머 이벤트 발생 시 호출, 여기서는 타임아웃이 출력됨)
•
0 = 콜백함수에 전달될 사용자 지정 데이터 (콜백함수에 추가정보 전달)
•
0 = 이벤트 타입, (0이면 한번만, 1이면 반복)
해당 함수 해석
5초 마다 00E11000 호출해라 (반복은 없으니 1번만 호출됨)
1.
CALL 00E11170
Time attack 1 이랑 “====” 출력해주는 함수
2.
CALL 00E11140
여기서 표시한 부분의 함수를 벗어나지 못해서 Done Creating key로 넘어가지 못함
내부로 들어오면 해당 루프를 탈출하지 못한다
EBP - 4 의 값과 DEADBEEF 가 일치하지 않아서 탈출을 못한다
루프를 돌리면 EBP - 4의 값이 1씩 증가하지만 5초안에 일치되기엔 값의 차이가 너무 크다
루프를 탈출하기 위해 CMP EAX, EAX 진행 EAX 안의 값이 뭐든 탈출은 가능하니 넣어본다
해당 루프를 탈출하면서 플래그 획득,,
flag 확인
•
flag : KISEC{Y0u_arE_s0_Fast}