-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!
23.01.19 15:56 작성 23.01.19 16:21 수정 조회수 163
0
함수 호출을 하다가 리턴하기 전에 eip가 널이 되면 어떻게 동작하는지 궁금해서 한번 시도해봤는데요.
예를 들면 main() 함수에서 A() 함수를 호출하고 또 A() 함수에서 중간에 B() 함수를 호출하는데
B() 함수를 리턴하기 전에 eip 값을 0x00000000과 같은 널 값으로 고쳐보았습니다. 이렇게 하면 리턴하고나서 뭔가 에러?엑세스 위반? 이라는 게 뜨는 것 같더라구요
근데 만약 이렇게 해서 엑세스 위반이 났을 때 어떤 함수를 호출할 때 잘못됐는지 디버깅 상에서 추적하려면 어떤 순서로 추적해야하는지 궁금합니다!
답변을 작성해보세요.
1
Rookiss
지식공유자2023.01.19
네 그 eip를 원하는 주소로 점프 시키고, 심지어 원하는 주소에
원하는 데이터를 넣어놓을 수 있게 만들 수 있는 버그가
아~~주 간혹 발생하는데 그게 바로 해킹의 원리입니다.
(영화에서 usb 꽂으면 바로 보안이 뚫리는 그런 그!)
엑세스 위반 문제는 그냥 크래시 나는 순간의 콜스택을 보면 됩니다.
답변 1