|  |
| |
별빛을담아 |
ret(Return Address)에 임의의 공간 A의 address를 OverWrite함
그리고 어떤 공간 A에 Shellcode를 삽입
이렇게 Stack에 올린 뒤에 프로그램을 실행시 과정
프로그램 내부의 어떤 함수가 정상 작동 - ret을 참조(임의의 공간 A로 이동) - 임의의 공간 A의 내용을 읽어드림(Shellcode) - 읽어들인 값에 따라 다음 작업 실행(/bin/sh) - Shell
프로그램 정상실행시 과정
프로그램 내부의 어떤 함수가 정상함 - ret을 참조[ex) main함수의 위치] - 다음 알고리즘 ㄱㄱ
|
2011/08/22 |
|
| 메버리키 |
제가 이해한 방법으로는요,
EIP 가 있는 주소에서 하나씩 읽어와서 실행을 하거든요?
그런데 retn 명령어를 실행하면 저장되있는 리턴어드레스를 꺼내서 그곳으로 EIP를 바꿔버립니다. 원래 목적으론 이전 함수로 돌아가기 위한 거죠,
그런데 그 리턴어드래스를 쉘 코드(즉, 쉘을 실행시키는 코드) 가 있는 주소로 덮어써주게되면 EIP 가 쉘코드의 주소쪽으로 바뀌어서 쉘코드를 실행시키는겁니다. |
2011/08/22 |
|
Nolifeguard |
쉘코드 만들기 공부해보세요 ^ㅡ^// 설명 잘되엇어요 |
2011/08/23 |
|