64 비트 정수를 푸시하려고하는데 NASM을 어셈블 할 때 이것을 QWORD가 아닌 DWORD로보고 싶을 것 같습니다.NASM에서 64 비트 int를 푸시하는 방법은 무엇입니까?
쉘 코드를 작성하는 데 ASM을 사용하고 있습니다. 64 비트 DLL을 64 비트 프로세스에 삽입해야합니다. 첫 번째 QWORD는 오래된 명령 포인터이고 두 번째는 DLL의 주소를 포함하는 주소이고 세 번째는 LoadLibrary의 주소입니다. 자리 표시자는 런타임에 채워집니다.
section .text
global _start
_start:
BITS 64
PUSH QWORD 0xACEACEACACEACEAC
PUSHFQ
push rax
PUSH QWORD 0xACEACEACACEACEAC
MOV RAX, 0xACEACEACACEACEAC
CALL RAX
pop RAX
POPFQ
RETN
관련 정보 [64 비트 레지스터에 64 비트 상수를 추가 할 수 있습니까?] (https://stackoverflow.com/questions/20020589/can-i-add-64bit-constants-to-64bit- 레지스터)를 참조하십시오. ['mov r64, imm64'와 메모리에서로드하는 것에 대해서도 참조하십시오.] (https://stackoverflow.com/questions/46433208/which-is-faster-imm64-oror -m64-for-x86-64). –