SMALL

코드엔진 2

[CodeEngn] Basic RCE L04

[문제] [풀이] 프로그램을 실행시키면 정상이라는 문자열이 출력된다. 이외에는 특별한 것이 없으므로 ollydbg를 실행시켜보았다. ollydbg에서 프로그램을 실행해보니(F9) 디버깅 당함이라는 문자열이 출력되는 것을 보아 안티디버깅이 적용되어 있는 것을 알 수 있다. 이에 한 줄씩 코드를 실행(F8)해보며 어떠한 과정을 거칠 때 디버깅 당함이라는 문자열이 출력되는지 확인해보았다. 프로그램을 실행하다보니 GetCommandLineA 라는 함수를 지나니 안티디버깅이 적용됨을 확인할 수 있었다. 이에 해당 함수 내부를 보기 위해 SetIn 과정을 수행하였다. GetCommandLineA 함수 내부에서 코드를 실행해보니 CALL 04. 0040100F 호출 후 안티디버깅이 적용됨을 알 수 있었다. 이에 St..

Wargame/CodeEngn 2021.07.22

[CodeEngn] Basic RCE L03

[문제] [풀이] 문제 파일을 실행하니 해독할 수 없는 문자열이 나왔고, 구글링하니 독일어라고 한다..! key 를 입력하는 창이 실행되었고, 아무 문자나 입력해보았다. 문자열 검증에 실패할 경우 error가 출력되었다. 이에 ollydbg를 통해 디버깅을 해보았다. 어셈블리를 확인하니 입력한 문자열을 비교해서 password가 맞고 틀림을 나타내주는 것 같았다. 비교의 성공 여부를 나타내는 문자열 앞에 unicode로 2G83G35Hs2를 push 한 후에 varStrCmp 함수를 호출하는 것을 보아 해당 문자열과 입력값을 비교함을 알 수 있다. 따라서 key 값으로 2G83G35Hs2을 입력해보면, 성공 메시지를 획득할 수 있다. 그런데, 문제는 스트링 비교 함수를 묻고 있으므로 정답은 varStrC..

Wargame/CodeEngn 2021.07.22
LIST