728x90
반응형
오늘은 어셈블리어 코딩으로 echo 구현해봅시다.
nano echo.s
를 열어봅시다.
함수 _start를 실행시켜줍니다.
xor 를 동일한 변수로 하면 반드시 0이 나옵니다.
첫번째 줄이 지나면 rax 에는 0이 들어있고
두번째 줄 부터 세번째 줄 까지는 레지스터를 다 초기화 시킨겁니다.
rsp 에서 64 를 sub 해주는건 스택이 64에 공간을 마련한 겁니다.
rdi = 0
rsi = rsp
rdx = 63
시스템 콜을 하는데 rdi 에 0 이 들어있고 rsi 가 포인터니깐 스택의 위치를 가리키고 rdx 에 들어 있는 수 만큼 read 한다.
rax 에 1 rdi 1 rsi 에 스택 포인터 위치 rdx 에 63 하면 read 했던 걸을 화면에 63 길이 만큼 출력해주는 syscall 을 부르는 겁니다.
rax 에 60을 넣어서 프로세서를 종료시킵니다.
다음과 같이 실행시킵니다.
그럼 다음과 같이 진행이 됩니다.
728x90
반응형
'해킹 > 시스템해킹' 카테고리의 다른 글
어셈블리어로 반복문 구현 (1) | 2020.08.03 |
---|---|
어셈블리어 문법 간단 정리 (0) | 2020.08.03 |
시스템해킹 메모리 커럽션 (0) | 2020.08.02 |
시스템 해킹 기초 (0) | 2020.08.01 |
시스템해킹 레지스터 쓰임새와 시스템콜 (0) | 2020.07.31 |