일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- NAPT
- ioctl
- .nret core 배포
- architecture
- C언어
- ncurses
- packet flow
- wnourefresh
- vtable
- edge trigger
- 어셈블리어
- BOF
- epoll_wait
- Docker
- wrefresh
- REDIS
- level trigger
- rfc5508
- DOCKER-USER
- epoll
- iptables
- LOB
- 풀이
- doupdate
- Compiler
- cbpf
- 취약점
- mvwin
- packet filter
- .net core 7
- Today
- Total
목록Assembly (24)
Tuuna Computer Science
1 mov ax, [Data] ; 워드의 직접 메모리 주소 지정 2 mov ebx, Data ; ebx = & Data 3 mov ax, [ebx] ; ax = *ebx 간접적인주소지정은레지스터를포인터변수들처럼사용할수있게한다. 레지스 터가포인터로사용됨을알려주기위해서대괄호([])로묶어주어야한다. AX가 워드를 보관하고 있기 때문에 3행은 EBX에 저장된 주소에서 시작되는 워 드 를 읽어 들이게 된다. 만약AX대신AL을 이용한다면 오직 한 개의 바이트만 읽어 들이게 될 것이다. C 에서의 변수들과는 달리 레지스터들은 형(type) 이 없다는 사실 을명심해야한다. EBX에무엇을 가리키냐는어떠한 명령이 사용되냐에 따라 완전히 달라진다. 심지어명령에의해서도EBX가포인터라는사실도정해진다. 만약EBX가 잘못사용되어도..
DB(data byte) 00을 나타낼때 점프기능 JMP점프 기능 JMP 401000 특정한 구간으로 점프! EIP : 실행할 곳의 주소를 담고 있는 레지스터 즉, JMP 401000은 EIP에 그 메모리주소가 들어가도록 하는거다. EIP는 범용레지스터가 아님(일반적인 용도로 ㄴㄴ) (MOV사용ㄴㄴ) JMP SHORT 401000에서 이동할 위치가 가까우면 SHORT F9는 거리 또한 jmp eax등 레지스터 점프도 가능 증가 연산자 INC [공간] 감소 연산자 DEC [공간] 메모리에 대해서는 사이즈 필요 INC WORD PTR [공간주소] 한바이트로 표현할 수 없는 부분은 long(생략)으로 나타난다. 예를들어 401000이라는 주소가 있는데 이곳에 위치하는 기계어를 읽어들이겠다. 그리고 램으로 넘어..
MOV BYTE PTR [402000], AL 여기서 BYTE PTR(주소공간) BYTE : 한번지의 크기 WORD 두번지의 크기 DWORD 4번지의 크기 값을 메모리에 채울 수 도 있고 레지스터에 채울 수 도 있다. 그러나 메모리에서 메모리로는 안된다 . 이럴경우 레지스터에 옮긴다음 메모리로 옮기면 된다. 메모리를 이용할 때에는 첫 번째(시작) 주소를 이용한다. inter cpu에서는 낮은 자리의 바이트수가 메모리에 먼저 채워진다! NOP (NO OPERATION) 이건 CPU가 PASS한다. 메모리에 직접 크기를 넣는법. MOV DWORD PTR [402000], 0 (앞에 바이트 적어줘야함) 그래야 몇 바이트인지 앎. DS : 데이터 세그먼트 (데이터 영역을 가리키는 거임) SS : 스택 세그먼트 ..
어셈블리어1. mov eax, 1 -> mov(이동해라) eax라는 공간에 1을 저장해라 (연산자)= mov (오퍼랜드) ,로 구분 c 언어의 함수호출기능과 비슷 EAX ECX EDX EBX ESP EBP ESI EDI 이들은 사용자가 직접 레지스터에 읽고 쓰기 가능한 공간 MOV EDX, EDX 도 가능 즉 전자의 상자에 후자로 넢어쓰는거다 AL의 경우는 낮은 수의 비트를 찾이할 때 AH의 경우는 높은 수의 비트를 찾이할 때 EXTEND(확장된) REAX 64BIT 16진수로 2자리수가 한 바이트를 의미한다(중요) AX에는 낮은 자리 2바이트 D687이 들어있고 AH는 D6, AL은 87이 들어있다. MOV CH, 0A 하위 2BYTE에 명령을 할 수도 있다. 다른 한 레지스터에 다른 레지스터의 값을 ..