Reverse Engineering(38)
-
리버스엔지니어링 문제 Advance 18
http://codeengn.com/challenges/advance/18 Problem : Generate the key file when the name is CodeEngn. 실행파일입니다. 실행하면 Name과 Key File의 위치를 입력하는 공간이 있습니다. Key File을 지정해주지 않으면 다음과 같은 메시지박스를 띄웁니다. OllyDbg로 실행을 하고 Name만 넣어서 OK를 눌러보면 넘어가지 않는 구간이 있습니다. 32비트에서도 해봤지만 마찬가지입니다. PEiD를 보면 EntryPoint가 33DD라고 나옵니다. 그럼 시작 위치는 4033DD가 되어야합니다. 하지만 OllyDbg로 보면 403376을 메인 모듈의 Entry point로 지정하고 있으며 4033DD에 bp를 걸어도 걸리지 ..
2015.09.05 -
리버스엔지니어링 문제 Advance 17
http://codeengn.com/challenges/advance/17 Problem : Find the Name when the Serial is 66BB16A328F74639 (The 3rd character in Name must be either bruteforced or guessed) 노래도 나오고 방정식도 움직입니다. 지난번에도 bgm이 나오는 프로그램이 있었지만 이런 것들이 리버싱을 하는데 약간이라도 방해가됩니다. 우선 4013EB에서 호출되는 함수로 가보면 404130부터 8바이트 씩 256의 길이를 초기화하고 있습니다. for(int i=0;i
2015.08.29 -
리버스엔지니어링 문제 Advance 16
http://codeengn.com/challenges/advance/16 Problem : registered: true가 되도록 key 파일을 만드시오 프로그램을 그냥 실행시키면 도스창이 잠깐 열렸다 꺼지는데 registered: false 라고 써져있습니다. string으로 registered와 false, true는 쉽게 찾을 수 있습니다. 004031F3위치를 지나면 EDI에 false문자열이 들어가게 됩니다. true가 들어가는 구간을 찾습니다. 문자열 검색에서 보시면 false와 true가 쉽게 보이는 004035F7 부분을 지나가는걸 알 수 있는데 이전까지처럼 둘 중 하나의 구간을 선택해서 바로 출력하는 것이 아니라 두 부분을 다 거친후 몇가지 연산을 더 한 다음에 최종 출력을 합니다. c..
2015.08.24 -
리버스엔지니어링 문제 Advance 15
http://codeengn.com/challenges/advance/15 Problem : Find the Serial when the Name of "CodeEngn.com" Ex) AAAAAAAAAAAAAAAA 이번 문제는 Unlock Code라는 것부터 찾아야합니다. 파일을 ollydbg로 열면 일종의 팩이 되어있다는 것을 알 수 있습니다. UPX는 아닙니다. PEiD로 보면 이미지베이스 00400000에 코드베이스 00001000이라고합니다. 시작 주소는 00401000이 되겠네요. back to user mode라는 방법을 이용합니다. 간략히 설명하면 프로그램을 실행시켜 특정 이벤트 발생으로 인한 멈춤 상태까지 간 다음에 일시정지 - Execute till user code를 누른 후 이벤트를..
2015.08.16 -
리버스엔지니어링 문제 Advance 14
http://codeengn.com/challenges/advance/14 Problem : Find the Name when the Serial of NH6-0-0091008D0052 이번에도 시리얼이 있을 때 Name을 찾는 문제입니다. ollydbg로 문자열을 찾아보려했으나 찾기가 어려워 Process Explorer를 써보니 메모리에서 확인할 수 있었습니다. ollydbg에서 해당 프로그램 메인모듈을 맞춰놓고 string 검색을 해보면 찾을 수 있습니다.그럼 해당 부분에 bp를 걸고 디버깅을 해봅니다. name과 serial을 초기상태로 아무렇게나 놓고 check를 누르면 여러 점프문중에 윗부분에서 Invalid부분으로 뜁니다.name을 aaa, serial을 문제에서 제시한대로 해놓으니 다 통과..
2015.08.14 -
리버스엔지니어링 문제 Advance 13
http://codeengn.com/challenges/advance/13 Problem : Find the Username when the Password is 042D7650341B4060. (This problem has multiple answers, so post your answer on the messageboard in a private thread and we will verify it for you.) Note : "U got the key, you r0x ;)" must pop up for the serial. 패스워드가 다음과 같을 때 올바른 유저네임을 찾는 것으로 틀린 값이 들어가면위와 같은 메시지가 뜹니다. 문자열 검색을 해봐도 의심가는건 보이지 않고 의심가는 함수로 Termin..
2015.08.09