일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Couldn't invoke the file
- Basic RCE
- 포렌식
- 리버싱
- xcz.kr 문제풀이
- 워게임
- 3번문제
- 워게임풀이
- Web
- 치트엔진 튜토리얼 게임
- 6번문제
- WarGame
- WTF_CODE
- xcz.kr prob
- CodeEngn
- BasicRCE
- wargame.kr
- cheatengine
- 치트엔진 튜토리얼
- reversing
- 써니나타스
- xcz.kr
- Couldn't in
- 오토잇디컴파일
- 8번문제
- 치트엔진
- CheatEngine Tutorial
- suninatas
- 1번문제
- 시스템
- Today
- Total
목록W4RG4M3 (102)
HackChang
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부분의 데이터가 깨진 것을 볼 수 있다. 다시 패킹 전의 파일을 열어 ..
Basic RCE L08 OEP를 구하시오 Ex) 00400000 파일을 실행시켜보면 계산기가 나오는 것을 볼 수 있다. 혹시 OEP를 찾는 문제라면 패킹이 되어있을까 하는 마음에 PEID로 열어봤는데 역시나 UPX패킹이 되어있었다. 이번에는 다른 방법으로 OEP를 찾아보도록 하겠다. UPX패킹은 POPAD아래의 점프문부분이 OEP를 가르키고 있으므로, 01012475가 OEP인 것을 알 수 있었다.
Basic RCE L07 컴퓨터 C 드라이브의 이름이 CodeEngn 일경우 시리얼이 생성될때 CodeEngn은 'ß어떤것'으로 변경되는가 실행시키면 위와 같은 화면이 나오고, 체크버튼을 통해 인증을 하는 방식이다. 올리디버거를 통해 열어본다. 스트링 검색(우클릭 - Search for - All referenced strings)을 통해 문자열을 확인할 수 있었고, 위에서 GetDlgItemTextA는 텍스트의 길이를 반환해준다. 해당주소에 BP(F2)를 걸고, F9를 눌러 실행을 한다. BP에 걸려 해당주소까지만 실행이 되고, 실행창이 뜨면 CodeEngn을 적고 체크를 누른다. F8을 눌러 올리디버거에서 한 줄씩 실행하다보면 EAX에 8이 담기는 것을 볼 수 있고, 그 다음으로 GetVolumeIn..
Unpack을 한 후 Serial을 찾으시오. 정답인증은 OEP + Serial Ex) 00400000PASSWORD 패킹이 된 파일이기 때문에 PEID로 바로 열어보았다. ( PEID는 CodeEngn Basic RCE L05 풀이에서 다운로드 가능 ) 이 프로그램 또한 L05와 같이 UPX로 패킹된 것을 알 수 있었고, 똑같이 언패킹을 진행해준다. ( UPX는 CodeEngn Basic RCE L05 풀이에서 다운로드 가능 ) 언패킹을 하고, 올리디버거로 열어본다. OEP는 00401360인 것을 볼 수 있었고, 스트링 검색을 통해 시리얼 값을 알 수 있었다. OEP+시리얼값으로 인증을 한다.
Basic RCE L05 이 프로그램의 등록키는 무엇인가 프로그램안의 등록키를 알아내는 문제이다. 압축을 풀고 실행파일을 실행시켜본다. Register now !를 누르면 잘못된 시리얼이라고 나온다. 이제 올리디버거로 열어본다. 대책없이 올리디버거로 열어봤지만 검색을 통해 얻고자하는 결과가 나오지않았다. 패킹이 된 파일인 것 같아 PEID로 열어보았다. 역시나 UPX로 패킹이 된 파일이었고, 언패킹툴을 통해 언패킹을 진행하였다. 위와같은 옵션을 이용하여 언패킹을 진행한다. upx.exe를 cmd를 통해 실행해야만 한다. ex ) upx 파일명.exe -d 언패킹을 하고, PEID로 다시 열어보았다. 언패킹이 된 것을 볼 수 있었고, 다시 올리디버거로 열어보았다. 스트링 검색을 통해 시리얼 값을 확인할 수..
Basic RCE L04 이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가 압축파일을 다운로드 받는다. 암호는 항상 codeengn이다. 5번 문제부터는 암호가 바뀌지 않는 이상 적지 않겠다. 실행을 해보면 정상으로 나오는데 문제가 디버그 프로그램 탐지인 것으로 보아 디버그 툴을 키면 비정상으로 나올 것이라고 예상해볼 수 있다. 예상과 비슷하게 디버깅 당함이라는 문자를 출력하는 것을 볼 수 있다. 올리디버거를 통해 함수를 검색해본다. IsDebuggerPresent라는 함수가 디버그를 탐지하는 것으로 예상해볼 수 있었고, 구글을 통해 검색을 해보았다. 역시나 IsDebuggerPresent라는 함수는 디버깅하는지 확인해주는 함수였다.