Dream Beginners 과정 진행상황

 

오늘의 진행 내역 

How to use

1 Wargame

-워게임에 대한 설명이였다. 

워게임의 카테고리는 포너블(pwnable, system hacking), 웹(web), 리버스 엔지니어링(reversing), 암호학(crypto), 포렌식(forensic)이 있는데 DreamHack에서의 커리큘럼을 봤을 때,

보안에서 나눠진 대로 워게임도 나눠진 듯함 

https://dreamhack.io/wargame/challenges/812

 

Exercise: Welcome-Beginners

Description Wargame 실습을 위한 문제입니다. "Dreamhack"을 입력하여 플래그를 획득하세요! 플래그의 형식은 DH{...} 입니다.

dreamhack.io

문제풀이에 대한 예시

 

2 Lecture

- 사이트에서 들을 수 있는 강의들에 대한 정보

3 Community

- 사이트의 커뮤니티와 공식 디스코드에 대한 안내 

링크를 통해 공식 디스코드에 참여했다.

4 CTF

- Capture The Flag의 약자. 지금 계획하고 있는 커리큘럼이 끝나고 워게임에 익숙해졌을 때, CTF에 한번 참여해보는게 목표이다 

 

Environment Setup

 

1. Virtual Machine

- Virtual Box를 이용하여 Ubuntu와 Windows10 가상 환경을 만들어봄 

 

 

DH101

1. 컴퓨터 과학 기초

-  바로 해킹에 대한 공부가 아닌 기본적으로 정리하고 넘어가야 할 것들에 대한 설명이 있다 
진법, 비트와 바이트 , 비트 연산 , 인코딩 , 디코딩 , 운영체제

2. 리눅스 사용법 

- 기초적인 명령어에 대한 정리 

열기 , 닫기와 같은 모르면 리눅스를 사용할 수 없는 명령어들을 요약해줬다

3. 코딩

- VS code에 대한 설명과 설치 방법 뒤에는 C로 간단한 코드를 작성하여 컴파일 한다

- Vim에 대한 설명도 있음

4. System Hacking , Reverse Engineering , Web Hacking , CrytoGgraphy 101

- 처음 입문하는 나같은 사람이라면 어떤 걸 할지 정할 때 이 코스에서 각 분야의 설명을 보고 진입하는 것을 추천함.

- System Hacking을 하려고 했었는데 글을 읽고 나니 다시 생각하게 됨

Tips

1.NC

2.SSH

3.Docker

4.정규 표현식 (regex)

5.구글링

6.Markdown

7.Tools

Custom Editor

스크립트가 기능을 하는지 확인하기 위해 
void Start(), Update()나 상호작용을 통해 스크립트를 실행하여 확인했습니다.


크게 불편하지 않았지만 이번에 맵 오브젝트를 생성하며  0.8 X 0.8의 타일을 수작업으로 생성하다가 
20개를 만들 때, 이건 아니다 싶어 유니티의 기능을 찾아보고 정리하게 되었습니다.

 

 

여기서도 예시로 타일 설치로 해보겠습니다.

1.스크립트 준비 

우선 타일을 자동 생성하는 스크립트를 작성합니다. ( ObjectPlacer.cs )

 

using UnityEngine;

public class ObjectPlacer : MonoBehaviour
{
    public GameObject objectToPlace; // 배치할 오브젝트의 프리팹
    public int numberOfObjects = 10; // 생성할 오브젝트 수
    public float spacing = 0.8f; // 오브젝트 간의 간격

    // 이 메서드를 호출하여 오브젝트 배치 시작
    public void PlaceObjects()
    {
        // spacing 간격으로 세로 추가
        for (int i = 0; i < numberOfObjects; i++)
        {
            // 새 오브젝트의 위치 계산
            Vector3 position = new Vector3(0, i * spacing, 0);

            // 오브젝트 인스턴스화 및 배치
            GameObject newObject = Instantiate(objectToPlace, position, Quaternion.identity);
            newObject.transform.parent = this.transform; 
        }
    }
}

 

2. 스크립트 할당

 

 

스크립트를 배치하고자 하는 오브젝트(예: 빈 게임 오브젝트)에 할당합니다.

그 다음 인스펙터에서 Object To Place 필드에 배치할 오브젝트의 프리팹을 드래그합니다.

 

3.커스텀 에디터 스크립트 사용하기

