Liea
'IT공부' 태그의 글 목록 (36 Page)

IT공부

② 공부/보안 관련

모의해킹 시나리오 정리

보호되어 있는 글입니다.

① 공부/HTML, JavaScript, Vue.js, CSS

[CSS] div 태그 사용해서 화면 중앙에 출력하기

1. html에서 DIV 태그를 사용하여 클래스 정의하기 html 2. 정의한 클래스의 CSS코드 입력 css .container { width: 100%; height: 100vh; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }

② 공부/[Reversing]

[리버싱] 어셈블리어 (CMP와 JMP, JNZ, JE) 정리

1. 데이터 비교 CMP ex) CMP A B - A의 값과 B의 값을 비교한다. ++ 두 값이 같다면 ZF가 1로 설정됨, 다르면 ZF가 0으로 설정됨 ex) CMP EAX, ESI - EAX의 값과 ESI의 값을 비교해라. 2. 코드 이동(점프) JMP (Jump) ex) JMP A - 이번 문장에서 처리할 위치를 A로 이동한다. JNZ (Not Zero Jump) ex) JNZ A - 비교 값이 0이 아닌 경우 A로 이동한다. - 비교된 값이 0인 경우에는 점프하지 않고 다음코드를 실행한다. ++ 비교 된 값이 있어야 하므로 앞에 CMP가 먼저 실행된다. JE (Jump Equal) ex) JE A - 비교된 값이 같으면 해당 주소로 이동한다.

② 공부/[Reversing]

Redhat gdb 사용하기(2) _메모리 영역 확인

sample.c 코드파일 disass main 실행 내용

② 공부/[Reversing]

Redhat gdb 사용하기(1)

main: push1 %ebp//프롤로그, 메인함수 프레임 생성 movl %esp, %ebp//프롤로그, 메인함수 프레임 생성 subl $4, %esp//int c = 10; esp에서 4를 뺀 값을 esp에 넣음, esp가 main의 SFT 공간 위로 공간이 생김 movl $10, -4(%ebp)//ebp로부터 4칸 떨어진 위치에 10이라는 값을 넣음 pushl $2 pushl $1 call myfunc addl $8, %esp movl %eax, %eax movl %eax, -4(%ebp) xorl %eax, %eax jmp .L2 .L2: leave//에필로그 작업 함수 ret//에필로그 작업 함수 #gcc -S -o sample.a sample.c //컴파일시 어셈블리어로 컴파일 ㅇ GDB - 컴..

② 공부/[Reversing]

ESP, EBP, 프롤로그, 에필로그 이해하기 예제

sample.c #include int myfunc(int a, int b) { char buf[10] = "abcd"; return a + b; } int main(int argc, char *argv[])//caller { int c = 10; c = myfunc(1, 2);//callee return 0; } - 함수 호출 후에는 call 명령어가 오고, call (myfunc함수에 해당하는 이름)이 저장되어 있음 à push eip - main 함수의 myfunc() 호출 후 다음 문장은 return 0; 이므로, EIP값이 자동으로 return 0;을 하게끔 바뀌므로, 해당 값을 myfunc() 프레임의 RET공간에 저장함 - RET에 저장 후 jmp를 수행하면 함수 프롤로그가 실행되고, pus..

① 공부/OS [Windows, Linux]

OS 개요

ㅇ OS개요 - 컴퓨터 시스템 : 사용자가 원하는 기능, 서비스들을 구현하기 위해 각종 정보들을 처리하는 H/W & S/W 들의 집합 - H/W : 물리적, 기계적, 전기적(99%)인 기능을 수행하는 눈으로 식별 가능한 장비 ㄴ 중앙처리장치, 메모리, I/O 장치 ㄴ 메인보드(마더보드), 그래픽카드, CPU(중앙처리장치, (마이크로)프로세서), 주기억장치(메모리, RAM(RWM)), ROM, 마우스, 키보드, 모니터, 스캐너, 프린터, 마이크, 보조기억장치(HDD, CDROM, Flash memory) ㄴ CPU : (연산(산술연산+논리연산) 장치 + 제어장치 + 레지스터(기억) + 캐시(기억) - S/W : H/W가 어떻게 어떤 일을 할지 지시하는 명령어들 ㄴ 시스템 S/W : H/W를 직접적으로 컨트..

② 공부/[Reversing]

레지스터, 함수프레임(프롤로그, 에필로그) 간단 정리

ㅇ 레지스터 : CPU내에 있는 기억장소 ㄴ ESP(Stack Pointer) : 현재 스택의 위치가 어디인지 갖고 있음 ㄴ EIP(Instruction Pointer) : CPU가 실행될 명령어가 어디 있는지 해당 주소를 갖고 있음 (다음번 실행할 명령어의 위치) ㄴ EBP(Base Pointer) : 각 함수프레임의 기준 위치 (함수 호출이 끝나면 해당 위치로 리셋해줘야 함) ㄴ EAX~EDX : 산술, 논리 연산의 결과값을 임시로 보관하는 레지스터 EAX : 함수 리턴값 저장 ㄴ ESI, EDI : 반복, 문자열 ㄴ 상태 레지스터 : 비교, 점프, 반복 ㅇ 함수프레임, 프롤로그, 에필로그 프롤로그 : 함수가 호출되었을 때 RET, SFP 영역을 만드는 작업 에필로그 : 함수 실행 완료 시 함수가 할..

② 공부/[Reversing]

어셈블리어 정리

ㅇ 어셈블리어 ㄴ 어셈블리어 표현방식 : AT&T, Intel AT&T : 리눅스 - OPCODE 원본, 사본 - cp file1 file2 //file1을 file2로 복사함 Intel : 윈도우 - OPCODE 사본, 원본 ㄴ add, sub x = x + y; add x, y //x와 y를 더해서 x에 넣음 x = x - y; sub x, y //x - y를 해서 x에 넣음 ㄴ mov, lea, (movl, movw, movb) à 둘 다 복사 명령어지만, mov는 주소에 해당하는 값을 lea는 주소값을 가져옴 (movl, movw, movb) à 각 옮길 값의 사이즈를 4, 2, 1 바이트 만큼 복사함 x = y; mov x, y //y에 있는값을 x로 복사(이동) ***à 목적지가 어떤 피연사인..