일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 유니티
- gameplay ability system
- 게임개발
- stride
- Multiplay
- os
- ability task
- Replication
- level design
- unity
- CTF
- animation
- 게임 개발
- gameplay tag
- listen server
- Unreal Engine
- attribute
- gameplay effect
- C++
- photon fusion2
- 언리얼 엔진
- widget
- 보안
- Aegis
- UI
- MAC
- 언리얼엔진
- rpc
- gas
- local prediction
- Today
- Total
목록2024/12 (51)
Replicated

오브젝트나 연결된 오브젝트의 묶음(오브젝트 그래프)을 바이트 스트림으로 변환하는 과정- 복잡한 데이터를 일렬로 -> 직렬Serialization : 오브젝트 그래프 -> 바이트 스트림Deserialization : 바이트 스트림 -> 오브젝트 그래프 장점- 현재 프로그램 상태를 저장 및 복원 가능 (게임 저장)- 현재 객체 정보를 클립보드에 복사 -> 다른 프로그램에 전송 가능- 네트워크를 통해 현재 프로그램의 상태를 다른 컴퓨터에 복원 가능 (멀티게임)- 데이터 압축, 암호화를 통해 데이터를 효율적이고 안전하게 보관할 수도 있음 직접 구현?- 데이터 레이아웃 (오브젝트가 소유한 다양한 데이터를 변환?)- 이식성 (서로 다른 시스템 간)- 버전 관리 - 성능- 보안- 에러 처리쉽지 않음그냥 언리얼 엔진..

Linux, GOT overwriteELF파일의 다이나믹 링킹과 관련이 있는 내용이다. ELF는 리눅스에서 사용되는 파일 포맷이다. 이 ELF 파일에 .dynamic 섹션이 존재하는데, 여기서 다이나믹 링킹 관련 정보를 관리한다. 다이나믹 링킹 관점에서 보면, 보통 컴퓨터 과학에서 다이나믹(동적)이라는 단어가 나오면, 스태틱(정적)이라는 단어도 같이 나온다. 그리고 스태틱은 런타임 이전에 발생하는 일들에 대해 이야기할 때 쓰고, 다이나믹은 런타임에 발생하는 일들에 대하여 사용한다. 그리고 링킹의 경우는 여러 파일에 나눠진 코드를 하나의 실행 가능한 오브젝트 파일로 합치는 과정을 의미한다. 스태틱 링킹의 경우 실행 가능한 오브젝트 파일을 만드는 경우에, 사용하게 되는 라이브러리 함수들을 그냥 복사해서 가지..

1. UAF Use After Free는 동적 할당과 관련하여 나타난다. 말 그대로, malloc() 같은 함수로 할당해줬던 메모리를 free()로 반환한 다음에 그 메모리에 접근하는 경우 발생한다. CWE-416에 속하는데, 메모리를 해제한 이후에 참조하여 프로그램이 크래시되거나, 예상치 못한 값을 이용하게 되거나, 어떠한 코드의 실행을 야기시킬 수 있다. 실제로 코드를 작성해서 테스트해보면 이미 free된 메모리에 접근이 가능하다. 예를 들어, 이분 검색 트리에서 루트가 가리키는 값을 삭제하고자 했을 때, free만 하면 루트가 가리키는 포인터는 그대로라 문제가 발생할 수 있다. root = NULL; 과 같이 포인터가 가리키지 않도록 처리해야 의도된 결과를 얻을 수 있다. free한 메모리의 처리..

파라미터 위변조?파라미터는 어떠한 특정 값을 저장하여 서버로 전달하는 역할을 한다. 간단히 말해 일반적으로 프로그래밍 할 때 말하는 변수라고 할 수 있다. 그런데 파라미터 위변조에서는 서버로 전달되는 값 변수(파라미터)를 변조하여 서버측에서 이상한 값을 전달받아 악의적으로 동작시키는 공격이다. 완전히 같은 예시는 아니지만, C언어의 구조로 예시를 들면 함수를 콜하면 프로세스의 스택에 리턴 어드레스가 쌓일 것이다. 이것을 버퍼 오버플로우 공격으로 리턴 어드레스를 변조시켜 악의적으로 프로그램의 방향을 비틀 수 있을 것이다. 파라미터 위변조의 경우는 이와 비슷하게 행동에 영향을 미칠 수 있는 특정한 파라미터를 변조해서 공격자의 의도대로 프로그램이 작동되도록 만든다. 그러면 어떤 식으로 악용이 되는지 알아볼 수..