Unity 에디터에서 Assets/Editor 폴더 내에 새 C# 스크립트를 생성합니다. 폴더가 없다면 만들어주세요. 스크립트의 이름을 ObjectPlacerEditor.cs 같은 것으로 지정합니다.

 

아래의 커스텀 에디터 스크립트 코드를 ObjectPlacerEditor.cs 파일에 복사합니다.

 

 

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(ObjectPlacer))]
public class ObjectPlacerEditor : Editor
{
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector(); // 기본 인스펙터 UI를 그리기

        ObjectPlacer script = (ObjectPlacer)target; // 현재 인스펙터의 대상 스크립트를 가져옴

        // 버튼 UI 추가
        if (GUILayout.Button("Place Objects"))
        {
            script.PlaceObjects(); // 버튼 클릭 시 PlaceObjects 메서드 실행
        }
    }
}

 

 

이 스크립트는 ObjectPlacer 타입의 오브젝트에 대해 커스텀 인스펙터를 생성하고, "Place Objects"라는 버튼을 인스펙터에 추가합니다. 이 버튼을 클릭하면 PlaceObjects 메서드가 실행됩니다. 

 

4. 실행하기

 

이제 유니티로 돌아가서 ObjectPlacer.cs를 컴포넌트로 가지고 있던 오브젝트를 클릭해 봅시다.

 

Place Objects 버튼이 추가되었다.

Place Objects 버튼을 누르면 ObjectPlacer.cs의 PlaceObjects 함수가 실행되는 것을 확인해 보겠습니다.

 

 

이상으로 간단한 커스텀에디터 사용법을 마무리하겠습니다!

'Unity > 공부' 카테고리의 다른 글

[Unity] Text Mesh Pro 한글 폰트 사용하기  (0) 2024.03.04
[Unity] 폴리 브러쉬(Polybrush)  (1) 2023.11.21

유니티를 실행하고 UI - Text를 생성하고 한글을 넣으면 바로 ㅁㅁㅁ로 나와서 처음 사용할 때 
당황하는 사람들이 많아서 간단하게 사용 방법을 정리했습니다.

 

새로운 프로젝트에서 한글을 사용한 경우

 

1. 폰트 다운로드 받기 

 

아무 폰트나 다운받게 되면 문제가 생길 수 있으니 배포하는 폰트의 약관을 잘 읽어보고 사용해야 합니다.
메이플스토리 폰트는 규정을 준수한다면  모두가 사용할 수 있게 열려있으니 ,  사용 조건 및 지적 재산권을 한번 읽어보시고 사용하시면 됩니다 

 

https://maplestory.nexon.com/Media/Font

 

서체 | 미디어 | 메이플스토리

 

maplestory.nexon.com

 

 

 

저는 윈도우를 사용하니 TTF 윈도우용을 다운로드 받겠습니다.

 

 

 

다운로드 완료 후 프로젝트 내에 넣어주시면 다음과 같이 로드됩니다.

 

 

2. 폰트 적용하기 

 

유니티 상단의 메뉴바에서 Window - Text Mesh Pro - Font Asset Creator를 열어줍니다.

 

 

 

사용하실 폰트를 선택하고 파란색으로 표시된 Save를 눌러주면 유니티에서 사용 가능한 형태로 폰트가 생성됩니다.

 

1. 생성된 폰트를 클릭한 뒤 Inspector 탭에서 Atlas Population Mode를 Static에서 Dynamic으로 변경해줍니다 .

2. Sampling Point Size 는 60정도로 설정해줍니다.

 

폰트 변경 후 Scene 뷰에서 적용 확인 

 

한글이 깨지는 UI로 가서 Font Asset을 생성했던 폰트로 바꿔주면 바로 적용 된 것을 확인 가능합니다!

 

'Unity > 공부' 카테고리의 다른 글

[Unity] CustomEditor 에디터에서 스크립트 실행하기  (0) 2024.03.05
[Unity] 폴리 브러쉬(Polybrush)  (1) 2023.11.21

https://www.yes24.com/Product/Goods/85015681

 

[전자책]글로벌 트렌드 2020 - 예스24

美 대통령과 보좌관들이 참고하는 미래보고서 『글로벌 트렌드 2020』『글로벌 트렌드Global Trends』국가정보위원회the National Intelligence Council가 1997년부터 4년마다 발간해온 것으로, 미국 대통령을

www.yes24.com

 

 

