Wargame/CodeEngn

    Basic RCE L04

    1. intro 2. code 및 분석 2.1. code N/A 2.2. 분석 이번에는 바이너리를 실행해봤다. 정상이라는 문구만 반복적으로 출력된다. 그냥 ida로 열어서 graph overview부터 봤다. 일단 이것도 대놓고 있다;;; 3. exploit 3e8 m.s sleep 과 함께 chkesp 함수와 IsDebuggerPresent 함수를 실행하며 esi, esp를 지속적으로 비교해서 디버거가 실행 중인지 확인한다.

    Basic RCE L03

    1. intro 2. code 및 분석 2.1. code N/A 2.2. 분석 포기하지 않고 이번에도 ida로 까봤다. 잘 실행된다 ㅋㅋㅋ 문제에서는 비주얼베이직에서 스트링 비교 함수 이름을 묻는다. 검색하면 안돼? StrComp function (Visual Basic for Applications) | Microsoft Learn StrComp function (Visual Basic for Applications) Office VBA reference topic learn.microsoft.com 안됨 ㅋㅋㅋㅋ 분석해보자 함수부터 봤는데 으음? 비교 함수가 그냥 대놓고 있네? 3. exploit 원래 의도는 이게 아니었을거다 ㅋㅋㅋ ida에서 프로세스 트리를 좀 봤다. 여기서와 같이, ebp - 5..

    Basic RCE L02

    1. intro 2. code 및 분석 2.1. code N/A 2.2. 분석 와... 이럴수도 있구나... 파일을 ida로 열었더니 데이터들이 손상된건 알겠지만, 파일 길이가 영 이상하다. PE 구조에 대해서 조금 검색해봤는데, .text .data .rsrc .reloc 뒤에는 해당 섹션의 시작점 및 크기가 적혀있다고 한다. 딱 하나만 보자면 .text 영역의 값은 아래와 같다. 여기서 두번째줄 오른쪽 8바이트를 보면 00 02 00 00 00 04 00 00 이 있는데, 이는 0x400이 시작점이고 그 크기가 0x200 이라는 의미이다. 즉, text 영역만 봐도 0x600까지는 데이터가 있어야 한다는 말이다. 그래서 혹시나하여 hex editor로 파일을 열어봤더니 역시 뒤에 데이터가 더 있었다...

    Basic RCE L01

    1. intro 2. code 및 분석 2.1. code 대충 트리만 보자. 2.2. 분석 잠시 쉬었다가 다시 하는 리버싱. 추천 받아서 한번 풀어본다. 두번째 loc_401021 에서 eax와 esi를 비교해서 jz 즉, 같으면 loc_40103D로 분기해서 messagebox를 띄워준다. 그게 아니라면 에러 메시지와 함께 loc_401050으로 점프해서 종료된다. 3. exploit 문제에서는 GetDriveTypeA의 return 값을 묻고 있다. 비교 구문에서 esi의 값을 보았더니 0x00401003 이길래 앞에 dec eax가 2개 있어서 0x00401005를 키로 넣었는데 안되네? 10진수로 넣었는데도 안되네? 그냥 5를 넣었더니 되네? 뭐지?