본문 바로가기

ctf

[CSAW 2013 CTF] DotNetRevering.exe

문제를 보면 알 수 있지만 .NET 프로그램을 리버싱해야 하는 것 같다.

 

 

파일을 실행하니 사용자로부터 입력을 받는다. 임의의 수를 넣었더니 에러가 뜬다..

.NET 기반의 프로그램은 .NET 용 디컴파일러를 이용해 분석할 수 있다.

 

 

.NET Reflector 라는 프로그램으로 디컴파일되어 소스코드를 확인할 수 있다. 정확한 num 값을 넣는다면 복호화 작업을 거친 후 플래그를 출력하는 것 같다.

위 소스코드에서 중요한 부분은 num, num2, num3 변수와  if((num^num2)==num3) 소스 코드이다. xor 연산의 특징으로 2개의 값을 알고 있다면 나머지 1개의 값도 알 수 있다. 따라서 num2^num3 하면 num을 구할 수 있다.

 

 

num2^num3 값을 10진수로 입력하면 다음과 같이 flag 를 출력한다.

 

flag{I'll create a GUI interface using visual basic...see if I can track an IP address.}

'ctf' 카테고리의 다른 글

[HolyShield 2016 CTF] Memory  (2) 2016.01.21
[CodeGate 2013 CTF] binary 100  (1) 2016.01.04
[CSAW 2013 CTF] csaw2013reversing1.exe  (0) 2015.12.31
[CSAW 2013 CTF] csaw2013reversing2.exe  (0) 2015.12.31
[SECCON 2015 CTF] reverse-engineering-android-apk-1  (0) 2015.12.27