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

dbdmswl5218님의 프로필 이미지
dbdmswl5218

작성한 질문수

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

함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!

작성

·

257

·

수정됨

0

함수 호출을 하다가 리턴하기 전에 eip가 널이 되면 어떻게 동작하는지 궁금해서 한번 시도해봤는데요.

예를 들면 main() 함수에서 A() 함수를 호출하고 또 A() 함수에서 중간에 B() 함수를 호출하는데

B() 함수를 리턴하기 전에 eip 값을 0x00000000과 같은 널 값으로 고쳐보았습니다. 이렇게 하면 리턴하고나서 뭔가 에러?엑세스 위반? 이라는 게 뜨는 것 같더라구요

근데 만약 이렇게 해서 엑세스 위반이 났을 때 어떤 함수를 호출할 때 잘못됐는지 디버깅 상에서 추적하려면 어떤 순서로 추적해야하는지 궁금합니다!

답변 1

1

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

네 그 eip를 원하는 주소로 점프 시키고, 심지어 원하는 주소에
원하는 데이터를 넣어놓을 수 있게 만들 수 있는 버그가
아~~주 간혹 발생하는데 그게 바로 해킹의 원리입니다.
(영화에서 usb 꽂으면 바로 보안이 뚫리는 그런 그!)

엑세스 위반 문제는 그냥 크래시 나는 순간의 콜스택을 보면 됩니다.

dbdmswl5218님의 프로필 이미지
dbdmswl5218

작성한 질문수

질문하기