728x90
파일 확인
실행
password를 입력받고 비교하여 적절한 메시지를 출력하는 프로그램이다!
- detect it easy
패킹되지 않은 파일이다.
- PEiD
- C#으로 작성된 프로그램이다!
파일 분석
디버깅 (어셈블리 코드 확인)
C#으로 작성된 코드라서 그런가.. 익숙한 형태의 어셈블리 코드가 아니다. 그래도 나름대로 해석을 해보자면,,
사용자로부터 password를 입력받고, op_Equality를 호출해 두 개의 string 즉, 사용자가 입력한 password와 실제 password를 비교해 일치하는 경우 "Well Done!"메시지가 출력되도록, 일치하지 않는 경우 loc_202로 이동해서 (아마도 branch if false가 아닐까..) "Bad Luck!"메시지를 출력하도록 한다.
✔ 검색을 좀 해봤더니 C#으로 작성된 파일은 올리디버거, x64dbg와 같은 동적 분석 도구로는 분석이 어렵다고 한다!!
✔ 그래서 필요한 것이 "dotPeek"로, C#으로 작성된 파일을 따로 디컴파일해줄 수 있는 도구다.
- dotPeek
[File] > [Open]으로 디컴파일할 파일(13.exe)를 선택하고,
"ConsoleAppllication3" > "<Root Namespace>" > "RijndaelSimpleTest" > "Main"을 선택하면 소스코드를 확인할 수 있다.
- str은 사용자가 입력한 값과 비교하는 password로, while문에서 사용자의 입력값에 따라 출력되는 문자열이 달라진다.
- while문의 바로 앞 코드를 보면 str에 Decrypt함수의 반환값을 저장하는 것을 알 수 있다.
코드를 수정해서 password를 찾아내기 위해 "Export to Project"를 선택한다.
Visual Studio
잘못된 값을 입력했을 경우의 WriteLine 문 뒤에 입력해야할 password인 str을 출력하는 코드를 추가한다.
SMALL
'Reversing > Reversing (Wargame)' 카테고리의 다른 글
[Reversing.Kr] Easy Unpack (0) | 2021.06.01 |
---|---|
[CodeEngn] BASIC RCE L14 (0) | 2021.06.01 |
[CodeEngn] BASIC RCE L12 (0) | 2021.05.28 |
[CodeEngn] BASIC RCE L11 (0) | 2021.05.28 |
[HackCTF] strncmp (0) | 2021.05.28 |