| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- WarGame
- 써니나타스
- xcz.kr
- CodeEngn
- Couldn't invoke the file
- 시스템
- 오토잇디컴파일
- 워게임
- 치트엔진 튜토리얼
- 치트엔진 튜토리얼 게임
- Web
- 1번문제
- 치트엔진
- WTF_CODE
- Couldn't in
- xcz.kr prob
- reversing
- cheatengine
- 포렌식
- CheatEngine Tutorial
- suninatas
- 워게임풀이
- 6번문제
- BasicRCE
- xcz.kr 문제풀이
- 리버싱
- 8번문제
- Basic RCE
- wargame.kr
- 3번문제
- Today
- Total
목록분류 전체보기 (108)
HackChang
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를 출력해봤다. 다음 값을 ..
Basic RCE L12 Key를 구한 후 입력하게 되면 성공메시지를 볼 수 있다 이때 성공메시지 대신 Key 값이 MessageBox에 출력 되도록 하려면 파일을 HexEdit로 오픈 한 다음 0x???? ~ 0x???? 영역에 Key 값을 overwrite 하면 된다. 문제 : Key값과 + 주소영역을 찾으시오 Ex) 7777777???????? 압축을 풀고, 실행하면 위와같은 화면이 나온다. 체크를 눌러도 반응이 없어 올리디버거로 열어봤다. 열어보면 키값으로 보이는 부분이 보인다. 00401052에 BP를 걸고 실행해봤다. 123을 적고 체크를 눌렀더니 EAX에 7B가 들어간 것을 볼 수 있다. 7B는 10진수로 123이다. 그 말은 입력값이 EAX로 들어가므로, EAX와 비교하는 부분이 체크부분인..
Basic RCE L11 OEP를 찾으시오. Ex) 00401000 / Stolenbyte 를 찾으시오. Ex) FF35CA204000E84D000000 정답인증은 OEP+ Stolenbyte Ex ) 00401000FF35CA204000E84D000000 OEP를 찾는 문제는 패킹이 되어있을 확률이 높다. PEID로 열어본다. 역시나 패킹이 되어있었고, UPX로 패킹된 파일이었다. 검색을통해 POPAD를 검색해본다. stolenbyte를 찾기위해 0040736D에 BP를 걸고 실행해본다. 0040736E~00407370까지 stolenbyte인 것을 알 수 있고, OEP는 jmp문으로 점프하는 부분일 것이다. 하지만 stolenByte때문에 0040100C가 OEP는 아니다. stolenbyte를 채워..
OEP를 구한 후 '등록성공' 으로 가는 분기점의 OPCODE를 구하시오. 정답인증은 OEP + OPCODE EX) 00400000EB03 프로그램을 실행하면 이와같이 나온다. OEP를 구한다는 것은 패킹을 한다는 것으로 생각하면 될 것 같다. PEID를 통해 열어보았다. ASPack으로 패킹이 된 것을 볼 수 있다. ASPack의 경우 OEP를 알아내는 방법은 다음과 같다. 검색을 통해 POPAD를 검색하여 POPAD가 있는 부분을 찾아 BP를 걸고, F9를 누르게 되면 00445834라는 OEP를 찾을 수 있게 된다. RETN부분에 BP를 한번더 걸고 F9로 실행 후 F8을 눌러 OEP(00445834)에 도달한다. 이게 정말 OEP인가 하겠지만 Ctrl+A 를 통해 코드를 다시 읽고, 스트링을 검색..
Basic RCE L09 StolenByte를 구하시오 Ex) 75156A0068352040 문제를 풀기 전에 StolenByte가 뭔지 우선 구글에 검색을 해보았다. 검색해본 결과, StolenByte란 패킹 과정을 방해하기위해 프로그램의 일부 바이트를 별도의 영역에서 실행되게 하여 OEP를 다른 위치로 가장하고 덤프를 쉽게 하지 못하도록 구현한 기법입니다. StolenByte와 함께 복원해야 덤프가 성공적으로 처리된다. 결과적으로 EP와 관련된 것으로 보아 이 파일또한 패킹이 되어있을 것으로 생각하고 PEID를 통해 열어보았다. UPX로 패킹된 것을 확인할 수 있었다. 평소와 같이 툴로 언패킹을 진행하고, 올리디버거로 열었는데 EP부분의 데이터가 깨진 것을 볼 수 있다. 다시 패킹 전의 파일을 열어 ..