로딩
요청 처리 중입니다...

[NASM Assembly x64] 간단한 execve 셸코드 만들기

 [NASM Assembly x64] 간단한 execve 셸코드 만들기

실습 장소 환경 Nasm v2.15.05 x64 on Linux Windows 11 WSL Ubuntu 22.04 목표: execve 셸코드를 작성하고 구동해보기 이번에는 어셈블리어를 이용하여 리눅스 64비트 커널에서 execve 셸 코드를 작성하고 실행해보겠습니다. execve란 특정 프로그램을 실행하는 커널 함수로, 리눅스 셸(Shell) 또한 프로그램이기 때문에 execve 함수를 이용하면 리눅스에 있는 셸도 실행시킬 수 있습니다. 여기서는 Ubuntu 22.04 환경에서, 기본 셸(/bin/sh)을 실행하는 방향으로 잡겠습니다.

바로 하드웨어와 상호작용하는 커널에 진입하여 직접 커널을 통째로 가져가기 위해 셸을 실행하는 겁니다. 리눅스 셸 스크립트로 실행하고자 한다면 그냥 아래처럼 간단히 하면 됩니다.

/bin/sh 그러나 우리는 어셈블리어로 만들 것이기 때문에, 어셈블리어와 가장 가까운 C언어로 미리 프로그램을 설계해보는 것이 도움이 됩니다. C언어에도 execve()함수가...

# 64비트 # 쉬운설명 # 셸코드 # 셸스크립트 # 리눅스 # x64 # stepbystep # shell # sh # NASM # execve # C언어 # CPU # Clang # C # bash # Assembly # 어셈블리