GetModuleFileNameA获取病毒的自身路径

本文介绍了一个Windows API函数GetModuleFileName的使用方法,该函数用于获取当前进程已加载模块的完整文件路径。通过示例代码展示了如何调用此API并将获取到的信息打印输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取当前进程已加载模块的文件的完整路径,该模块必须由当前进程加载。

DWORD WINAPI GetModuleFileName(

    _In_opt_  HMODULE hModule, //模块句柄
    _Out_     LPTSTR lpFilename, //存放地址
    _In_      DWORD nSize //大小
);

#include "stdafx.h"
#include "windows.h"
int main(int argc, char* argv[])
{
char path[80];
GetModuleFileName(0,path,80);
printf("Hello World!\n");
return 0;
}


反汇编代码:

00401210         /$  8B4424 04   mov     eax, dword ptr [esp+4]  ;  auto.00408A70
00401214         |.  68 04010000 push    80                ; /BufSize = 80
00401219         |.  50          push    eax                 ; |PathBuffer
0040121A         |.  6A 00       push    0                   ; |hModule = NULL
0040121C         |.  FF15 6C7040>call    dword ptr [<&KERNEL32.GetModule>; \GetModuleFileNameA ;把病毒的文件路径保存在eax里
00401222         |.  F7D8        neg     eax         
00401224         |.  1BC0        sbb     eax, eax
00401226         |.  F7D8        neg     eax
00401228         \.  C3          retn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值