CodeEngn Challenge

Checkin List

최근 인증 기록을 확인할 수 있습니다. 공개 별칭과 코멘트만 표시됩니다.

Public record

최근 인증 페이지당 50건

24,520건의 공개 인증 기록 · 340 / 491 페이지

Checkin timeNameLevelCommentPoint
2015-03-10 09:55:35inhackAdvance L04b11
2015-03-09 01:59:27soohyun0504Advance L09-21
2015-03-06 18:06:28revers3rAdvance L101023
2015-03-05 22:36:29revers3rAdvance L09짱짱21
2015-03-05 21:08:43kang010330Advance L05-13
2015-03-05 14:53:05677345Advance L0567734513
2015-03-05 14:44:163265754874Advance L0332657548749
2015-03-05 14:16:30shortcodeCrypto L02-7
2015-03-05 13:49:39godkadCrypto L01-5
2015-03-04 22:59:51asdasdasdasdBasic L11asdasdas21
2015-03-04 20:03:46symnoisyBasic L06Challenges : Basic 06 Author : Raz0r Korean : Unpack을 한 후 Serial을 찾으시오. 정답인증은 OEP + Serial Ex) 00400000PASSWORD English : Unpack, and find the serial. The solution should be in this format : OEP + Serial Ex) 00400000PASSWORD OEP 를 구해주고 serial 또한 구해줘야 하는 문제다. 문제에서 따로 특별한 점은 찾지 못햇지만, UPX로 패킹이 되어있고, 언패킹한후 들어가보면 키값을 비교하는 API 부분이 뭉개져있다 . 따라서 접근할때 실패했을때 나타나는 string인 wrong serial! 이라는 string 을 흰트로 하여 거슬로 올라가 해당 API 를 찾을 수 있었다 . (며칠전에 자다가 풀다가 break 걸어논 부분 부터 다시 이어서한거라 중간에 접근했던 방법이 자세히 기억이 나지를 않는다 ㅡㅡ ;; ) 이 API자체는 compare하는 api 로 param 1,2를 비교하게되는데, 스택의 원본 serial키 값과 내가 넣은 input 값을 비교하게 된다 해당 api 안으로 들어가보면 , 암호화 루틴이 나오게된다. input으로 넣어주면 성공. flag 값은 OEP + Serial 값이다 11
2015-03-04 15:49:26asdfBasic L20-39
2015-03-04 04:30:13soohyun0504Advance L05-13
2015-03-04 04:09:19soohyun0504Advance L04-11
2015-03-03 23:34:30ojsung7Basic L01-1
2015-03-03 06:21:11soohyun0504Advance L03-9
2015-03-03 05:55:56soohyun0504Advance L02-7
2015-03-03 03:10:52symnoisyBasic L05Challenges : 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:49soohyun0504Basic L20-39
2015-03-03 02:29:10symnoisyBasic L04Challenges : 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:56soohyun0504Basic L19-37
2015-03-02 05:42:45soohyun0504Basic L18-35
2015-03-02 04:56:36soohyun0504Basic L17-33
2015-03-02 02:58:18soohyun0504Basic L16-31
2015-03-02 02:42:55soohyun0504Basic L15-29
2015-03-02 02:06:41soohyun0504Basic L14-27
2015-03-02 00:06:42soohyun0504Basic L13-25
2015-03-01 23:33:24soohyun0504Basic L12-23
2015-03-01 20:31:57soohyun0504Basic L11-21
2015-03-01 19:23:02e32592Basic L08인증15
2015-03-01 12:07:45e32592Basic L06인증합니다.11
2015-03-01 04:55:53soohyun0504Basic L09-17
2015-02-28 23:21:37soohyun0504Basic L08-15
2015-02-28 23:03:28soohyun0504Basic L07-13
2015-02-28 22:28:36soohyun0504Basic L06-11
2015-02-28 21:03:27soohyun0504Basic L05-9
2015-02-28 20:03:33soohyun0504Basic L04-7
2015-02-27 21:48:35K3is3rCrypto L02crypto027
2015-02-27 21:28:11INSECT.BMalware L01-5
2015-02-27 02:11:26symnoisyBasic L03맨처음에 함수 이름물어보길래 그냥 strcmp쓰면되는줄 알았는데 알고보니 밑에 실행파일이있다. 실행파일을 열어보면 crackme 문제와 비슷하게 키값을 인증하는 문제이다. 아마도 흰트를 아래와 같이 준 이유는 해당 함수에 브레이크를 걸라고 저렇게 준거같다. strcmp 함수에 브레이크를 걸어주고 run 해준뒤, 임의의 값을 넣어준다. (왜냐하면,strcmp() 함수자체가 , 파라미터 1과 파라미터 2 의값을 비교해서 true false를 판별하기때문에, 내가 임의의 값을 넣어준다면, 원래 비교하는 키값을 얻을수 있기 때문이다) 따라서 다음과 같은 결과를 얻을 수있다. 키값은 삭제 했다. 결과적으로 물어본 vba에서의 문자열 비교함수는 위와 같다 5
2015-02-27 01:44:47symnoisyBasic L02문제 2번의 경우도 별내용은 없엇고,실행 파일을 실행해봐도 별다른 특징은 찾을수 없엇지만, 디버거를 붙여보려 했지만, 디버거가 읽어 오지 못하는 것으로 보아, pe헤더에 문제가 있을것으로 예상했다. 따라서, PEView를 이용해서 PE를 보아하니, IMAGE_DOS_HEADER는 보이나, 하위 디렉터리가 없엇다. pe 에서 장난질쳐논것이 분명하고 PE에서 바이너리를 보아하니, Crackme#1 파일을 가지고 장난질 쳐논것 같다. 키값은 PEview를 키고, Crackme#1문제에서 MessageBox()가 호출하는 문자열 뒷부분에 존재한다. 3
2015-02-27 01:28:21symnoisyBasic L01MSDN에서 GetDriveType() API를 검색해봣는데, 리턴값이 5인경우 CD-ROM을 뜻한다 1
2015-02-26 18:15:33K3is3rBasic L19基础1937
2015-02-26 18:15:02K3is3rBasic L17基础1733
2015-02-26 18:14:08K3is3rBasic L09基础917
2015-02-26 18:08:52K3is3rBasic L15基础1529
2015-02-26 18:08:05K3is3rBasic L13基础1325
2015-02-26 18:06:41K3is3rBasic L12基础1223
2015-02-26 18:05:59K3is3rBasic L11基础1121
2015-02-26 18:04:28K3is3rBasic L10基础1019