日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NASM import win32api

發布時間:2024/1/1 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NASM import win32api 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

找到些資料, 現在可以在nasm工程中引入win32api了.

應該說, nasm的編譯環境已經準備好了.

; import_api.asmBITS 32; %include "C:\nasm\include\win32n.inc" MB_OK equ 0hextern printf import printf MSVCRT.DLLextern MessageBoxA import MessageBoxA user32.dll; extern ExitProcess ; import ExitProcess kernel32.dllsegment .data USE32 msg db "nasm : import_api", 0h fmt_msg db "%s", 0htitle db "hello",0 message db "hello world",0segment .bss USE32; var1 resb 32segment .code USE32..start:; 用(NASM + AlINK)生成的工程和(NASM + MINGW_GCC)生成的工程差好多 ; 用OD加載后, 可以看到(NASM + AlINK)生成的工程和我們手寫的一樣 ; 而(NASM + MINGW_GCC)生成的工程入口處有很多前置的代碼; 如果要向控制臺寫信息, 不能用printf ; 必須用GetStdHandle系列API, 否則報錯, 可能是C運行時庫沒有初始化導致 ; https://msdn.microsoft.com/en-us/library/ms683231.aspx ; https://msdn.microsoft.com/en-us/library/ms687401.aspx ; push msg ; push fmt_msg ; call printf ; add esp, 8push dword MB_OK push dword title push dword message push dword 0 call [MessageBoxA]; push dword 0 ; call [ExitProcess]xor eax, eax ret

; go.bat cls del F:\nasm_prj\src\import_api\*.obj del F:\nasm_prj\src\import_api\*.exeecho off rem 如果工程中要引入Dll的API, nasm 要使用 -f obj 生成 o.obj rem section .data use32, section .bss use32, section .text use32 rem 然后使用 ALINK 生成exe rem 如果不這樣, 編譯不過 echo onc:\nasm\nasm.exe -fobj F:\nasm_prj\src\import_api\import_api.asm c:\nasm\alink\alink.exe -c -oPE -subsys con F:\nasm_prj\src\import_api\import_api.obj; 如果要生成純win32窗口工程 -subsys gui 或者 -subsys win ; c:\nasm\alink\alink.exe -c -oPE -subsys gui F:\nasm_prj\src\import_api\import_api.objF:\nasm_prj\src\import_api\import_api.exe

NASM編譯環境需要NASM, WINGW_GCC, ALINK, WIN32N.INC,?調試用OD(需要在Win7X64下能調試X86PE的那種)

NASM編譯環境下載點:?nasm_dev_env.rar

C:\NASM ├─ALINK ├─contrib │ └─VSrules ├─include ├─MinGW │ ├─bin │ ├─lib │ │ └─gcc │ │ └─mingw32 │ │ └─4.6.2 │ ├─libexec │ │ └─gcc │ │ └─mingw32 │ │ └─4.6.2 │ └─mingw32 │ └─bin ├─MinGW64 │ ├─bin │ ├─include │ │ └─gdb │ ├─lib │ │ └─gcc │ │ └─x86_64-w64-mingw32 │ │ └─4.8.1 │ ├─libexec │ │ └─gcc │ │ └─x86_64-w64-mingw32 │ │ └─4.8.1 │ ├─opt │ │ ├─bin │ │ └─lib │ │ └─python2.7 │ │ └─encodings │ ├─share │ │ └─gdb │ │ ├─python │ │ │ └─gdb │ │ │ ├─command │ │ │ └─function │ │ └─syscalls │ └─x86_64-w64-mingw32 │ ├─bin │ └─lib ├─OD │ ├─LIB │ ├─OdWin7X64插件補丁 │ ├─plugin │ ├─tools │ │ ├─HideToolz │ │ └─xidt │ ├─UDD │ └─原版 │ ├─漢化原版 │ └─英文原版 └─rdoff

總結

以上是生活随笔為你收集整理的NASM import win32api的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。