본문 바로가기

CodeEngn Basic RCE L04 문제 풀이 코드엔진 RCE L04 시작하겠습니다. 문제를 보시면 오늘 분석할 프로그램은 디버거 프로그램을 탐지한다고 합니다. 그럼 이 디버거를 탐지하는 함수가 무엇일까요?? 이 함수는 안티디버깅중에 한 방법으로써 리버싱을 계속 하면 잘 알고계셔야 하는 함수입니다. 코드엔진은 그것을 알고서 이번 문제는 안티디버깅 기술에 대한 리버싱실력을 키워주기 위해서 이 문제를 낸 것 같네요. 출처 - MSDN 디버거 프로그램을 탐지하는 함수의 이름은 맨 위에 있는 IsDebuggerPresent 라고 합니다. 뜻을 쭉 해석해보시면 api상태에서 IsDebuggerPresent(void)를 쓰면 프로그램 중간에 디버거를 탐지할수 있다고 합니다. 또한 리턴값으로는 디버거가 작동중이면 0이 아닌값(컴파일러마다 달라요), 디버거가 작동.. 더보기
CodeEngn Basic RCE L03 문제 풀이 코드엔진 Basic RCE L03 시작하겠습니다. 문제를 보면 비주얼베이직에서 스트링 비교함수의 이름을 물어보고 있습니다. 저는 비주얼베이직을 못하므로 다른 사람들의 블로그에서 스트링 비교함수의 이름을 찾아봤습니다. 바로 함수명 ㅁ 라고 합니다. 그럼 문제 끝!!!!.. 입니다만 언제나 말하듯이 문제 푸는것이 다가 아니라 리버싱 실력을 늘리기 위해서 프로그램을 분석해 보겠습니다. 프로그램을 실행해보면 이 두 창이 차례대로 나오는데요 맨 처음메시지의 이름이 Nag라고 되있는 걸로 봐서는 Nag(귀찮게하는)메시지입니다. 두번째 메시지창에는 입력창이 뜨는데요 그냥 아무것이나 집어넣으면 라면서 패스워드가 틀렸다고 합니다. 문제에서 나오는 비주얼베이직에서 스트링비교함수를 물어보는 이유가 바로 여기서 내가 입력한 .. 더보기
CodeEngn Basic RCE L02 문제 풀이 저번 문제였던 L01을 끝내고 이번에는 L02로 넘어가겠습니다. 다음 문제를 푸는 방법은 Continue 부분에 저번 문제의 답을 쓰시면 자동으로 L02의 문제가 나옵니다. 이렇게 L02의 문제가 있는데요 문제를 보니까 실행파일이 손상되어서 실행이 안된다고 합니다. 실제로 눌러서 실행을 시키면 이런 메시지창이 뜨면서 프로그램이 꺼지는데요, 정확히 분석을 할 수는 없어도 16진법으로 된 코드가 나오고, 문제에도 실행파일이 손상되었다고 하는것으로 봐서 OP코드의 f0 00 f0 37 05 부분에 이상이 생겨서 프로그램을 실행시킬수 없다 정도로 생각하시면 될 것 같습니다. 그럼 이것을 올리디버거로 열어볼텐데요 올리디버거로도 에러창이 뜨면서 실행이 안되는 것을 보실수 있습니다. 이 문제는요 리버싱툴중에 하나인 .. 더보기