CodeEngn

CodeEngn.com Basic RCE L06

レ(゚∀゚;)ヘ=З=З=З 2023. 12. 21. 14:05
728x90

1) Unpack 후 Serial 값 구하는 문제

2) 06.exe을 실행시켜서 임의의 값인 abc를 입력했더니 에러 창

3) PEiD로 정보 확인 시 UPX로 패킹 되어있는 것 확인

4) upx.exe로 언패킹 진행

5) 올리디버거로 실행 - 00401360에서 시작하는 것 확인 - OEP : 00401360

6) 문자열 확인 - 성공했을 때 나오는 듯한 Good Job! 문자열 확인 - 해당 위치로 이동
7) 이동 후 재실행된 06.exe에 abc 입력

8) 00401069에 ASCII abc 생성 - PUSH를 통해 해당 stack에 abc 저장
9) 0040106E에 있는 AD46FS547도 해당 stack에 저장
10) 00401290 CALL을 통해 호출

11) ESP+4(사용자 입력 값) 와 ESP+8(참) 비교하기 위해 각각 EDX, ECX 저장
12) 비교 위해 한 글자씩 검사 - 그 과정에서 CMP와 OR 사용
13) abc와 AD46DFS547 비교 - 이 과정에서 serial 값이 AD46DFS547 라는 것을 알 수 있음

14) 06.exe에 해당 값을 넣어주니 You got it 출력

15) 정답 인증 : OEP + Serial = 00401360AD46DFS547

더보기

※ Back to user Mode

: 특정 이벤트를 일어나기 전에 설정해두고 Call 명령이 일어난 바로 다음 위치를 잡을 수 있음

1) 프로그램을 올리디버거로 실행
2)
F9로 실행시킴
3)
F12로 프로그램을 일시정지 상태로 만듦
4)
Alt + F9
5)
성공하였다면 상태창에 Back To User라고 나옴
6)
프로그램으로 돌아가서 메시지 박스의 확인 버튼을 누르면 올리디버거에서 해당되는 위치를 자동으로 잡아줌

 

'CodeEngn' 카테고리의 다른 글

CodeEngn.com Basic RCE L09  (0) 2023.12.22
CodeEngn.com Basic RCE L08  (0) 2023.12.22
CodeEngn.com Basic RCE L05  (0) 2023.12.21
CodeEngn.com Basic RCE L04  (0) 2023.12.21
CodeEngn.com Basic RCE L02  (0) 2023.12.21