/bin/sh & /bin//sh 비교
어셈블리어에서 문자열을 처리하는 단위는 4바이트이다.
하지만 "/bin/sh"는 7바이트 문자열이다.
8바이트의 문자열어서 다루는 것이 편리하기 때문에 "/" 문자를 하나 더 입력하고 8바이트 길이의 문자열로 인위적으로 만든것이다.
동작은 /bin/sh 와 /bin//sh는 동일하게 동작한다. 다루기 쉬운 문자열로 변경만 한것이다.
/bin/sh(7바이트) == /bin//sh(8바이트)
NULL처리 하기 복잡 /기호를 하나 더 적어 변환처리 없이 사용
(linux200)
# ps
PID TTY TIME CMD
14186 pts/1 00:00:00 bash
# /bin/sh
# ps
PID TTY TIME CMD
14186 pts/1 00:00:00 bash
14219 pts/1 00:00:00 sh
# exit
# /bin//sh
# ps
PID TTY TIME CMD
14186 pts/1 00:00:00 bash
14223 pts/1 00:00:00 sh
# exit
-> 동일하게 동작하는 것을 확인 할 수 있다.
'Learning > └◆Reversing' 카테고리의 다른 글
[참고] 쉘코드(ShellCode) 만드는 방법2 (0) | 2017.01.30 |
---|---|
[참고] 쉘코드(ShellCode) 만드는 방법 (0) | 2017.01.30 |
[참고] Format String이란 (0) | 2017.01.30 |
11_Level11 -> Level12[FTZ] 포맷스트링(Format string directive) 취약점 (0) | 2017.01.30 |