미국 국가정보위원회(National Intelligence Council, NIC)가 발행한 "글로벌 트렌드 2020"은 향후 20년간 세계를 형성할 주요 동향과 도전 과제를 전망하는 광범위한 보고서입니다. 이 보고서는 다양한 분야의 전문가들이 광범위한 데이터 분석과 전문가 의견을 종합하여 작성한 것으로, 정치, 경제, 사회, 기술, 환경 등 여러 측면에서의 미래 변화를 예측합니다.

 

2005년의 관점에서 2020년까지의 미래변화를 예측한 책으로 2024년에 읽는 것이 이상하게 느껴질 수 있으나

과거의 관점에서 2020년도까지의 변화를 예측한 것과 실제로 2020년도까지의 흐름을 비교하는 게 흥미로울 것 같아서 구입해서 읽어봤습니다.

 

 

이 책을 읽으며 과거의 전망과 현재의 현실 사이에서 발생한 일치와 차이를 관찰하는 것은 굉장히 흥미로운 경험이었습니다. "글로벌 트렌드 2020"은 단순히 미래를 예측하는 것을 넘어서, 그 예측이 실제로 얼마나 현실과 부합하는지를 평가하는 데 있어 중요한 자료가 됩니다. 또한, 이 책은 미래를 준비하는 방식에 대한 귀중한 통찰력을 제공하며, 변화하는 세계에서 우리가 어떻게 적응하고 대응해야 하는지에 대한 중요한 논의를 촉진합니다.

 

2020년까지의 예측을 읽어보았고 , 이 다음에는 글로벌 트렌드 2040을 읽어보려고 합니다.

 

 

'일상 > 책 리뷰' 카테고리의 다른 글

[책 리뷰] 해커 활약사  (0) 2023.11.10

유니티의 폴리 브러쉬(Polybrush)는 3D 모델에 직접 조각하거나 텍스처를 적용하는 등의 작업을 할 수 있는  툴입니다. 이 도구를 사용하면 유니티 내에서 직접 모델의 형태를 변경하거나 표면에 다양한 효과를 적용할 수 있어, 레벨 디자인과 세부 조정에 매우 유용합니다.

 

주요 기능 

 

1.조각(Sculpting)

3D 모델의 형태를 직접 조각할 수 있습니다.

예를 들어, 지형을 조정하거나 모델에 돌출부나 오목한 부분을 만들 수 있습니다.


2.텍스처 적용(Texture Painting)

모델의 특정 부분에 다양한 텍스처를 적용할 수 있습니다.

이는 복잡한 텍스처 작업을 유니티 내에서 직접 처리할 수 있게 해줍니다.


3.정점 색상(Vertex Coloring)

모델의 정점에 색상을 적용하여 더욱 풍부한 시각적 효과를 낼 수 있습니다.


4.브러쉬 설정

다양한 브러쉬 설정을 통해 조각, 텍스처 적용, 정점 색상 작업의 세밀함을 조절할 수 있습니다.

 

! 사용전 주의사항 !


폴리 브러쉬는 모델의 메시를 직접 변경하기 때문에, 작업 전에는 반드시 모델을 백업하는 것이 좋습니다.
복잡한 모델에 폴리 브러쉬를 사용할 때는 성능에 영향을 줄 수 있으므로, 최적화를 고려해야 합니다.

 

 

 

사용 하기 

 

 

1. 설치하기 

 

1. 유니티에서 Window - Package Manager를 열어줍니다.

2. Packages : In Project로 설정되어 있는데  Unity Registry로 변경하여 줍니다.

3. 검색창에 Polybrush를 검색하고 Install을 눌러주면 설치까지는 완료 됩니다.

 

 

 

설치가 완료되셨다면, 위 사진을 참고하여 Tool - Polybrush - Polybrush Window를 눌러 Polybrush 탭을 열어줍시다 !

 

 

 

Brush Setting 

본인이 커스텀 한 brush를 세이브로 저장하고 언제든 불러 올 수 있습니다.

 

Outer Radius

 

브러쉬의 전체 크기를 결정합니다. 

즉, 브러쉬가 영향을 미칠 수 있는 최대 범위를 나타냅니다. 

Outer Radius가 크면 브러쉬는 더 넓은 영역에 영향을 미칩니다.

 

Inner Radius 

 

브러쉬의 중심 부분에서 가장 강력한 영향을 미치는 영역의 크기를 결정합니다.

