CodeEngn Advance RCE의 02번 문제입니다. 정답을 구하라고 하네요. 프로그램을 실행시켜보면 패스워드를 입력받습니다. 올리디버거로 열어서 분석해보겠습니다. "Enter Password: "를 출력하고 004012D2에서 문자열을 입력받고 있습니다. 계속 밑으로 내려가 보겠습니다. 루틴 하나를 지나고 004013C5에서 EDX를 호출하여 프로그램을 종료시킵니다. F7키를 이용하여 EDX 안으로 들어가 보겠습니다. ECX와 특정 값들을 비교하고 ZF가 0이라면(ECX와 비교하는 값이 다르다면), 0012F88A로 점프하고 있습니다. 0012F88A로 점프하고 한 줄씩 실행시키다 보면 ECX를 호출해서 프로그램을 종료시켜버립니다. 그렇다면 위에서 ECX와 비교하는 값들을 문자로 변환시키고 패스워..
이번에 프로젝트 하면서 알게된 내용을 정리해봅니다! 연결 리스트(Linked List)란? 연결 리스트(Linked List)란, 자료구조의 일종으로 말 그대로 어떤 데이터를 저장할 때 그다음 순서의 자료가 있는 위치를 데이터에 포함하는 방식으로 자료를 저장합니다. 배열이 자료에 순번을 메겨 맞춘다면, 연결 리스트는 자료의 순서에 맞춰 연결합니다. 그렇기 때문에 배열과는 달리 새로운 자료, 노드를 뒤에 연결하거나 중간에 끼워 넣는 것이 쉽습니다. 그러나 배열에는 자료마다 고유의 번호가 있어서 사용자가 원하는 특정한 자료를 불러내기가 편한 반면에 연결 리스트는 자료마다 고유의 번호가 없어서 특정한 자료, 노드를 불러내기가 어렵다는 점이 있습니다. 단순 연결 리스트는 다음 노드에 대한 참조만을 가진 가장 단..
CodeEngn Advance RCE의 01번 문제입니다. 프로그램이 몇 밀리세컨드 후에 종료되는지를 묻고 있습니다. 문제 파일을 실행시켜보니 이런 화면이 나타납니다. PEID로 보겠습니다. UPX로 패킹 되어있네요. 언패킹 한 후 올리디버거로 열어서 분석하겠습니다. 모든 timeGetTime 함수에 BP를 걸었습니다. 윈도우가 시작되고 난 뒤 지난 시간을 DWORD형 데이터로 얻는 timeGetTime 함수는 윈도우가 시작되고 난 뒤의 시간을 리턴합니다. 리턴값은 보통 EAX에 저장됩니다. EAX와 비교하는 부분을 찾아야겠네요. EAX와 비교하는 구문을 찾았습니다. DWORD PTR DS : [EBX+0x4]에 있는 값인 337B와 EAX를 비교해서 같으면 프로그램이 종료됩니다. 337B를 10진수로 ..
- Total
- Today
- Yesterday
- Level 03
- Unity
- Level 01
- C#
- xcz.kr
- unity2d
- Basic RCE
- HackingCamp
- Advance RCE
- CodeEngn
- pwnable
- Programming
- 유니티
- 멘토링
- 17th HackingCamp CTF
- wargame
- 안드로이드 멘토링
- Level 02
- Level 04
- c++
- Write-up
- Reversing
- ftz
- reversing.kr
- hackerschool
- Android
- 안드로이드
- Level 05
- 풀이
- Level 06
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |