일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BasicRCE
- 포렌식
- 오토잇디컴파일
- reversing
- 6번문제
- 워게임풀이
- xcz.kr prob
- 1번문제
- WarGame
- xcz.kr 문제풀이
- cheatengine
- 워게임
- wargame.kr
- 치트엔진 튜토리얼 게임
- CodeEngn
- CheatEngine Tutorial
- WTF_CODE
- 8번문제
- suninatas
- Web
- 시스템
- Couldn't in
- 리버싱
- Basic RCE
- 치트엔진 튜토리얼
- 치트엔진
- 써니나타스
- Couldn't invoke the file
- 3번문제
- xcz.kr
- Today
- Total
목록W4RG4M3 (102)
HackChang
Advance RCE L02 정답은 무엇인가 습관처럼 이번 문제 또한 PEID에 올려봤다. 따로 패킹이 되어있지 않은 것을 볼 수 있고, C++로 만든 프로그램인 것을 알 수 있었다. 프로그램이 어떤식으로 동작되는지 켜보았다. 아무 것도 나오지 않고, 키를 누르거나 클릭을 하면 프로그램이 꺼지게 된다. 올리디버거로 올려 자세히 보도록 하겠다. 스트링 검색을 통해보면 위와 같은 메세지를 볼 수 있다. 프로그램을 키면 위와같은 메세지가 떠야하는데 안뜨는 것을 보고 구글에 다른 사람들의 플이를 봤지만 나와 같은 문제는 볼 수 없었다. 가상환경으로 윈도우7이 깔려있어 윈도우7에서 실행을 했더니 잘 되는 것을 볼 수 있었다. 윈도우10에서는 안되는 것 같다. 위와 같은 화면이 출력되는 것을 볼 수 있고, 패스워드..
Basic을 모두 클리어하고, 다음 난이도인 Advance 문제를 풀이해보도록 하겠다. Advance RCE L01 이 프로그램은 몇 밀리세컨드 후에 종료 되는가 정답인증은 MD5 해쉬값(대문자) 변환 후 인증하시오 습관처럼 PEID에 파일을 올려보았다. UPX로 패킹된 것을 볼 수 있었고, 언패킹을 진행했다. PEID에 다시 올려 언패킹이 된 것을 확인할 수 있다. 올리디버거에 올려서 분석해보도록 하겠다. Basic의 문제중에 비슷한 문제가 존재했기 때문에 함수를 검색해본다. 아마도 timeGetTime 함수가 있지 않을까 예상된다. 예상과 같이 timeGetTime 함수가 존재하는 것을 볼 수 있었고, 함수를 눌러 자세히 보도록 하겠다. 해당 함수를 호출하는 모든 부분에 BP를 걸고, F9를 눌러 실..
Basic RCE L20 이 프로그램은 Key파일을 필요로 하는 프로그램이다. 'Cracked by: CodeEngn!' 문구가 출력 되도록 하려면 crackme3.key 파일안의 데이터는 무엇이 되어야 하는가 Ex) 41424344454647 (정답이 여러개 있는 문제로 인증시 맞지 않다고 나올 경우 Contact로 연락주시면 확인 해드리겠습니다) 드디어 Basic의 마지막 문제입니다. 프로그램을 실행하면 위와같은 화면이 나옵니다. 따로 기능은 없는 것으로 보입니다. PEID에 파일을 올려봤습니다. PEID를 통해 어셈으로 제작된 프로그램인 것을 알 수 있었습니다. 올리디버거를 통해 프로그램을 열어봤습니다. 보게되면, CreateFile을 통해 CRACKME3.KEY이 있는 경우에 18바이트만큼 문자를..
Basic RCE L19 이 프로그램은 몇 밀리세컨드 후에 종료 되는가 압축을 풀고, PEID에 올려봤다. UPX로 패킹된 것을 볼 수 있고, 언패킹툴을 통해 언패킹을 진행했다. 언패킹을 진행하고, 올리디버거를 통해 실행시켜봤다. 안티디버깅이 되어있는 것을 볼 수 있었고, 함수검색을 통해 isdebugpresent를 검색해서 들어간다. 해당 점프문 부분을 JNZ -> JZ로 바꿔 디버깅툴을 탐지하지 못하도록 한다. 문제는 시간을 구하는 문제이므로, 함수검색에서 time을 검색해봤다. timeGetTime이라는 함수를 볼 수 있었고, 구글을 통해 검색해봤다. 시간과 관련된 함수인 것을 볼 수 있었고, timeGetTime 함수 모두에 BP를 걸었다. F9를 통해 실행시키면 00444C44에서 걸리는 것을 ..
Basic RCE L18 Name이 CodeEngn일때 Serial은 무엇인가 압축을 풀고 실행시키기 전에 PEID로 열어보았다. 패킹이 되어있지 않은 것을 볼 수 있었고, 올리디버거로 켜봤다. 이와같은 프로그램형태인 것을 알 수 있었고, Name이 CodeEngn일 때, Serial을 구하는 것이므로, 스트링을 검색해본다. 성공메세지를 볼 수 있었고, 자세히 보도록 한다. 성공메세지로 가는 점프문위로 BP를 걸고, CodeEngn/1을 넣고 인증해봤다. 06162370056B6AC0이 시리얼인 것을 알 수 있다.
Basic RCE L17 Key 값이 BEDA-2F56-BC4F4368-8A71-870B 일때 Name은 무엇인가 힌트 : Name은 한자리인데.. 알파벳일수도 있고 숫자일수도 있고.. 정답인증은 Name의 MD5 해쉬값(대문자) 실행을 하면 키젠프로그램이 나온다. 1을 입력하고 check it!을 누르면 위와같은 메세지가 키에 들어간다. 올리디버거를 통해 열어봤다. 스트링 검색을 통해 에러메세지와 성공메세지를 찾을 수 있었다. 위의 에러메세지로 들어가봤다. 글자수가 3글자미만일때 에러메세지가 출력되는 것을 볼 수 있다. 문제는 Name이 한글자라고 했으니 비교하는 부분을 한 글자로 바꿔준다. 1로 바꿔주고, 실패 문자열 아래에 BP를 걸고 실행시킨다. 1을 입력하고 Checkit!을 했을 때의 시리얼을..
Basic RCE L16 Name이 CodeEngn일때 Serial을 구하시오 압축을 풀고, PEID로 열어봤다. 따로 패킹이 되어있지 않은 것을 볼 수 있었고, 올리디버거를 통해 열어봤다. 스트링 검색을 통해 성공메세지를 출력하는 부분으로 들어가봤다. 위로 올리다보면 EAX와 EBP-3C를 비교하고, 성공메세지나 실패메세지부분으로 점프하는 곳을 볼 수 있다. 비교하는 부분에 BP를 걸고 실행해본다. 레지스터를 보면 EAX는 패스워드가 들어가는 것을 볼 수 있다. 메모리 덤프주소로 들어가본다. 97 0D C6 E4와 비교하는 것을 알 수 있었고, 리틀엔디언으로 바꾸면 E4 C6 0D 97이므로, E4C60D97을 10진수로 바꾸고 인증을 해본다.
Basic RCE L15 Name이 CodeEngn일때 Serial을 구하시오 압축을 풀고, 습관처럼 PEID에 올려봤다. 따로 패킹이 되어있지 않은 것을 볼 수 있었고, 올리디버거를 통해 열어봤다. 스트링을 검색하고 CRACKED라는 성공메세지로 들어가본다. 이 문제도 L14와 같이 EAX와 비교하여 같지않으면 0045854(Try Again !)으로 점프를 시킨다. 비교문에 BP를 걸고 실행해봤다. 레지스터를 보면 시리얼값으로 1이 들어간 것을 확인할 수 있었고, 48B844와 비교하므로, 아래 데이터창에 45B844를 검색해본다. DWORD PTR DS는 4바이트 값이기 때문에 60 61 00 00 인 것을 알 수 있었다. 여기서 주의할 점은 메모리 덤프 주소는 리틀 엔디언 방식으로 읽어야 한다는 ..
Basic RCE L14 Name이 CodeEngn 일때 Serial을 구하시오 (이 문제는 정답이 여러개 나올 수 있는 문제이며 5개의 숫자로 되어있는 정답을 찾아야함, bruteforce 필요) Ex) 11111 습관처럼 압축을 풀고, PEID에 올려봤다. UPX로 패킹이 된 것을 확인할 수 있었고, 툴을 통해 언패킹을 진행했다. 언패킹을 하고, 올리디버거로 열어봤다. 스트링을 검색하고, 성공메세지가 뜨는 주소로 이동한다. 성공메세지를 확인하기위해 문자를 비교하는 부분에 BP를 걸고 실행시켜본다. Name에 CodeEngn을 적고 Serial에 1을 적고 체크를 한다. EAX는 내가 입력한 값이고, ESI가 시리얼인 것을 알 수 있다. ESI를 10진수로 바꿔서 인증하면 된다.
Basic RCE L13 정답은 무엇인가 파일을 압축풀고, 실행시켜봤다. 위와같이 패스워드를 입력하는 구조이고, 틀리게되면 Bad Luck! Try again! 이라는 문자열을 출력하고, 다시 입력할 수 있게된다. 올리디버거를 통해 한번 열어봤다. 에러메세지와 함께 열리지 않는 것을 볼 수 있었다. PEID로 열어보고, 검색을 해봤다. C#으로 만들어진 프로그램은 올리디버거로 열리지 않는다고 한다. 그래서 C#으로 만들어진 프로그램을 디컴파일할 수 있는 툴을 통해 진행해봤다. 디컴파일을 통해 2개의 클래스가 존재하는 것을 볼 수 있었다. 메인함수를 찾을 수 있었고, Ctrl+s를 눌러 파일로 저장을 한다. text부분에 우리가 원하는 문자열이 들어있을 것이라고 생각되어 text를 출력해봤다. 다음 값을 ..