Basic 16번의 문제입니다.

파일을 열어보니 위와 같은 창이 나왔습니다.

파일의 정보를 보니 패킹되어있진 않은것 같고 C++로 코딩되어있는것같습니다.


디버거를 통해 열어보았습니다.

우선 성공했다는 Good job!이 있는 문자열로 이동해 보겠습니다.

이부분에 보면 CMP를 통해 비교를 한 후 성공한지 실패한지 점프문을 통해 이동시켜버리는 부분이 있습니다.

점프문은 아주 아주 멀리로 가버리는군요 Good job!과는 거리가 멉니다.

여기에 bp를 걸고 실행시켜보겠습니다.

파일을 실행시킨것과 같은 창이 나오는데 이름은 codeengn이고 패스워드는 아무거나 임의로 입력해줍니다.

그러면 비교를 하는데 eax값은 우리가 입력한 값이니 다른값이 정답이 되겠습니다.

10진수로 변환해서 입력하면

Good Job!

'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn Basic 18  (0) 2015.08.08
CodeEngn Basic 17  (0) 2015.08.05
CodeEngn Basic 15  (0) 2015.07.27
CodeEngn Basic 14  (0) 2015.07.27
CodeEngn Basic 13  (0) 2015.07.26


Basic 15번 문제입니다.

우선 파일을 실행시켰을때의 모습입니다. 임의로 넣어봤더니 Try Again!이라는 메세지가 나왔습니다.

패킹되어있진 않은것 같습니다.

디버거를 통해 열어보겠습니다.

텍스트를 보니 성공했다는 메세지가 보입니다. 여기로 가보겠습니다.

성공했다는 메세지와 실패했다는 메세지 위에보면 CMP(비교)하는 명령어가 있습니다. 계속해서 비슷한 문제군요 BP를걸어 F9실행을 시킵니다.

그러면 이렇게 파일을 실행할때와 똑같이 나오는데 다시한번 임의로 입력을하고 Check it!을 해보겠습니다.

그러면 아래와같이 16진수의 숫자가 나옵니다.

이것을 변환하면 시리얼 키가 되겠습니다.


'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn Basic 17  (0) 2015.08.05
CodeEngn Basic 16  (0) 2015.08.05
CodeEngn Basic 14  (0) 2015.07.27
CodeEngn Basic 13  (0) 2015.07.26
CodeEngn Basic 12  (0) 2015.07.26


Basic 14번 문제입니다.

패킹되어있는 파일입니다. 디버거로 열어보니

POPAD를 찾아 점프문으로 점프해보겠습니다.

본래 코드가 나왔습니다.

텍스트를 검색해보면 성공했다는 문구가 나옵니다 그곳으로 이동해보겠습니다.

성공했다는 문구와 실패했다는 문구 위에보면 CMP(비교)를 하여 성공한지 실패한지 보여주고있습니다. 여기에 BP를걸어보겠습니다.

그리고 F9해보면 파일을 실행했을때의 상황이 됩니다. 

여기에 위와같이 입력합니다.

그리고 체크하면 다음과같은 상황이 벌어지는데 CMP로 EAX와 ESI를 비교한다 하였으니 EAX를 10진수로 바꿔보면 12345가 됩니다. 그렇다면 ESI를 10진수로 바꾸면 시리얼 넘버가 되겠습니다.


'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn Basic 16  (0) 2015.08.05
CodeEngn Basic 15  (0) 2015.07.27
CodeEngn Basic 13  (0) 2015.07.26
CodeEngn Basic 12  (0) 2015.07.26
CodeEngn Basic 11  (0) 2015.07.20


Basic 13번 문제입니다.

이파일은 보아하니 C#으로 만들어진듯 한데 디버거로도 열리지 않는것보니 다른방법을 찾아보도록 했습니다.

일단 내가 봐야하는 코드의 시작점은 00400000부터이입니다.

ILSpy라는 디컴파일러를 통해 열어보았습니다.

main부분을 들여다보니 코드 몇개만 바꾸면 뭔가 풀 수 있을것 같은 느낌이 들었습니다.

우선 코드를 저장하고, visual studio로 가보겠습니다.

main부분을 보면 다음과같이 나와있는데 text가 패스워드인듯 합니다. 그래서 콘솔창에 패스워드가 나오도록 해야한다는 생각을 하였습니다.

Console.WriteLine("~~~~~");를 하니 콘솔창에 문자가 나왔으니 이대로 하면 문자가 나올거라 생각하여 위와같이 직접 한줄 적어서 컴파일 해보았습니다.

