본문 바로가기
728x90

시스템해킹공부2

시스템 해킹 별 찍기 프로그램 구현 이와 같은 별 찍기를 어셈블리어로 작성해봅시다. 먼저 c 언어 코드로 작성을 해보았습니다. 이제 이걸 어셈블리어 코드로 옮겨볼겁니다. n = 높이 = r8 i = 큰 = r9 j = 작은 = r10 으로 할당해주겠습니다. 다음과 같이 '*' 문자열을 가리키는 STAR 와 0x0a - 줄바뀜 변수인 EMPTY 를 선언해줍니다. WRITE 를 해야하기 때문에 rax 에는 1을 넣어주고 rdi 모드도 1로 선언해줍니다. 별을 하나씩 출력해줄거기 때문에 rdx 에는 1을 넣어주어야합니다. r10 는 위에서 말했듯이 j 이기 때문에 0으로 초기화를 해줍니다. 스택 프레임이 받은 변수 7, RET , RSP 이렇게 깔립니다. 64비트기 때문에 각자 8비트가 됩니다. 그래서 입력된 수를 받기 위해서는 RSP + 16.. 2020. 8. 4.
시스템해킹 nano 통해 어셈블리코드 실행 vi 을 많이 써봤어도 nano는 써본 적이 없어서 신기했습니다. 단축키 정리는 이 블로그가 좋은 거 같습니다. https://junistory.blogspot.com/2017/08/nano.html nano에디터 소개 및 사용법 Web개발, 웹디자인, 웹기획, IT정보, 여행정보, 맛집정보등에 대해 공유하는 블로그 입니다. junistory.blogspot.com 어셈블리어 파일인 helloworld.s 을 다음과 같이 작성했습니다. section .data 는 전역 변수 할당을 위한 공간이고 section .text 는 프로그램 실행 코드를 담고 있습니다. global _start 로 _start 라는 프로시저가 전역에 있음을 명시합니다. _start 는 main 함수가 실행되기 전 실행되는 함수 입.. 2020. 7. 31.
728x90