안녕하세요! 지난 시간에는 mov 명령어를 알아보았는데요, 이번 시간에는 add, sub 명령어를 알아보겠습니다. ※ r/m 32 주소형식 : 피연산자 크기 속성이 32비트인 명령어에 사용하는 더블워드 범용 레지스터 또는 메모리 피연산자. ※ r/m32는 다음과 같은 형식을 가지는 문법을 의미합니다. # mov eax, ebx (ebx에 담긴 내용을 eax로 복사) # mov eax, [ebx] (ebx에 담긴 내용이 가리키는 주소의 내용을 eax로 복사) # mov eax, [ebx+ecx*X] (ebx에서 ecx*X 만큼 떨어진 곳에 위치한 주소의 내용을 eax로 복사) # mov eax, [ebx+ecx*X+Y] (ebx에서 ecx*X+Y 만큼 떨어진 곳에 위치한 주소의 내용을 eax로 복사) AD..
안녕하세요! 이번 시간에는 mov 명령어에 대해서 알아보고 직접 mov 명령어를 사용해서 어셈블리 프로그래밍을 해볼거에요. 지난 시간에는 gdb를 사용하여 막 짜본 프로그램을 분석을 해보았는데요, 우리가 짠 프로그램의 문제점이 무엇이었는지 기억하시나요?? 네, 프로그램의 문제점은 프로그램의 종료를 알리는 신호를 주지 못해서 Segmentation fault가 발생한다는 점이었습니다. 프로그램의 끝은 시스템 콜을 이용해야 하는데요, 이번 시간에는 시스템 콜을 이용하여 프로그램을 정상적으로 종료시키는 방법도 알아보겠습니다. 자 그럼 MOV 명령어는 무엇이냐!!? MOV : 데이터 복사를 담당하는 명령어 # 레지스터 -> 레지스터 (레지스터에서 레지스터로 데이터를 복사) # 메모리 레지스터 (메모리에서 레지스..
안녕하세요! 이번 시간에는 지난 시간에 작성한 프로그램을 gdb를 사용하여 분석해보는 시간을 가질거에요. gdb는 리버싱을 하는 데 있어서 매우 중요합니다. gdb를 다루지 못한다는 것은 리버싱을 할 수 없다는 것과 같은 이야기입니다. 지난 시간에 작성한 프로그램을 gdb를 사용하여 분석해볼게요. 'gdb XXX' 를 입력하시면 (gdb) 옆에 명령어를 입력할 수 있게 바뀌게 됩니다. 1. disassemble (disas) 작성한 코드가 어셈블리 코드로 출력됩니다. 지금 어셈블리 코드를 보면 AT&T 방식으로 표현되어 있는데 우리는 앞으로 intel 방식으로 볼거에요. 따라서 다음과 같은 명령어를 입력해주세요. set disassembly-flavor intel 2. info register 이 명령어..
안녕하세요! 지난 시간에 실습 환경 구축이 완료되었으니 오늘은 프로그램을 한번 만들어보는 시간을 가져보도록 하겠습니다. 실습에 앞서 앞으로 사용할 Vim 편집기와 이번 시간에 사용할 어셈블러인 NASM을 설치하도록 하겠습니다. 저는 앞으로 모든 실습을 root 권한을 얻은 상태에서 진행할 것이기 때문에 여러분들은 감안하셔서 보시면 됩니다. vim 설치 : apt-get install vim 이미 설치를 완료했기 때문에 여러분들과 결과가 조금 다를 수 있어요. nasm 설치 : apt-get install nasm 필요한 도구들을 설치해보았습니다. 기본적으로 우분투에 내장되어있는 vi 에디터가 있지만 저는 개인적으로 마음에 들지 않아서 vim 에디터를 사용하겠습니다. 실습을 진행할 디렉토리는 여러분들이 자..
안녕하세요! 이번 시간에는 실습을 하기에 앞서 리눅스 터미널에서 사용하는 명령어에 대해서 알아보겠습니다. 리눅스를 처음 접하시는 분들은 꼭 이 명령어들을 숙지하시길 바랍니다. 1. man man은 가장 기초적인 명령어 입니다. man은 다른 명령어에 대해 알고자 할 때 반드시 사용해야 합니다. 사용하려고 하는 명령어가 확실하지 않을 때에는 man xxx 방식으로 사용하면, 해당 명령어에 대해 정확하게 알 수 있습니다. 2. ls 실습을 하면서 많이 사용하게 될 명령어 입니다. 이 명령어는 현재 디렉토리의 내용을 보여줍니다. 3. pwd 이 명령어는 'print working directory'의 약자로 현재 작업 중인 디렉토리를 확인할 때 사용합니다. 4. cd 이 명령어는 작업할 디렉토리를 변경할 때 ..
안녕하세요! 평소에 리버싱에 관심이 많았는데 동계 방학을 맞이하여 리버싱 공부를 시작하게 되었습니다. 오늘은 리버싱을 공부하기에 앞서 실습 환경을 구축하는 시간을 가져보도록 하겠습니다. 실습 환경으로 Vmware에 Ubuntu Linux를 설치하겠습니다. 먼저 Vmware를 설치 하겠습니다. https://www.vmware.com/kr/products/workstation-player/workstation-player-evaluation.html vmware 공식 홈페이지 입니다. Windows용 Workstation 15 Player 사용해 보기를 클릭하시면 설치파일을 받으실 수 있습니다. Vmware 설치가 완료되었으면 Ubuntu Linux 이미지 파일을 받아야 합니다. 사용할 Ubuntu Lin..
- Total
- Today
- Yesterday
- vim
- 리눅스
- 명령어
- cmp
- 논리연산
- gdb
- 터미널
- 해킹
- add
- 스택
- 어셈블리어
- 어셈블리
- ubuntu
- 리버싱
- nasm
- instruction
- call
- linux
- 리버스 엔지니어링
- 우분투
- 리눅스 시스템 콜
- mov
- system call
- 치트엔진
- jmp
- 사이버공격
- 어셈블러
- Push
- reversing
- Sub
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |