인프런 커뮤니티 질문&답변

닌긴디님의 프로필 이미지
닌긴디

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

스택 메모리

rbp 스택에 저장할시 메모리 변조

해결된 질문

작성

·

244

0

해당 함수에서 여러가지 포인터 연산중 실수로 rbp저장된 곳을 건드리게 된다면 나중에 함수 반환시 크래쉬가 날 것 같긴합니다만 

애매하게 rbp가 다른 가상메모리 주소로 가게 되서 프로그램이 동작하게 된다면 너무너무 위험한거 아닌가요?

 

혹여나 버그 발생한 장소를 찾아낼수 없는 경우도 발생하나요?

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

애매하게 rbp가 다른 가상메모리 주소로 가게 되서 프로그램이 동작하게 된다면 너무너무 위험한거 아닌가요?

네 물론 아주 위험합니다. 
해킹 원리가 그걸 악용하는건데요. 
이미지 파일 업로드 등 사용자가 원하는 데이터를 올려보낼 수 있는 상황에서
절묘하게 미친짓을 하는 opcode로 채워두고,
rbp나 리턴주소 조작을 이용해 그 미친짓을 하는 주소로 뿅 순간이동을 시켜서
컴퓨터를 탈취하는 것이죠.

혹여나 버그 발생한 장소를 찾아낼수 없는 경우도 발생하나요?

버그가 발생하면 아주 행복한 상황입니다.
최악의 경우 해킹으로 인해 엉뚱한 코드가 실행될 수도 있고,
그게 아니라도 자연스럽게 지나치는듯 했으나 오염된 메모리로 인해
나중에 엉뚱한 위치에서 크래시가 나는게 더 골치 아픕니다. (원인 파악이 안 되기 때문)

닌긴디님의 프로필 이미지
닌긴디

작성한 질문수

질문하기