self modification code 가 리눅스에서 가능할까요?? 물론 보호모드상태에서요...
예, 가능합니다. x86에서는 코드 세그먼트와 데이터 세그먼트가 같은 주소 공간상에 중첩이 되어 있어서 아무 코드 부분이나 데이터처럼 써넣으면 변경은 됩니다. 돌아가는 것은 물론 그 다음 문제이겠지만요. 코드와 데이터가 완전히 격리되는 아키텍쳐에서는 코드 영역을 쓰기 가능하게 변경한 다음 데이터를 써넣고 다시 읽기 전용으로 변경하면 되겠죠.
한국 BSD 사용자 포럼
http://linuxassembly.org
코드중첩 예제가 있던걸로 기억합니다.
함 찾아보세요.
하지만 코드중첩의 경우 속도를 위해서는 권하지 않는 코딩 방법입니다.
(캐시까지 다 바껴야 하니까요)
Written By the Black Knight of Destruction
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
예, 가능합니다. x86에서는 코드 세그먼트와 데이터 세그먼트가 같은 주
예, 가능합니다. x86에서는 코드 세그먼트와 데이터 세그먼트가 같은 주소 공간상에 중첩이 되어 있어서 아무 코드 부분이나 데이터처럼 써넣으면 변경은 됩니다. 돌아가는 것은 물론 그 다음 문제이겠지만요. 코드와 데이터가 완전히 격리되는 아키텍쳐에서는 코드 영역을 쓰기 가능하게 변경한 다음 데이터를 써넣고 다시 읽기 전용으로 변경하면 되겠죠.
한국 BSD 사용자 포럼
http://linuxassembly.org코드중첩 예제가 있던걸
http://linuxassembly.org
코드중첩 예제가 있던걸로 기억합니다.
함 찾아보세요.
하지만 코드중첩의 경우 속도를 위해서는 권하지 않는 코딩 방법입니다.
(캐시까지 다 바껴야 하니까요)
Written By the Black Knight of Destruction
댓글 달기