Inner Radius가 작으면 브러쉬의 중심 부분에서 더 강한 효과를 볼 수 있으며, 반대로 크면 더 부드러운 효과를 얻을 수 있습니다.

 

Strength 

 

브러쉬의 강도를 결정합니다. 

이 값이 높을수록 브러쉬를 적용할 때 변화가 더 뚜렷하고 빠르게 나타납니다. 

예를 들어, 조각 작업에서는 더 깊은 자국을 남길 수 있고, 텍스처 적용에서는 색상이 더 강하게 드러납니다.

 

Falloff Curve 

 

브러쉬의 중심에서 외곽으로 갈수록 효과가 어떻게 감소하는지를 나타내는 곡선입니다. 

Falloff Curve를 조절하면 브러쉬의 영향력이 중심에서부터 바깥쪽으로 어떻게 줄어드는지를 세밀하게 제어할 수 있습니다. 부드러운 경사를 만들기 위해 완만한 곡선을 사용할 수도 있고, 더 갑작스러운 변화를 위해 가파른 곡선을 설정할 수도 있습니다.

 

 

 

다음으로 Polybrush의 5가지 탭에 대해서 알아보겠습니다.

 

왼쪽부터 순서대로 알아보죠

 

1. Sculpt  on meshes

 

3D 모델의 메시(mesh)를 직접 조작하여 형태를 변경하는 과정입니다. 

이 기능은 브러시를 사용하여 모델의 표면을 추가하거나 제거하고, 모양을 매끄럽게 하거나, 특정 특징을 강조하는 데 사용됩니다.

 

2. smooth mesh geometry

 

 3D 모델의 메시를 부드럽게 다듬어서 더 매끄럽고 자연스러운 형태로 만드는 데 사용됩니다. 

이 기능은 모델링 과정에서 생긴 날카로운 모서리나 거친 표면을 부드럽게 처리하는 데 특히 유용합니다.

 

3. paint vertex colors on meshes

 

메시의 각 정점(vertex)에 색상을 적용하는 과정입니다. 

이 기능은 복잡한 텍스처 맵핑 없이도 모델에 시각적인 변화를 줄 수 있으며, 각 정점의 색상 정보를 사용하여 다양한 시각적 효과를 만들어낼 수 있습니다.

 

4. scatter prefab on meshes

 

특정한 3D 모델(프리팹)을 메시 위에 무작위로 배치하는 기능입니다. 이는 환경 구성, 특히 자연 환경에서 나무, 돌, 식물 등을 실감나게 배치할 때 매우 유용합니다.

 

5. Paint texture on meshes

 

3D 모델의 표면에 직접 텍스처를 적용하는 것을 가능하게 합니다. 

이 기능은 유니티 에디터 내에서 캔버스에 그림을 그리듯이 모델에 텍스처를 칠하는 작업을 포함합니다.

Dreamhack Begginer 강의중 "리눅스 사용법" 강의에서 나온 문제입니다.

 

문제 설명을 먼저 봅시다.

 

리눅스 명령어를 실행하는 웹 서비스라고 합니다. begginer 문제이기 때문에 ls, cat 두개로 풀 수 있을 것입니다.

 

 

파일을 실행해서 페이지의 구조를 먼저 알아 본다음에 서버 생성하기를 통해 웹페이지로 들어가 보겠습니다.

 

 

명령어를 실행해주는 웹 서비스 페이지 입니다. 가장 먼저 해봐야할 것은 디렉토리 확인입니다.

 

 

바로 FLAG가 나오진 않고 hint.txt가 나오네요. cat 명령어를 사용하여 읽어봅시다!

 

 

 

힌트를 확인하고  ./dream/hack/hello에 들어갔습니다.

 

flat.txt라는 파일이 있네요. 

 

 

cat 명령어를 통해 flag.txt를 열어보니 FLAG값을 찾았습니다. 

 

리눅스 기본 명령어를 알고 있는지 물어보는 문제였네요 :)

'해킹 & 보안 > Misc' 카테고리의 다른 글

[dreamhack.io] 64se64 문제  (1) 2023.11.17

 

Dreamhack Begginer 강의중 "컴퓨터 과학 기초" 강의에서 나온 문제입니다.

 

난이도는 Beginner 문제이므로 강의만 들었다면 어렵지 않게 풀 수 있습니다.

 

