self modification code 가 리눅스에서 가능할까요?? 물론 보호모드상태에서요...
예, 가능합니다. x86에서는 코드 세그먼트와 데이터 세그먼트가 같은 주소 공간상에 중첩이 되어 있어서 아무 코드 부분이나 데이터처럼 써넣으면 변경은 됩니다. 돌아가는 것은 물론 그 다음 문제이겠지만요. 코드와 데이터가 완전히 격리되는 아키텍쳐에서는 코드 영역을 쓰기 가능하게 변경한 다음 데이터를 써넣고 다시 읽기 전용으로 변경하면 되겠죠.
한국 BSD 사용자 포럼
http://linuxassembly.org
코드중첩 예제가 있던걸로 기억합니다.
함 찾아보세요.
하지만 코드중첩의 경우 속도를 위해서는 권하지 않는 코딩 방법입니다.
(캐시까지 다 바껴야 하니까요)
Written By the Black Knight of Destruction
예, 가능합니다. x86에서는 코드 세그먼트와 데이터 세그먼트가 같은 주
예, 가능합니다. x86에서는 코드 세그먼트와 데이터 세그먼트가 같은 주소 공간상에 중첩이 되어 있어서 아무 코드 부분이나 데이터처럼 써넣으면 변경은 됩니다. 돌아가는 것은 물론 그 다음 문제이겠지만요. 코드와 데이터가 완전히 격리되는 아키텍쳐에서는 코드 영역을 쓰기 가능하게 변경한 다음 데이터를 써넣고 다시 읽기 전용으로 변경하면 되겠죠.
한국 BSD 사용자 포럼
http://linuxassembly.org코드중첩 예제가 있던걸
http://linuxassembly.org
코드중첩 예제가 있던걸로 기억합니다.
함 찾아보세요.
하지만 코드중첩의 경우 속도를 위해서는 권하지 않는 코딩 방법입니다.
(캐시까지 다 바껴야 하니까요)
Written By the Black Knight of Destruction