오늘은 어셈블리어 명령어 중 많이 쓰이는 MOV, 산술 연산, JMP, CMP, 조건 분기, PUSH, POP, CALL, RET 명령어에 대해서 쉽게 배워보는 시간을 가져보겠습니다. MOV 명령어 MOV 명령어는 데이터를 저장하거나 레지스터 간 이동을 수행합니다. 이 레지스터는 CPU 내부에 존재하는 메모리 공간으로, 데이터를 저장하거나 처리할 때 사용됩니다. MOV 명령어는 MOV 명령어 뒤에 저장하고자 하는 데이터와 대상 레지스터를 입력하는 것으로 사용할 수 있습니다. 위 코드는 5라는 값을 갖는 AX 레지스터를 생성합니다. 즉 AX 레지스터에 5라는 값을 저장하는 역할을 합니다. 산술 연산 명령어 CPU에서는 수학적 연산을 처리할 수 있는 명령어가 포함되어 있습니다. ADD, SUB, MUL, D..
안녕하세요! 지난 시간에 이어서 오늘은 어셈블리어 명령어 중 lea, and, or, xor 명령어에 대해서 알아보겠습니다. LEA (Load Effective Address) : 유효 주소 로드 # 출발지는 r/m32 # 목적지는 레지스터 # 레지스터 연산 결과를 레지스터에 저장(not 포인터) MOV와 무엇이 다른가?? # MOV는 값을 로드한다. mov eax, [ebx+ecx] # LEA는 유효 주소를 로드한다. lea eax, [ebx+ecx] lea 명령어를 사용해서 프로그램을 짜보겠습니다. gdb를 사용하여 분석을 하기전에 이 프로그램이 어떻게 동작할지 미리 고민을 해보시기 바랍니다. mov연산을 실행하고 나서 eax에는 1, ebx에는 4, ecx에는 7이 저장될 것입니다. 위에서 설명했듯..
안녕하세요! 이번 시간에는 mov 명령어에 대해서 알아보고 직접 mov 명령어를 사용해서 어셈블리 프로그래밍을 해볼거에요. 지난 시간에는 gdb를 사용하여 막 짜본 프로그램을 분석을 해보았는데요, 우리가 짠 프로그램의 문제점이 무엇이었는지 기억하시나요?? 네, 프로그램의 문제점은 프로그램의 종료를 알리는 신호를 주지 못해서 Segmentation fault가 발생한다는 점이었습니다. 프로그램의 끝은 시스템 콜을 이용해야 하는데요, 이번 시간에는 시스템 콜을 이용하여 프로그램을 정상적으로 종료시키는 방법도 알아보겠습니다. 자 그럼 MOV 명령어는 무엇이냐!!? MOV : 데이터 복사를 담당하는 명령어 # 레지스터 -> 레지스터 (레지스터에서 레지스터로 데이터를 복사) # 메모리 레지스터 (메모리에서 레지스..
- Total
- Today
- Yesterday
- vim
- 해킹
- Sub
- 터미널
- 리버스 엔지니어링
- system call
- jmp
- reversing
- nasm
- instruction
- linux
- 명령어
- cmp
- 리눅스
- gdb
- 스택
- 어셈블리
- Push
- 논리연산
- 리버싱
- mov
- ubuntu
- 어셈블리어
- add
- 리눅스 시스템 콜
- call
- 사이버공격
- 치트엔진
- 우분투
- 어셈블러
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |