전체 글

전체 글

    CodeEngn Basic03 풀이

    코드엔진 3번문제 풀이를 해보겠습니다. 비주얼베이직에서 스트링 비교함수의 이름을 묻습니다. 비주얼베이직은 접해본적이없어서 당황스럽네요.. 음 아마 cmpStr 이런류의 함수이름이 아닐까하고 추측해봅니다. 실행을 한번해봅시다.영어가 아니라서 무슨뜻인지는 모르겠지만 아마도 이 메세지박스를 없애라는 뜻이겠죠?? 일단 확인을 누릅니다. 뭔가 코드를 입력하는창이 나옵니다. Registeration 인거같은 버튼을 누르면 무언가 아니라고 뜹니다. 올리디버거로 가봅시다.Search for에 가서 모든 참조하는 String을 보겠습니다. 동적분석하면서 보았던 문자열들이 보이는군요 더블클릭 해줍시다.해당 문자열에서 BP를 걸어주고 다시 실행시켜보았습니다. 스택에 문자열을 넣고 함수를 호출하는군요. 402C92 번지에 있..

    CodeEngn Basic02 풀이

    코드엔진 Basic02를 풀어보도록 하겠습니다. 우선 실행을 시켜봅시다.실행파일이 손상되어 실행이 정말안되는군요.. 올리디버거로도 열리지가 않습니다. HxD로 한번열어보았습니다.Crackme#1.JK3FJZh 라는 문구가 보입니다. 패스워드인것같군요. 문제풀이 끝!

    CodeEngn Basic01 풀이

    1일 1문제로 매일매일 한문제씩 풀어보기로 하였습니다. 뭔가 목표를 정하지 않으니 목적없이 시간만 흘러가는것 같네요...1일차 문제 Basic01일단 파일을 받아 실행을 시켜보았습니다.내 하드를 시디롬으로 인식하게 만들라는군요.확인을 눌렀더니 시디롬이 아니라고 뜹니다. 올리디버거로 확인해봅시다.코드가 정말 짧습니다. Stub코드가 안보이는것은 어셈블리어로 작성되었다는 소리죠. 살펴보니 GetDriveTypeA라는 함수를 사용해 드라이브타입을 리턴받아 CMP EAX,ESI 어셈블리어를 이용해 비교후 같으면 점프합니다. 비교하기전 EAX와 ESI 레지스터 값입니다. 다르기때문에 점프하지 않습니다. 단순하게 성공메세지를 띄우기 위함이므로 JE 를 JMP로 바꿔줍시다.성공입니다 !