코드엔진 베이직 3번 문제 : 비주얼 베이직에서의 스트링 비교 함수 구하기 일단 그냥 실행시켜보면, 이런 창이 뜹니다. 대충 아무거나 치고 왼쪽 버튼을 누르면, 틀렸다고 에러가 뜨네요. 이 과정을 통해 RegCode부분에 문자열을 넣으면 문자열을 비교해주는 함수에 의해 에러가 뜨거나 성공이 뜬다는 것을 알 수 있습니다. 올리디버거로 열어봅시다. 짠 딱 봐도 하나하나 찾아 해석하기엔 무리가있어보이니 이 프로그램에서 사용된 문자열만 나타나게 하는 올리디버거의 기능을 사용합시다. [마우스 우클릭]->[search for]->[All referenced text strings] 이런 화면이 되었으면 많은 문자열 중에서 힌트를 찾아야겠죠?조금만 화면을 내리다보면 맨 아래에 이렇게 누가봐도 의심가는 부분이 나옵니다..
Security/CodeEngn
베이직 2 번 문제 : 패스워드 찾기우선, 문제를 다운 받은 후 실행시켜보면 실행할 수 없다고 뜹니다. PE파일에 문제가 있는 것 같은데 혹시나 하는 마음에 올리 디버거로 열어보면 역시나 열 수 없다고 뜹니다. 그럼 PE파일을 확인하기 위해 HxD (헥사에디터) 로 열어봅시다.(PEViewer 등 다른 툴도 상관없음!) 윗 부분에 MZ라는 값이 있는데 PE포멧 중 가장 첫 번째에 위치하는 필드입니다. 조금 더 코드를 살펴보다보면, 000000D8 부분에 보여야 할 ' P E \0 \0 ' 값이 보이지 않는다는 것을 알 수 있습니다. PE값은 PE포멧 중 실행파일이 시작하는 부분으로 없으면 안되는 필드입니다.실행파일이 손상된 이유를 알게 되었지만 PE파일을 복구시킬 능력이 없기 때문에 아래로 더 내려서 d..
베이직 1번 문제는 하드디스크를 시디롬 드라이브로 인식시키기 위한GetDriveTypeA함수의 리턴값을 알아내는 것입니다.우선 사이트에 주어진 다운로드 파일을 다운로드 한 후 파일을 그냥 열어보면, "내가 너의 하드디스크를 시디롬 드라이브로 생각하게 만들어" 라는 문구가 뜨고 확인을 누르면, "아,, 이건 시디롬 드라이브가 아니야!" 라는 문구가 뜹니다. 여기서 확인을 누르면 그대로 종료됩니다. 이 실행 결과를 통해 우리는 실행파일이 첫 번째 창에서 두 번째 창으로 넘어갈 때 무언가를 검사하고 그 값에 따라 두 번째 창이 달라진다는 것을 알 수 있습니다. 그럼 이제 OllyDbg로 파일을 열어봅시다. OllyDbg를 킨 후 [F3]를 누르면 이렇게 파일을 선택하여 불러올 수 있습니다. 짠 혹시나 올리디버..