2
그래서 다음 코드를 가지고 있습니다.이 코드는 mmap linux 시스템 호출을 사용하여 메모리를 할당합니다. 이러한 명령어를 실행 한 후 할당 된 메모리에 대한 포인터는 eax에 저장됩니다. 이 포인터를 사람이 읽을 수있는 형식 (예 : "00ffbfff")으로 인쇄하려면 어떻게해야합니까?x86에서 stdout에 대한 포인터를 출력합니까?
쓰기 시스템 호출을 사용하여 stdout으로 인쇄하는 방법을 알고 있지만 eax에 저장된 값을 16 진수 표현으로 변환하는 방법을 알고 싶습니다.
section .text
global _start
_start:
; mmap struct
push 0 ;
push -1 ; set the file dsc to -1 for MAP_ANONYMOUS
push 0x20 ; set MAP_ANONYMOUS
push 0x07 ; set Protections WRX
push 0x04 ; size to allocate
push 0 ; geuss - Not Applicable
;; syscall
push eax, 90 ; mmap opcode
push ebx, esp ; mmap struct
int 0x80 ; execute the system call
; allocated address in in eax