우선 문제 설명을 봅시다!

 

 

문제 설명을 보니 이전 Beginner 문제들 처럼 크롬 개발자도구(F12)로 간단하게 풀 수 있을것 같습니다.

 

파일을 다운로드하니 index.html 한개만 있습니다.

 

힌트가 없으니 문제 설명대로 소스 코드를  확인해보죠

 

 

Base64 포맷으로 값이 숨겨져 있습니다. 

 

값을 디코딩하니 다음과 같은 값이 출력됩니다.

 

 

 

파이썬으로 작성되었다고 합니다.

 

실행해서 결과를 받아봅시다! 

 

 

 

정답이 나왔습니다 :)

'해킹 & 보안 > Misc' 카테고리의 다른 글

[dreamhack.io] baby-linux 문제  (0) 2023.11.17

 

저번에는 cookie를 풀었으니 그 다음으로 많은 사람이 푼 문제인 devtools-sources를 해봤습니다.

 

문제 설명을 먼저 읽어 봅시다.

 

 

개발자 도구를 열 수 있는지 확인하는 문제같습니다.

 

다운로드해서 파일을 한번 열어보겠습니다.

 

아무 html이나 선택해서 열어본 다음에 문제 설명을 참고하여 크롬 개발자 도구(F12)를 켠 후 

Ctrl + Shift + F 로 파일 전체 검색으로 플래그를 검색했습니다.

 

 

워낙 쉬운 문제여서 간단하게 풀었네요 :) 

'해킹 & 보안 > Web' 카테고리의 다른 글

[dreamhack.io] cookie 문제  (1) 2023.11.12
[Webhacking.kr]17번 문제  (0) 2023.11.10
[Webhacking.kr]14번 문제  (0) 2023.11.10
[Webhacking.kr] 1번 문제  (0) 2023.11.10

Dreamhack 사이트에서 처음 풀어보게된 문제입니다.

 

Beginner - web 에서 가장 많은 사람이 풀었다는 문제이기 때문에 바로 풀어보기로 하였습니다.

 

문제 파일을 받아서 코드를 먼저 살펴봅시다 !

 

 

 

ID : 'guest' , PW : 'guest'인 계정과 

ID : 'admin' , PW : FLAG 계정이 있는 것을 확있했습니다.

 

FLAG의 값을 알지 못하니  guest로 로그인을 해줍니다.

guest로 로그인하니 admin이 아니라고 나오는 모습

 

cookie에 guest의 Value를 가진 아이디가 생성되었습니다.

 

이 값을 admin으로 바꾸면 되지 않을까? 하는 생각으로 시도해보았습니다.

 

 

생성된 cookie에서 guest라고 등록된 계정의 값을 임의로 admin으로 바꾸고 새로고침 해봅시다.

 

FLAG 값이 출력되는 걸 확인 할 수 있습니다.

 

'해킹 & 보안 > Web' 카테고리의 다른 글

[dreamhack.io] devtools-sources 문제  (1) 2023.11.16
[Webhacking.kr]17번 문제  (0) 2023.11.10
[Webhacking.kr]14번 문제  (0) 2023.11.10
[Webhacking.kr] 1번 문제  (0) 2023.11.10

https://webhacking.kr/challenge/js-4/

 

Challenge 17

 

webhacking.kr

들어갔을 때 익숙한 화면이다. 

 

이번에도 역시 크롬 개발자도구(F12)를 눌러 스크립트를 확인해보자

 

익숙한 페턴이다. 낮은 배점부터 풀고 있어서  비슷한 유형이 나오는 것같다.

 

스크립트에 써있는 정보를 통해 inputbox에 unlock 값을 입력하면 되는 간단한 문제이다.

 

100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+1/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10+100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10-100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10+9999999 를 구글을 통해 복사 붙여넣기 하여 풀어봤다.

 

값을 넣고 check 버튼을 눌러보자!

성공 :)

17번 문제를 풀어서 10점을 받아 총 40점이 됐다.

 

300등 랭크인까지 1605점 😎😎

'해킹 & 보안 > Web' 카테고리의 다른 글

[dreamhack.io] devtools-sources 문제  (1) 2023.11.16
[dreamhack.io] cookie 문제  (1) 2023.11.12
[Webhacking.kr]14번 문제  (0) 2023.11.10
[Webhacking.kr] 1번 문제  (0) 2023.11.10

+ Recent posts