분류 전체보기 177

[Pwnable] basic_bof_1 Write-up

확장자가 FILE인 파일 윈도우에서 파일형식 : 파일인 파일이 있다. 이거는 리눅스 실행파일인 ELF일 확률이 높으니, 리눅스에서 열어보자. 역시나마 32비트 ELF 파일이었다. FILE에 대해서 조금 더 자세하게 알아 보고 싶으면 요 글을 참고해보자 https://juntheworld.tistory.com/75 확장자가 FILE인 파일 이게 뭔가 싶었다. 확장자가 FILE인 파일? 장난치는건가? 싶었지만 윈도우 입장에선 충분히 그럴 수 있지다. 리눅스 실행파일 ELF 파일이다. 윈도우 입장에서는 충분히 이게 뭔가 싶을 만도.. 윈도 juntheworld.tistory.com 아무튼 ELF파일이 뭔지 알았고, 소스파일은 제공되지 않으니 IDA를 이용해서 열어보았다. 15라인에 system함수가 있고 12..

내가 보려고 만든 IDA PRO 단축키 정리

r : 숫자 문자 변환 h : 숫자 DEX(10진수) HEX(16진수) 변환 g: 함수/주소 이동. 입력한 함수, 주소로 이동 x : 상호참조. 함수, 변수를 사용하는 곳을 찾을 수 있음 n : 변수/함수 이름 재설정 ; : 주석달기 F5 : 헥스레이 전환 (pseudo code 어셈블리코드) space bar : 어셈블리코드 그래픽모드 전환 Shift + f12 : String 검색창을 열기 https://1nzag.tistory.com/3

탐색을 위한 해시 (해시가 값 검색을 위해 사용되는 원리)

탐색을 위한 해시 해시 목적 : 탐색을 엄청나게 빨리 하기 위함 ⇒ 해시 값을 키로 이용하면 배열로 원하는 데이터에바로 접근할 수 있음 탐색 할때는 해시 함수 결과를 해시 주소(인덱스)로 해석 키 : 값의 개념으로 direct 접근 근데 충돌 무조건 발생함 -> 잘 관리하자 충돌관리 슬롯 여러개 관리 : 슬롯 만들어서 같은 해시주소에 여러개 저장가능하게! 선형 조사법 : 슬롯 오버플로나면 다른 해시 주소(바로 다음)에 저장 ⇒ 선형조사법 근데 이러면 군집화 현상 발생. 군집화 : 특정 지역에 키 값이 몰리는 현상(앞 찼네? 바로 뒤로.. 찼네?? 바로 뒤로..) 이차 조사법 : 키가 몰리는거 방지하기위해 다른 위치(4칸 뒤, 8칸 뒤..)로 점프해서 저장토록하면??? ⇒ 이차조사법 근데 이거 규칙 일정하..

공부/JUN STUDY 2021.11.11

memory management

memory management basic 프로그램은 반드시 메모리로 가져와야한다 메인메모리, 레지스터는 CPU가 directly access할 수 있는 저장소 한 clock당 micro instruction 발생 (Register access, write Register...) 메모리는 여러 cycle이 걸린다 cache ~ ran&cpu사이의 완충제 protection of memory Register access는 cpu clock에 일어난다 ~ cpu에 버금가는 access 속도를 갖는다 clock pulse가 1일때 연산시작 0→1가는 순간 Register access, 마이크로 인스트럭션, 메모리 access 여러개의 clock필요함 ⇒ 긴 시간이 필요하다 메모리 엑세스가 많아지면 시간이 많이..

Context Switching VS Swapping CPU와 메모리에 있는 프로세스 관리하기

Context Switching CPU에서 처리할 process를 변경하는 행위 save the state of the current process load the saved state for the new process switching(할일 바꾸기)는 딱히 유용한 일이 아님. overhead 메모리 save과정.. load과정중 메모리 엑세스 시간.. CPU scheduler 다음에 실행될 프로세스를 결정해주는 프로그램 Swapping 할당된 메인메모리 공간에서 프로세스를 빼내어 하드 Disk나 SSD등 back store에 현재 상태를 저장한 뒤, 다른 프로세스에게 할당하는것 (≠kill ~ 현재상태고뭐고 다 죽임) 필요한 이유 메모리 요구사항의 변화로 과도하게 할당된 메모리공간을 다른 프로세스에게..

multi-processing VS multi-thread

multi-processing에 비한 multi-thread의 장점 time consuming(태워 버리는)이 줄어듬 process 만드는 시간이 줄어들고 process간 통신시간이 줄어듬 Computer 자원 효율성 올라감 process의 text section, data등을 공유 (같은 프로세스니까) responsiveness(민감도, 문제 상황에도 괜찮은 능력)가 줄어듬 (단점) 3 스레드 중 하나가 오류 뜨면 나머지스레드도 다 오류 multi-processing은 하나의 프로세스가 오류나도 독립적으로 실행가능 vs multiplexing : 여러 라인 중 1을 택하는 것 (control sign.. 데이터 버스..). 여러 인풋 중 하나의 결과를 결정

Process와 thread

Process란 실행중인 프로그램 프로그램 실행을 위해선 반드시 메인메모리에 적재되어야한다. 하나의 프로세스내에 여러일이 동시에 일어난다 ⇒ 멀티 쓰레드 is a unit of work Process Concept process의 4요소 ~ 메모리에 로드된 프로그램 text section (program code) stack : current activity (return 주소, 지역변수) data section (전역변수) heap : for dynamic 할당 of memory during 프로세스 실행중 stack & heap ⇒ 프로그램의 현재상태 저장 process가 active하다 ⇒ 하나의 프로그램에서 생긴 프로세스라도 heap, stack의 모습이 다르다 ⇒ 현재 상태가 다르다. 레지스터,..

System Call / API(Application Programming Interface)

System Call (interface) OS 기능 사용을 목적으로 OS function을 요청하는 것 (OS와 유저 사이의 interface) kernel mode로의 전환이 일어난다. 1. direct system call OS의 세부적인 function들을 직접호출 2. Application Programming Interface OS의 세부적인 프로그래머가 요구할 OS의 기능을 수행하기위한 function 들의 set으로 high level 언어로 쓰인 Routine으로써 system 기능을 호출할 수 있는 interface이다. API를 쓰는 이유 portability가 좋음 : API는 시스템 펀션들을 set으로써 OS의 기능을 따로 정의 해두기 대문에 다른시스템에서도 이식성이 좋다. 즉, ..

728x90