Wargame/CodeEngn

[CodeEngn] Basic RCE L03

핏디 2021. 7. 22. 02:20
SMALL

[문제]

03.exe
0.01MB


[풀이]

 

 

 

문제 파일을 실행하니 해독할 수 없는 문자열이 나왔고, 구글링하니 독일어라고 한다..!

 

 

 

key 를 입력하는 창이 실행되었고, 아무 문자나 입력해보았다.

문자열 검증에 실패할 경우 error가 출력되었다.

 

이에 ollydbg를 통해 디버깅을 해보았다.

어셈블리를 확인하니 입력한 문자열을 비교해서 password가 맞고 틀림을 나타내주는 것 같았다.

 

 

비교의 성공 여부를 나타내는 문자열 앞에 unicode로 2G83G35Hs2를 push 한 후에 varStrCmp 함수를 호출하는 것을 보아 해당 문자열과 입력값을 비교함을 알 수 있다.

 

따라서 key 값으로 2G83G35Hs2을 입력해보면, 

 

성공 메시지를 획득할 수 있다.

 

그런데, 문제는 스트링 비교 함수를 묻고 있으므로 정답은 varStrCmp가 된다.


[핵심]

동적 링크 라이브러리(Dynamic Link Library) 파일, 줄여서 DLL 파일이라고 하는 파일은 여러 가지 윈도우 프로그램에서 많이 사용되는 파일의 형태이다. DLL 파일들을 통해 프로그램에 부가적인 기능이나 함수 등을 처음부터 새로 작성하지 않고 추가시켜 줄 수 있다. 많은 경우, DLL 파일은 여러 가지 프로그램에서 공유된다. DLL 파일은 프로그램을 지원하는 역할을 하기 때문에 대다수의 사용자는 열어 볼 일이 없다. 하지만 가끔 특정 DLL을 등록해야 정상적으로 작동하는 프로그램들이 있기 때문에 DLL에 대해 조금은 알아 두는 것도 좋다. 그리고 프로그래밍에 관심이 있다면, DLL이 어떻게 구성되어 있는지 살펴 보는 것도 흥미로운 일이기도 하다.

 

DLL 파일이 무엇인지 이해한다. DLL(dynamic link library, 동적 링크 라이브러리)은 함수들을 모아 놓은 라이브러리 파일로 많은 프로그램들이 DLL 파일들 안에 있는 함수들을 호출한다. 그렇기 때문에 많은 프로그램들이 수많은 기능을 프로그램에 포함시키지 않고도 사용할 수 있게 된다.

  • DLL 파일은 윈도우 프로그램에서 중요하며, 좀 더 깔끔하고 효율적인 프로그램을 작성하는데 도움이 된다.

DLL 파일은 프로그램의 실행을 지원하는 역할을 하며, 프로그램이 설치될 때 DLL 파일도 같이 설치된다. 따라서 DLL 파일을 함부로 이동시키면 프로그램이 정상적으로 작동하지 않을 수 있다.


[출처]

 

 

LIST

'Wargame > CodeEngn' 카테고리의 다른 글

[CodeEngn] Basic RCE L09  (0) 2021.08.11
[CodeEngn] Basic RCE L08  (0) 2021.08.04
[CodeEngn] Basic RCE L07  (0) 2021.07.30
[CodeEngn] Basic RCE L05  (0) 2021.07.29
[CodeEngn] Basic RCE L04  (0) 2021.07.22