분류 전체보기

코드엔진 베이직 4번 : 디버거를 탐지하는 함수의 이름은?문제에서 프로그램이 디버거를 탐지한다 했으니 디버거를 사용하지 않고 문제를 실행시켜봅시다. 정상이라 뜹니다. 그럼 디버거를 사용해 실행시켜봅시다. 디버깅 당함이라 뜨네요! 베이직 문제 3번 풀이에서 썼던 올리디버거의 기능을 씁시다. [마우스 우클릭]->[search for]->[All intermodular calls] 들어가면 이 프로그램에서 사용한 함수만 나열됩니다. 제일 처음 쓰인 함수부터 보니 IsDebuggerPresent 라는 함수가 있네요. 이름부터 수상하니 더블클릭해서 들어가봅니다. 우선 이 함수의 역할을 알기 위해 bp를 걸고 실행시켜봅시다. 이 함수를 지나기 전 EAX의 값은 0 이지만 지난 후 EAX의 값은 1이 됩니다. 계속 ..
코드엔진 베이직 3번 문제 : 비주얼 베이직에서의 스트링 비교 함수 구하기 일단 그냥 실행시켜보면, 이런 창이 뜹니다. 대충 아무거나 치고 왼쪽 버튼을 누르면, 틀렸다고 에러가 뜨네요. 이 과정을 통해 RegCode부분에 문자열을 넣으면 문자열을 비교해주는 함수에 의해 에러가 뜨거나 성공이 뜬다는 것을 알 수 있습니다. 올리디버거로 열어봅시다. 짠 딱 봐도 하나하나 찾아 해석하기엔 무리가있어보이니 이 프로그램에서 사용된 문자열만 나타나게 하는 올리디버거의 기능을 사용합시다. [마우스 우클릭]->[search for]->[All referenced text strings] 이런 화면이 되었으면 많은 문자열 중에서 힌트를 찾아야겠죠?조금만 화면을 내리다보면 맨 아래에 이렇게 누가봐도 의심가는 부분이 나옵니다..
보호되어 있는 글입니다.
베이직 2 번 문제 : 패스워드 찾기우선, 문제를 다운 받은 후 실행시켜보면 실행할 수 없다고 뜹니다. PE파일에 문제가 있는 것 같은데 혹시나 하는 마음에 올리 디버거로 열어보면 역시나 열 수 없다고 뜹니다. 그럼 PE파일을 확인하기 위해 HxD (헥사에디터) 로 열어봅시다.(PEViewer 등 다른 툴도 상관없음!) 윗 부분에 MZ라는 값이 있는데 PE포멧 중 가장 첫 번째에 위치하는 필드입니다. 조금 더 코드를 살펴보다보면, 000000D8 부분에 보여야 할 ' P E \0 \0 ' 값이 보이지 않는다는 것을 알 수 있습니다. PE값은 PE포멧 중 실행파일이 시작하는 부분으로 없으면 안되는 필드입니다.실행파일이 손상된 이유를 알게 되었지만 PE파일을 복구시킬 능력이 없기 때문에 아래로 더 내려서 d..