일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 쿼리
- 쿼리최적화
- sql
- 클라우드네이티브
- 데이터베이스
- 리눅스
- 개발방법론
- 오라클
- 서버
- DB
- 리눅스공부
- CS
- dbms
- 트랜잭션
- jdbc programming
- TDD
- JDBC
- 클라우드
- AWS
- 시스템프로그래밍
- 데이터베이스프로그래밍
- 컴퓨터
- 명령어
- EC2
- Database
- 개발자
- 개발공부
- 자바
- 데브옵스
- 공부
- Today
- Total
목록해킹 및 보안 (16)
개발 블로그
29강~30강 반복문 jecxz, loop, rotateLoop 명령어: ecx가 0이 아닐 때 반복, ecx 값이 자동으로 1 감소Loop [주소](반복할 부분) LOOPE( LOOZ )-> zf=1이고 ecx가 0이 아닐 때 반복, 체크를 두 가지 해야할 때 사용 rotate 연산 -> shift 연산의 연장-rotate에서는 밀려난 값을 최하위 혹은 최상위 비트에 넣음ex) 0111 -> 1110 - left: 최상위 비트가 최하위 비트로 들어감-right: 최하위 비트가 최상위 비트로 들어감ror [r / m8] [1 / imm8 / cl]rol *1이 오는 경우는 기계어로 2바이트이고 임시값이 오면 4바이트임*오버플로우 비트는 최상위 비트와 그 옆 비트가 다를 때 세팅됨..
18강-JGE/JLE: JG/JL에 같은 경우도 포함JGE: S=O 면 점프JLE: S or Z=1 -JNGE = JL /JNLE = JG -JO: Overflow 비트가 1이면 -JS: Sign 비트가 1이면 19강P(parity): 페리티 플래그parity?동등성을 유지시키는 것비트에서 1의 동등성을 유지시킴 -odd parity: 1의 개수를 홀수로 유지시킴 ex) 1100 p:1(parity까지 홀수개)만약 비트가 오류가 나서 1000 ->1이 되면 1의 개수가 짝수가 되기 때문에 오류가 났다는 것을 알 수 있음*intel: 홀수 패리티 사용, 하위 8bit에 대해서만 체크cf) even parity: 짝수 페리티*crc32: 파일을 체크하고 오류를 복구하는 방법->p..
13. 메모리 지정 방식-offset 이용하는 방법ex) [eax+4]*offset: 변위차mov ebx, 402000mov byte ptr [ebx], 0mov byte ptr [ebx+2], 1 mov byte ptr [ebx+3], 2 mov byte ptr [ebx+4], 3 결과[402000]: 00 01 02 03 ...mov ecx, 0mov byte ptr [402000 + ecx], cl-> [402000] : 00 00 00 00inc ecxmov byte ptr [402000 + ecx], ecx-> [402000] : 00 01 00 00inc ecxmov byte ptr [402000 + ecx], ecx-> [402000] : 00 01 02 00-index 지정 방식mov e..
8~9강 점프 JMPJMP: 실행의 흐름을 변경, 원하는 메모리 주소로 가야할 때ex) JMP [401005]*EIP: 다음에 실행할 주소를 담고있는 레지스터-현재 실행될 명령어의 크기를 계산하고 그 크기만큼 현재 실행될 코드의 주소값에 더해주어 다음에 실행될 코드 주소를 가르켜 줌-EIP는 범용 레지스터가 아니기 때문에 MOV 연산 사용 불가, JMP로 흐름을 변경해야함#해킹: EIP라는 레지스터에 들어가는 값을 해커가 원하는 값으로 바꾸면 됨! 10강 증감 명령어INC: 증가 연산, ++과 같은 역할INC [REG/MEM] DEC: 감소 연산, --와 같은 역할DEC [REG/MEM]11강 ADD, SUBADD: 덧셈 연산ADD op1, op2 -> op1에 op2를 더한다. SUB: 뺄셈 연산SU..
#4강 메모리📌RAM(Random Access Memory)-주기억장치에 사용, 휘발성 메모리-하드디스크에 비해 속도가 빠르기 때문에 주기억장치로 사용-저장 원리: 전류의 흐름에 따라 0과 1로 저장참고) 레지스터, 캐시, 램, 하드디스크용량: 하드디스크(T) > RAM(G) > 레지스터(Byte)속도 및 가격: 레지스터 > RAM > 하드디스크#5강 메모리 주소 접근-word(워드): 컴퓨터 설계 시 정해지는 메모리 기본 단위, 하나의 기계어 명령어나 연산을 통해 저장된 장치로부터 레지스터에 옮겨 놓을 수 있는 데이터 단위-메모리 각 주소에 바이트 단위로 데이터를 담도록 설계-32비트: 주소 값은 32bit(4Byte)로 설계, 2^32개의 주소 지정 가능→32bit 램 용량은 2^32*1바이트 =..
# 1강📌어셈블리어: 기계어를 일정한 규칙에 따라 대응시킨 것-기계어 -> CPU에 따라 상이-어셈블리어-> 기계어를 1:1로 기호와 알파벳으로 변환한 것, *사람이 읽기 편함**컴퓨터 구조→ 기계어 → 어셈블리어, 따라서 어셈블리어도 각각 다름CPU마다 지원하는 오퍼레이션(연산)의 타입과 개수는 제각각, 레지스터의 크기나 개수도 다름📌 어셈블러: 어셈블리어를 기계어로 바꿔주는 프로그램, 어셈블리어를 기계어 형태의 오브젝트 코드로 해석-MASM, FASM, NASM, GAS 등이 있음-지시어가 어셈블러마다 다름!**ollydbg 사용**-ollydbg: 바이너리 코드 분석을 위한 x86 디버거, 리버스 엔지니어링에 종종 사용됨 #2강📌어셈블리어→ intel 문법 vs AT&T 문법- 차이점**접두사..