CodeEngn Challenge
Checkin List
최근 인증 기록을 확인할 수 있습니다. 공개 별칭과 코멘트만 표시됩니다.
Public record
최근 인증 페이지당 50건
24,553건의 공개 인증 기록 · 341 / 492 페이지
| Checkin time | Name | Level | Comment | Point |
|---|---|---|---|---|
| 2015-03-03 03:10:52 | symnoisy | Basic L05 | Challenges : Basic 05 Author : Acid Bytes [CFF] Korean : 이 프로그램의 등록키는 무엇인가 English : The registration key of this program is? 문제는 굉장히 쉽게 풀었다. UPX 패킹이 되있으므로, 유틸을 사용해서 언팩을 해주던가, 가내수공업으로 언팩을 해주는 방법 두가지가 있겠다. 따로 설명은 안하겟고, 맨마지막 jmp 부분에 브레이크를 걸어주고 덤프를 뜬다던가, UPX 의시작점 부분에서 ESP 의값을 하드웨어 브레이크를 걸어주고 덤프를 떠준다. 유틸사용이야 말해봐야 입아플거같고, 이프로그램은 키값과 동시에 Name 부분의 란이 따로 존재한다. UPX를 언패킹해주면,시리얼 키를 EDX 레지스터에 넣고 CMP하는 구문이있다. 따로 브레이크를 걸필요없이, 노출되어있어서 쉽게 찾을수 있었다. 코드엔진에서 물어보는 키값은 이것(등록키)이지만, 원래의 본프로그램의 경우, 키값을 맞춤과 동시에 그에 맞는 name 값을 input으로 넣어줘야 한다. serial키 부분보다는 name 부분에 좀더 신경을 쓴 프로그램 같다 우선, 해당 프로그램이 어떤 루틴을 갖는지 분석을 해보면(UPX를 언패킹 해서 OEP에 접근했을때 부터의 이야기이다) 1)name의 input이 있는지 없는지 에 따라 분기한다 2) serial 값이 있는지 없는지에 따라 또한 분기한다. 3)Register User 부분인데 이 아래에 존재하는 CALL 0x00403B2C에 암호화 루틴이 존재한다 4)name의 input 값이 맞는지 아닌지에따라 성공 실패 분기문이 갈린다. 5)serial 값이 맞는지 아닌지에 따라 성공 실패 분기 문이 갈린다 주석을 첨가한 약간의 코드를 첨부한다.(name 루틴부분을 분석할까 했는데 귀찮아서 안함 ㅡㅡ;나중에 심심할때 해보겟음 ) | 9 |
| 2015-03-03 02:29:49 | soohyun0504 | Basic L20 | - | 39 |
| 2015-03-03 02:29:10 | symnoisy | Basic L04 | Challenges : Basic 04 Author : CodeEngn Korean : 이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가 English : This program can detect debuggers. Find out the name of the debugger detecting function the program uses. 원래 알고 있는 함수이지만, 확실한지 검증해보기 위해서 프로그램을 실행시킨뒤 확인해보았다. intermodular call 부분을 확인하다보면, 다음과 같은 API 를 발견할 수 있다 딱히 시간을 쓸 필요는 없는 문제였다. | 7 |
| 2015-03-02 23:32:56 | soohyun0504 | Basic L19 | - | 37 |
| 2015-03-02 05:42:45 | soohyun0504 | Basic L18 | - | 35 |
| 2015-03-02 04:56:36 | soohyun0504 | Basic L17 | - | 33 |
| 2015-03-02 02:58:18 | soohyun0504 | Basic L16 | - | 31 |
| 2015-03-02 02:42:55 | soohyun0504 | Basic L15 | - | 29 |
| 2015-03-02 02:06:41 | soohyun0504 | Basic L14 | - | 27 |
| 2015-03-02 00:06:42 | soohyun0504 | Basic L13 | - | 25 |
| 2015-03-01 23:33:24 | soohyun0504 | Basic L12 | - | 23 |
| 2015-03-01 20:31:57 | soohyun0504 | Basic L11 | - | 21 |
| 2015-03-01 19:23:02 | e32592 | Basic L08 | 인증 | 15 |
| 2015-03-01 12:07:45 | e32592 | Basic L06 | 인증합니다. | 11 |
| 2015-03-01 04:55:53 | soohyun0504 | Basic L09 | - | 17 |
| 2015-02-28 23:21:37 | soohyun0504 | Basic L08 | - | 15 |
| 2015-02-28 23:03:28 | soohyun0504 | Basic L07 | - | 13 |
| 2015-02-28 22:28:36 | soohyun0504 | Basic L06 | - | 11 |
| 2015-02-28 21:03:27 | soohyun0504 | Basic L05 | - | 9 |
| 2015-02-28 20:03:33 | soohyun0504 | Basic L04 | - | 7 |
| 2015-02-27 21:48:35 | K3is3r | Crypto L02 | crypto02 | 7 |
| 2015-02-27 21:28:11 | INSECT.B | Malware L01 | - | 5 |
| 2015-02-27 02:11:26 | symnoisy | Basic L03 | 맨처음에 함수 이름물어보길래 그냥 strcmp쓰면되는줄 알았는데 알고보니 밑에 실행파일이있다. 실행파일을 열어보면 crackme 문제와 비슷하게 키값을 인증하는 문제이다. 아마도 흰트를 아래와 같이 준 이유는 해당 함수에 브레이크를 걸라고 저렇게 준거같다. strcmp 함수에 브레이크를 걸어주고 run 해준뒤, 임의의 값을 넣어준다. (왜냐하면,strcmp() 함수자체가 , 파라미터 1과 파라미터 2 의값을 비교해서 true false를 판별하기때문에, 내가 임의의 값을 넣어준다면, 원래 비교하는 키값을 얻을수 있기 때문이다) 따라서 다음과 같은 결과를 얻을 수있다. 키값은 삭제 했다. 결과적으로 물어본 vba에서의 문자열 비교함수는 위와 같다 | 5 |
| 2015-02-27 01:44:47 | symnoisy | Basic L02 | 문제 2번의 경우도 별내용은 없엇고,실행 파일을 실행해봐도 별다른 특징은 찾을수 없엇지만, 디버거를 붙여보려 했지만, 디버거가 읽어 오지 못하는 것으로 보아, pe헤더에 문제가 있을것으로 예상했다. 따라서, PEView를 이용해서 PE를 보아하니, IMAGE_DOS_HEADER는 보이나, 하위 디렉터리가 없엇다. pe 에서 장난질쳐논것이 분명하고 PE에서 바이너리를 보아하니, Crackme#1 파일을 가지고 장난질 쳐논것 같다. 키값은 PEview를 키고, Crackme#1문제에서 MessageBox()가 호출하는 문자열 뒷부분에 존재한다. | 3 |
| 2015-02-27 01:28:21 | symnoisy | Basic L01 | MSDN에서 GetDriveType() API를 검색해봣는데, 리턴값이 5인경우 CD-ROM을 뜻한다 | 1 |
| 2015-02-26 18:15:33 | K3is3r | Basic L19 | 基础19 | 37 |
| 2015-02-26 18:15:02 | K3is3r | Basic L17 | 基础17 | 33 |
| 2015-02-26 18:14:08 | K3is3r | Basic L09 | 基础9 | 17 |
| 2015-02-26 18:08:52 | K3is3r | Basic L15 | 基础15 | 29 |
| 2015-02-26 18:08:05 | K3is3r | Basic L13 | 基础13 | 25 |
| 2015-02-26 18:06:41 | K3is3r | Basic L12 | 基础12 | 23 |
| 2015-02-26 18:05:59 | K3is3r | Basic L11 | 基础11 | 21 |
| 2015-02-26 18:04:28 | K3is3r | Basic L10 | 基础10 | 19 |
| 2015-02-26 18:03:18 | K3is3r | Basic L08 | 基础8 | 15 |
| 2015-02-26 18:02:38 | K3is3r | Basic L07 | 基础7 | 13 |
| 2015-02-26 17:59:56 | K3is3r | Basic L06 | 基础6 | 11 |
| 2015-02-26 17:58:44 | K3is3r | Basic L02 | 基础2 | 3 |
| 2015-02-26 15:54:26 | ab741208 | Basic L07 | - | 13 |
| 2015-02-26 15:46:38 | ab741208 | Basic L06 | - | 11 |
| 2015-02-26 15:42:08 | ab741208 | Basic L05 | - | 9 |
| 2015-02-26 15:35:29 | ab741208 | Basic L04 | - | 7 |
| 2015-02-26 15:34:05 | ab741208 | Basic L03 | - | 5 |
| 2015-02-26 15:32:34 | ab741208 | Basic L02 | - | 3 |
| 2015-02-26 15:22:14 | ab741208 | Basic L01 | - | 1 |
| 2015-02-26 13:10:14 | kang010330 | Advance L04 | - | 11 |
| 2015-02-26 13:03:57 | kang010330 | Advance L03 | - | 9 |
| 2015-02-26 12:09:07 | kang010330 | Advance L01 | - | 5 |
| 2015-02-26 07:33:19 | soohyun0504 | Basic L03 | - | 5 |
| 2015-02-26 06:00:23 | soohyun0504 | Basic L02 | - | 3 |
| 2015-02-26 05:15:01 | soohyun0504 | Basic L01 | - | 1 |