self modifying code를 작성하려면 어떻게 해야할까요.
글쓴이: toy / 작성시간: 금, 2004/07/09 - 9:58오전
예상했지만, 유저모드에서는 안되는것같습니다.
곧장 세그폴트나는군요...ㅜㅜ
( 코드영역에 쓰기가 불가능하기 때문이겠죠.. )
예를들어 nop 명령어를 incl %ebx 로 바꾸는것이 유저영역에서 가능한지 알고싶습니다.
이코드가 맞는지 모르겠는데 이렇게 하니깐 세그폴트가 납니다.
AAA:
nop
nop
movl $AAA , %edx
movb $0x43 , (%edx) # 0x43이 incl %ebx입니다.
혹시........ 유저모드에서 코드영역에 쓰기를 할수는 없을까요?
커널모드에서는 가능할까요... :oops: :oops: :oops:
ps.
나쁜데 쓸려는건 아니니 오해는 마시길..~~~~ :wink:
Forums:
특정 변수에 코드를 쭉 써넣고,함수에서 리턴을 할때, 해당 코드
특정 변수에 코드를 쭉 써넣고,
함수에서 리턴을 할때, 해당 코드 위치로 점프할 수 있도록 수정가능합니다.
그 방법에 대해서는 저도 깊이있게 보지 않았기 때문에 말씀드리기 어렵구요
phrack등 문서를 보시면 찾으실 수 있을거라 아뢰옵니다....
https://nicesj.com
https://blog.nicesj.com
코드가 꼭 코드 영역에만 있어야 된다는 편견을 버리세요헐헐데이터
코드가 꼭 코드 영역에만 있어야 된다는 편견을 버리세요
헐헐
데이터 영역에 있는 코드인 경우는 마음대로 고쳐질 수 있습니다.
해킹 중의 Buffer Overflow에 대해서 조금 아신다면
self-modifying shellcode가 어느 영역에서 실행되는지를
생각해 보시기 바랍니다.
gas를 사용하신다면 간단하게 .code 없애주고 .data로 바꿔주는 것으로도
코드 영역 대신 데이터 영역으로 코드를 집어넣을 수 있습니다.
그 외의 정말 여러가지 방법이 있을 수 있고요.
http://home.postech.ac.kr/~sodomau
댓글 달기