system hacking을 register 기초
·
Tips & theory
1. register란 간단히 요약하자면, 프로그램이 실행되면 기본적으로 ram에 필요한 데이터들이 적재되는데, 연산을 포함한 실행은 register가 담당하게 된다. 즉, 프로그램이 실행되면 특정 동작을 위한 명령어들을 ram에 적재, 적재된 순서대로 register가 값을 가져가 연산. 그 결과를 다시 ram에 적재. 하는 식으로 프로그램은 작동한다. 2. register 종류와 역할 각 register는 사실 각각의 역할이 있다. 기억하면 좋겠지만 사실 분석 시 조금 더 도움이 되는 수준이라 기억하지 않아도 전혀 문제 없다. 아래는 hello 문자열을 출력하는 간단한 프로그램을 gdb로 열어 start 명령어 직후 레지스터에 들어간 값 들이다. $rax : 0x00555555556004 → 0x00..