Level 05에 이어서 06도 풀어봅시당.
문제를 보니 Unpack를 해서 OEP주소와 Serial 값을 알아내면 되는 문제입니다.
한번 실행해 봐야 되겠죠?
위와 같이 잘못 된 Serial 값을 넣으면 "Wrong serial!!!"이라는 메시지가 출력됩니다.
문제에서 Unpack을 하라고 했으니, 어떤 압축이 되어 있는지 PEiD로 확인해 봤습니다.
역시나 UPX로 실행 압축 되어 있음을 확인 했습니다.
UPX 압축해제 하는 방법은 Level 05과정을 참고(아래링크) 하시면 됩니다.
2018/04/10 - [Study :)/WarGame] - [CodEngn]Basic RCE_Level 05 문제풀이
압축 해제 후, 보여지는 처음 주소가 OEP 주소가 됩니다.
이제 Serial값만 찾으면 됩니다.
코드 창에 마우스 우클릭 하여 위와 같이 "All referenced text strings"를 눌러 줍니다.
그러면 위와 같이 해당 프로그램의 String 값들만 모아서 보여주게 됩니다.
처음 실행 시 나타난 "Wrong serial!!!"이라는 메시지 값도 보여지네요.
여기서 우리가 원하는 메시지는 "Good Job!"인 것 같습니다.
그리고 바로 윗 부분에 Serial 값으로 보여지는 문자열이 존재하는 데요.
해당 부분을 더블클릭하여 해당 주소로 이동합니다.
위에 보여지는 부분이 Serial값을 비교하고 맞으면 "Good Job!"메시지를, 틀리면 "Wrong serial!!!" 메시지를 출력하는 함수 입니다.
Serial 값이 평문으로 대놓고 보여져서 한번 프로그램에 넣고 실행해 보니...
너무나 쉽게 문제가 풀립니다.