XSS?XSS(Cross-Site Script)란 공격자가 모종의 방법으로 대상이 보는 웹 페이지에 악성 스크립트를 심어놓는 것을 뜻한다. 예를 들어, XSS 대처가 되어 있는 않은 인터넷 게시판에 라는 내용으로 글을 쓰면 HTML 웹 페이지 내에 저 태그가 그대로 들어가서 그 글을 보는 사람에게 "XSS" 메시지를 띄울 것이다. 공격자가 심어놓은 코드가 다른 사람이 보는 웹 페이지에서 실행된 것이다. XSS에는 세 종류가 있다. Stored XSS, Reflected XSS, DOM-Based XSS 세 가지이다. Stored XSS는 게시판에 악성 코드가 심어진 글을 쓰는 예시처럼, 서버에 악성 코드가 Stored 되는 방식이다. 서버에서 저장되어 있는 웹 페이지를 다른 이용자가 요청하면 악성코드..

기본적으로 SQL 인젝션이 무엇인지에 대해 이해가 필요하다. 입력 폼을 받는 곳, 특히 로그인 폼에서 ID 혹은 패스워드를 입력하는 곳에 쿼리를 조작할 수 있게 입력을 하여 데이터베이스에 접근하는 방법이다. ID 입력 부분에 인젝션을 할 경우 [ " or userid = "admin" # ]으로 작성해서 관리자 아이디를 찾고, 비밀번호 입력은 무시하는 것이 가능하다. 비밀번호 입력 부분에 인젝션을 할 경우 [ " or "1" = "1 ]과 같은 방식으로 항상 참으로 만들어서 비밀번호가 틀려도 접근할 수 있게 만드는 것이 가능하다. 물론 양쪽으로 접근하는 것도 가능하다. ID에서 [ admin"/* ] 패스워드에서 [*/ and "1" = "1] 과 같이 중간에 " and password = 부분을 주..

기존 C++ : new, delete 해줘야 함-> 누수, 댕글링 포인터, 초기화되지 않은 포인터 등문제가 많이 발생함 가비지 컬렉션 시스템- 프로그램에서 더 이상 사용하지 않는 오브젝트를 자동 감지하여 회수- 동적으로 생성된 모든 오브젝트 정보를 모아둔 저장소를 사용해 사용되지 않는 메모리 추적- 마크-스윕(Mark-Sweep) 방식의 가비지 컬렉션 - 저장소에서 최초 검색을 시작하는 루트 오브젝트 표기 - 루트 오브젝트가 참조하는 객체를 찾아 마크 - 마크된 객체에서 계속해서 참조하는 객체를 찾아 마크(1로 표시) - 마크되지 않은 객체(0으로 표시) -> 회수(스윕) 언리얼 엔진에선 주기적으로 알아서 작동기본 값 60초, 부하가 좀 있는 작업인데 병렬 처리 및 클러스터링 기능 ..

구조체USTRUCT 매크로 추가하고 (내부에 BlueprintType같은 키워드 추가 가능)내부 상단에 GENERATED_BODY() 추가 (안해도 되긴 하는데 해야 리플렉션, 직렬화 가능)내무 멤버 변수는 UPROPERTY() 매크로 사용* 언리얼 오브젝트가 아니니 F로 시작 사용 용도가 언리얼 오브젝트와는 완전히 다름단순한 데이터 타입에 적합함F로 시작하니까 일반 객체 -> 리플렉션 시스템이 인식 못함대신 내부의 UPROPERTY로 선언된 변수들은 인식함UFUNCTION()은 안됨 대부분 힙 할당 없이 스택 내 데이터로 사용,NewObject()도 지원 안됨하나의 멤버를 UFiled 클래스가 관리UScriptStruct가 GENERATED_BODY가 들어간 구조체UFinction은 UClass는 가져..