Basic RCE L13
정답은 무엇인가
이번 문제는 굉장히 심플하다. 실행을 시켜보자
커맨드창으로 Please enter the password: 라는 글이 출력되고 입력을 기다린다.
만약 잘못된 password를 입력하면
이런 문구가 출력된다. 맞는 password를 입력해야 한다.
Ollydbg로 열어보려 했으나
에러가 출력됐다.
혹시 패킹이 걸려있나 해서 확인해 봤는데
그건 또 아니었다.
잘 보니 C# 코드같은데 C#으로 작성된 코드는 Ollydbg로 디버깅 하기 어렵다.
대신 .net 디컴파일를 이용해서 소스코드를 쉽게 복원시킬 수 있다.
나는 .net 디컴파일러 중 DotPeek이라는 visual studio와 연동되는 듯한 프로그램을 사용했다.
설치 사이트 : https://www.jetbrains.com/ko-kr/decompiler/
그렇게 설치 한 후에 드래그로 13.exe파일을 떨궈주면 main 소스코드를 찾을 수 있다.
여기서 우리가 입력한 값 Console.ReadLine과 str이라는 문자열의 값을 비교하는데 이 str의 값이 뭔지만 알면 문제는 해결 될 것이다.
우리가 직접 코드를 해석하기 보다는 그냥 소스코드를 수정해서 출력시키는 편이 편하다.
dotPeek 내부에서 우리가 넣어줬었던 13.exe파일을 Export to Project를 하면 visual studio의 파일을 하나 생성시켜준다.
그러면 Visual Studio에서 만들어진 파일을 출력하도록 수정만 해주면 된다.
Console.WriteLine(str); 추가
그 뒤에 위에 있는 시작 버튼을 통해 프로그램을 실행시키면 str의 암호화된(?) 문자열이 출력된다. 이게 답이다.
'Hacking > Reversing' 카테고리의 다른 글
CodeEngn_basic_15 (0) | 2020.07.13 |
---|---|
CodeEngn_basic_14 (0) | 2020.07.05 |
CodeEngn_basic_12 (0) | 2020.06.27 |
CodeEngn_basic_11 (0) | 2020.06.27 |
UPX 언패킹 하는법 (0) | 2020.06.21 |