본문 바로가기

High Level Technique/Shellcoding

Hello World Shellcode

Hello World Shellcode


앞서서 계속 만들어본 Hello World  ASM 코드를 가지고 Shellcode를 만들어 보겠습니다.










HelloWorld.nasm 소스코드 입니다. 이 코드를 objdump를 이용하여 NULL이 존재하는지 확인해 보도록 하겠습니다.










역시 NULL이 존재하게 됩니다. 이제 이 소스코드를 NULL이 나오지 않게 바꿔보도록 하겠습니다.










objdump 를 이용하여 확인한 결과 0x00값이 없는 것을 알 수 있습니다.

이제 이 실행파일을 objdump를 이용하여 쉘 코드를 만듭니다.









쉘 코드가 만들어 졌으므로 테스트를 해봅시다.









GCC로 컴파일 후 실행 시켰지만 뭔가 실행이 되긴 했습니다. 하지만 HelloWorld는 출력되지 않았습니다.

이 이유는 문자열이 저장된 helloworld가 어디인지 모르기 때문입니다.


이러한 것은 방지하기 위해서 JMP-CALL-POP 방법을 이용해야 하는데요.

다음 포스팅에서 이어가도록 하겠습니다.

'High Level Technique > Shellcoding' 카테고리의 다른 글

RIP 상대주소 이용하기  (0) 2016.03.13
JMP-CALL-POP 기술  (0) 2016.03.13
Shellcoding  (0) 2016.03.13
Libc, Nasm  (0) 2016.03.11
Prologue, Epilogue  (0) 2016.03.11