본문 바로가기

Learning/└◆Reversing

[참고] FTZ LEVEL11 쉘코드 제작시 참고

/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

-> 동일하게 동작하는 것을 확인 할 수 있다.