본문 바로가기

Wargame/Reversing.kr

(5)
[Reversing.kr] Replace exe 파일을 실행하니 위와 같은 화면이 나온다. "Correct!" 를 더블클릭. "Correct!" 에 BP를 걸고 주변을 살펴봐도 별게 없어서, 401073 ~ 401084 부분을 참조하는 부분을 검색해 "Correct!"로 JMP하는 다른 부분을 찾아보자. 음. 아무것도 안나온다. 엥. 난 왜 이상한데서 멈추지? 지금 컴퓨터가 과열돼서 제정신이 아닌 모양이다. 원래는 40466F 에서 멈춘다는데 eax 주소를 참조해 0x90 으로 채우고, 그 eax 에 들어갈 값을 유추해야 한다고 한다. 아, 드디어 제대로 됐다! eax + 내 시리얼의 입력값, to hex 를 변경해 0x90 즉, NOP를 도출해내 프로그램이 동작하게 해야하는거다. 위의 eax 6017E80B 는 123456을 입력해 Check..
[Reversing.kr] Easy ELF IDA Pro로 왜인지 안 열린다 싶었는데 가상머신 Windows 7 x64 에서는 열린다. 왜지? 같은 파일인데 여기서는 안되는게 거슬리지만 아무튼 분석을 해보겠다. main 함수를 보자. sub_8048434는 scanf를 통해 사용자로부터 문자열을 입력받고, sub_8048451은 입력값이 조건을 만족하면 1을 반환하여, sub_80484F7이 호출되게 하고 프로그램이 "Correct" 문자열을 출력하게 한다. 그 조건이 뭔지 알아야하기 때문에 sub_8048451 을 뜯어보도록 하자. 각 블록이 각각의 조건을 만족해 점프가 수행되고 1을 반환한다. string[0] ^ 0x34 == 0x78 string[1] == '1' string[2] ^ 0x32 == 0x7C string[3] ^ 0x88 ..
[Reversing.kr] Easy Unpack 이러길래 가상머신에서 열어주었다. 압축파일을 열고, ReadMe.txt 를 확인하니 OEP를 찾으란다. Plugins > Generic OEP Finder 답이 나왔다. 00401150
[Reversing.kr] Easy Keygen Serial 값이 5B134977135E7D13인 Name 을 찾는 문제이다. 파일을 실행하니 저런 식으로 Name과 Serial을 입력받길래 아무렇게나 쳐봤는데 답이 아니라 그런지 그냥 꺼졌다. 이번 문제는 Ollydbg 로 풀어볼까 한다. x32로 여는거더라. Ctrl + g 로 401000 main 함수를 검색한다. 마지막 세줄이 좀 특이하다. 0x10, 0x20, 0x30 을 각각 esp+10, esp+11, esp+12 에 저장하는걸 볼 수 있다. 위의 루프에서 name 과 xor 키 연산을 통해 serial num 을 생성하는 것을 볼 수 있다. 위의 부분에서 serial num을 계산하는데, [esp+esi+c] 에는 0x10, [esp+ebp+10] 에는 입력한 name의 첫 글자, [es..
[Reversing.kr] Easy Crack 다운받은 exe 파일을 실행하니 위와 같은 화면이 나온다. 아무 숫자나 넣어봤더니 위와 같은 메시지가 나왔다. 옳은 패스워드를 찾아내는 문제인 듯 하다. Immunity Debugger로 열어서 Search for > All referenced text strings 로 문자열 보기 Congratulation!! 으로 이동해보자. 함수의 시작 부분인 00401080 SUB ESP 64 에 F2를 눌러 Break Point를 걸고, 보도록 하자. 캡쳐는 그냥 한 장에 다 들어가게 했지만. 004010B0 에서 [ESP+5] 값과 0x61을 비교하여 같지 않으면 실패를 출력하는 부분으로 CMP, 점프하는걸 알 수 있다. 16진수 61은 문자로 a이다. 입력값으로 1234를 넣고 메모리에서 ctrl+g를 눌러..