본문 바로가기

Hello World

Hello World Shellcode Hello World Shellcode 앞서서 계속 만들어본 Hello World ASM 코드를 가지고 Shellcode를 만들어 보겠습니다. HelloWorld.nasm 소스코드 입니다. 이 코드를 objdump를 이용하여 NULL이 존재하는지 확인해 보도록 하겠습니다. 역시 NULL이 존재하게 됩니다. 이제 이 소스코드를 NULL이 나오지 않게 바꿔보도록 하겠습니다. objdump 를 이용하여 확인한 결과 0x00값이 없는 것을 알 수 있습니다.이제 이 실행파일을 objdump를 이용하여 쉘 코드를 만듭니다. 쉘 코드가 만들어 졌으므로 테스트를 해봅시다. GCC로 컴파일 후 실행 시켰지만 뭔가 실행이 되긴 했습니다. 하지만 HelloWorld는 출력되지 않았습니다.이 이유는 문자열이 저장된 hello.. 더보기
Hello World Hello World 프로그래밍을 처음 시작 하시는 분들은 항상 먼저 출력해보는 것이 바로 Hello World 이지 않을까 싶습니다. 비교를 위해서 C언어로 작성된 Hello world와 ASM으로 작성된 Hello World를 보도록 하겠습니다. 아주 간단한 Hello World 출력 소스코드 입니다. 실행 시 Hello World\n가 출력됩니다. 이 소스코드를 ASM 코드로 바꾼다면 어떻게 될까요? 소스코드가 7줄에서 무려 18줄로 늘어났습니다. 당연한 결과입니다. 고급언어인 C언어를 저급언어인 ASM로 바꿨기 때문입니다. 추가적으로 C언어의 소스코드 파일 확장자는 *.c 이며, ASM 소스코드 파일 확장자는 *.nasm 입니다. 컴파일 및 실행방법 HelloWorld.c 파일은 우분투에서 다음과.. 더보기