CodeEngn Advance RCE의 05번 문제입니다. Serial을 구하는 문제입니다. 프로그램을 실행시키고 아무 값이나 친 뒤 오케이를 누르면 이런 화면이 나타납니다. Visual Basic으로 만들어진 프로그램이네요. 올리디버거로 직접 분석하겠습니다. Visual Basic에서 문자열을 비교해주는 함수인 vbaStrCmp를 찾았습니다. 이곳에 BP를 걸고 실행시켜보겠습니다. EAX에 있는 제가 입력한 값 1234와 ECX에 있는 값인 677345를 비교하고 있습니다. 677345를 프로그램에 인증해보겠습니다. 정답이네요. 코드엔진 사이트에도 인증해보겠습니다. ~
CodeEngn Advance RCE의 04번 문제입니다. 3번 문제와 똑같이 Name이 CodeEngn 일 때의 Serial을 구하라고 하네요. 프로그램을 실행시켜서 시리얼 칸에 아무 값이나 넣어보았더니 실패 문자열이 출력됩니다. 올리디버거로 열어서 분석하겠습니다. 올리디버거 내에서 문자열과 함수 목록이 제대로 보이지 않는 것을 보니 패킹이 되어있는 것으로 보입니다. 한 줄씩 실행시키다 보니 401006이 OEP라는것을 알 수 있었습니다. OEP를 제대로 맞춰주고 덤프를 해주었습니다. strcmp 함수를 이용해서 사용자가 입력한 시리얼값과 어떤 ㅁ값을 비교하고 있습니다. 저 값을 프로그램에 인증해보면.. 정답입니다! 코드엔진 사이트에도 인증해보면.. !!
CodeEngn Advance RCE의 03번 문제입니다. Name이 CodeEngn 일 때의 Serial을 구하라고 하네요. 시리얼 칸에 아무 문자열이나 넣어보니 역시 실패 문자열이 출력됩니다. 올리디버거로 열어서 분석해보겠습니다. 성공 문자열로 보이는 곳으로 가보겠습니다. SEH (Structured Exception Handling)란 Windows OS에서 제공하는 예외처리 방식입니다. 언어 중립적이어서 범용적인 사용이 가능하며, 0으로 나누기나 유효하지 않은 메모리 주소 접근 같은 하드웨어 예외를 알아서 감지하고 처리하도록 도와줍니다. SEH가 있는 것으로 봐서 어떤 예외가 발생하면 이곳으로 분기해서 성공 문자열을 출력해주는 것으로 보이네요. 그럼 이제 실패 문자열이 출력되는 곳으로 가보겠습니다..
- Total
- Today
- Yesterday
- Level 03
- Basic RCE
- Advance RCE
- Programming
- 17th HackingCamp CTF
- Write-up
- ftz
- wargame
- Level 01
- HackingCamp
- 유니티
- Android
- c++
- CodeEngn
- 멘토링
- pwnable
- xcz.kr
- 안드로이드 멘토링
- Unity
- Level 02
- Level 04
- 안드로이드
- Level 06
- C#
- reversing.kr
- unity2d
- 풀이
- Level 05
- Reversing
- hackerschool
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |