关于汇编代码的问题求解

凤翔东路Dong77 2024-08-12 01:28:06

代码如下:

; https://gist.github.com/esoterix/df38008568c50d4f83123e3a90b62ebb
include ksamd64.inc
extern InstrumentationCallback:proc
EXTERNDEF __imp_RtlCaptureContext:QWORD
.code
InstrHook proc

    mov  gs:[2e0h], rsp            ; Win10 TEB InstrumentationCallbackPreviousSp
    mov  gs:[2d8h], r10            ; Win10 TEB InstrumentationCallbackPreviousPc
    mov  r10, rcx                  ; Save original RCX
    sub  rsp, 4d0h                 ; Alloc stack space for CONTEXT structure
    and  rsp, -10h                 ; RSP must be 16 byte aligned before calls
    mov  rcx, rsp
    call __imp_RtlCaptureContext   ; Save the current register state. RtlCaptureContext does not require shadow space
    sub  rsp, 20h                  ; Shadow space
    call InstrumentationCallback   ; Call main instrumentation routine

InstrHook  endp

end

我在尝试编译时发现报错:

由于我不是很懂汇编代码,我上网搜的是在前面添加上.model flat,但是又会出现新的报错:

 我尝试了很多次,都不知道该怎么解决,希望有懂汇编的兄弟能给解答一下,感谢

 

...全文
215 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2024-08-16
  • 打赏
  • 举报
回复

仅供参考:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\ml64.exe
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\ml64.exe
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\ml64.exe
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64\ml64.exe
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\ml64.exe
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\ml64.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\ml64.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x64\ml64.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\ml64.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x64\ml64.exe
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\ml64.exe
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x64\ml64.exe
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\bin\Hostx64\x64\ml64.exe
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\bin\Hostx86\x64\ml64.exe

  • 打赏
  • 举报
回复

.model flat只用于32位汇编,你这是64位代码,不需要。
在命令行下:
ml64 /c instrhook64.asm

凤翔东路Dong77 2024-08-12
  • 举报
回复
@日立奔腾浪潮微软松下联想 ml64 /c InstrHook64.asm运行的话提示说'ml64' 不是内部或外部命令,也不是可运行的程序或批处理文件。但是ml运行的话就可以,而且报错InstrHook64.asm(2) : fatal error A1000: cannot open file : ksamd64.inc。说打不开这个文件,但是我在VS运行都没有提示这个错误。
  • 举报
回复
@凤翔东路Dong77 你要安装vs才有这些工具,打不开文件是路径设置的问题

21,489

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