완료됨
argv 만지는 방법
제 어셈블리 지식상 2번째 argument는 rsi 레지스터에 저장되는걸로 알고있는데 수열을 접속하는데 어려움을 격고 있네요... argv를 쉘코드내에서 어떻게 interact하는지 힌트 주실수 있을까요?
#reversing
작성자 정보
답변
1
./binary arg1 arg2 arg3 ...
를 실행했을때 RSI에 들어 있는 값은 어떤 메모리 주소
이고 어떤 메모리 주소
에 들어있는 값은 실행경로
입니다. 기본적으로 argv에는 실행경로가 들어가기 때문입니다. 여기서 어떤 메모리 주소+8
에 들어있는 값은 arg1
이고 어떤 메모리 주소+16
에 들어있는 값은 arg2
이고........ 이런식으로 접근하면 원하는 값을 뽑을 수 있습니다. arg1은 우리가 입력한 쉘코드가 될테니 수열을 뽑으려면 어떤 메모리 주소+16
부터 참조하면 되겠죠..!