그랬더니 위와같이 패스워드같은것이 나왔습니다.

입력해보니 성공한것같습니다.

'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn Basic 15  (0) 2015.07.27
CodeEngn Basic 14  (0) 2015.07.27
CodeEngn Basic 12  (0) 2015.07.26
CodeEngn Basic 11  (0) 2015.07.20
CodeEngn Basic 10  (0) 2015.07.16


Basic 12번 문제입니다.

파일을 열어보니 Key값을 입력하는 창이 하나 뜨는군요

디버거로 열어보겠습니다. 

텍스트를 살펴보면 Congratulation,으로 시작하는 문구가 하나 있습니다. 여기로 가보겠습니다.

그러면 성공했다는 코드 윗부분에 CMP(비교)하는 부분이 있습니다.


EBX값과 7A2896BF값을 비교하는 것입니다. 그렇다면 7A2896BF값은 16진수이니 10진수로 바꿔보겠습니다.

2049480383입니다.

헥스에디터로 열어서 Congratulation이 들어간 곳을 찾았습니다.

여기에 그대로 2049480383을 입력해보면 됩니다.

'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn Basic 14  (0) 2015.07.27
CodeEngn Basic 13  (0) 2015.07.26
CodeEngn Basic 11  (0) 2015.07.20
CodeEngn Basic 10  (0) 2015.07.16
CodeEngn Basic 09  (1) 2015.07.16


Basic 11번 문제입니다 StolenByte를 찾고 OEP도 찾으라는 문제입니다.

디버거를 사용하여 열어보니 PUSHAD로 시작하는 코드가 나옵니다.

POPAD를 찾아가보면 JMP문이 보일것입니다. StolenByte는 바로 PUSH3개가 연달아 있는 부분이겠죠

JMP문에 BP를 걸고 F9해보면 옆에 글자가 달립니다. 위 3줄을 Ctrl+C하시고 넘어옵니다.

그럼 위에 NOP이라 써있는 부분이 나오게 됩니다. 여기에 Ctrl+E하시고 

위와 같이 적어두시면 됩니다.


'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn Basic 13  (0) 2015.07.26
CodeEngn Basic 12  (0) 2015.07.26
CodeEngn Basic 10  (0) 2015.07.16
CodeEngn Basic 09  (1) 2015.07.16
CodeEngn Basic 08  (1) 2015.07.16


Basic 10번 문제입니다 

파일을 열었을때의 모습입니다.

파일 형식을보니 ASPack형식입니다. ASPack역시 잘 모르는 부분이라 구글링을 통해 알아보았습니다.


디버거로 파일을 열어보았습니다.

PUSHAD로 시작합니다.

POPAD를 찾아가보면 ASPack의 형식으로 RETN0C가 있고 PUSH0 후에 RETN이 있습니다.

우선 POPAD에 BP를 걸어놓고 F9를 합니다.

그다음 RETN에 BP를 걸고 F9를 합니다.

여기서 텍스트를 찾아 레지스터가 성공했다는 문자를 찾으면 됩니다.


찾았습니다. 답을 모두 찾은것같습니다.

'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn Basic 12  (0) 2015.07.26
CodeEngn Basic 11  (0) 2015.07.20
CodeEngn Basic 09  (1) 2015.07.16
CodeEngn Basic 08  (1) 2015.07.16
CodeEngn Basic 07  (1) 2015.07.16


Stolen Byte를 구하는문제입니다 StolenByte에 대해 잘 모르는 터라 구글링을 통해 StolenByte에 대한 지식을 조금 쌓고 문제를 풀어보았습니다.

먼저 파일을 열었을때의 모습입니다. 

확인을 누르니 다음과같은 메세지가 뜹니다.

형식은 패킹이 되어있는 형식입니다.

먼저 언팩을 해보도록 하겠습니다 역시나 PUSHAD로 시작합니다.

POPAD를 찾아 내려가다보니 PUSH명령어로 시작하는 3줄이 눈에띕니다. 저부분이 바로 StolenByte가 되겠습니다. 3줄을 복사하고 점프문을 통해 넘어오면

위와같이 나오는데 위로 올려보면

NOP로 되어있는 부분이 나옵니다 여기에 아까 복사했었던 것을 입력해줍니다.

그러면 StolenByte를 찾게 되는것입니다.

'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn Basic 11  (0) 2015.07.20
CodeEngn Basic 10  (0) 2015.07.16
CodeEngn Basic 08  (1) 2015.07.16
CodeEngn Basic 07  (1) 2015.07.16
CodeEngn Basic 06  (0) 2015.07.16

+ Recent posts