전체 글 46

레지스터 이해하기 (1)

연산은 CPU내 레지스터에서 진행.. register는 가장 빠른 저장 공간 rax 64bit eax 32bit 64bit에서는 범용 레지스터로 rax, rbx, rcx, rdx 가 존재 sasm에서 mov eax, 0x1234 를 실행할경우 실행중에 레지스터 rax에 0x1234값이 저장됨 rax(64bit)안에 eax(32bit)에 저장한거로 이해함.. mov rbx, 0x12345 는 rbx에 0x12345 저장됨 mov cl, 0xff 경우 rcx안에 해당값이 저장됨 -------------------------------------------------------------------- mov eax, 0x1234 mov al, 0x00 실행 시 rax에 0x1234가 저장되면 이후에 mov a..

C++ 2023.04.14

컴퓨터 구조.. 파일 실행 구조

파일실행 시 하드디스크에서 불러와 메인 메모리로 올림 어셈블리 언어를 실행할때 가장 핵심적인 부분 프로그래밍이란 데이터를 꺼내서 가공하는게 가장 핵심적인 부분 게임으로 친다면 캐릭터의 체력이 될수도있음.. CPU 레지스터(CPU의 부품) 메모리 레지스터를 사용하는 이유... 프로그램 동작하는 원리 데이터 저장 ( 레지스터.. 메모리.. 하드디스크.. ) CPU에서 레지스터에 접근속도가 굉장히 빠름.. 대신 저장 용량이 부족? CPU에서 임시적으로 저장할수 있는 공간이 레지스터..

일상 2023.04.12

SASM 어셈블리언어 (1)

1. SASM 다운로드 2. 다운로드 후 세팅에서 x64로 변경 (64bit) 3. hello world 출력해보기 64bit 설정후에 hello world 찍어보려니 에러가 자꾸 나서 검색해보니 맨위에 %include "io64.inc"가 없으면 PRINT_STRING등 SASM에서 지원하는 함수들이 사용되지 않는듯함.. 해당 코드 추가하고 실행하니 hello world 출력 완료 section .text 는 코드쓰는곳.. section .data는 변수선언하는곳.. 어셈블러라는게 결국 컴퓨터 언어로 번역해주는거라고 생각하면 되는것같음 인프런 강의 [C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] 참고

C++ 2023.04.12

CSRF Token (Cross-site request forgery)

임시로 조치.. java UUID(Universally Unique Identifiers) 범용 고유 식별자 csrf token 생성할때 사용할 식별자 ex) UUID.randomUUID().tostring(); session에 csrf token 추가하고 form에서 hidden으로 값 받아옴 form 전송시 컨트롤러나 비지니스 로직에서 해당 토큰 받아서 검사 ex) session 값과 받아온 token값 비교 ex) request.getSession().getAttribute("CSRF_TOKEN").equals(request.getParameter("_csrf"))

java 2022.08.04