__argc 和 __wargv 全局变量如何从使用 Visual Studio 编译的 64 位 PE 文件导出?

逆向工程 聚乙烯 注射 视窗 10 汇编 x86-64
2021-06-27 21:03:24

我需要将我的代码注入 64 位进程。我想知道,我怎样才能访问__argc,并__wargv在注射过程中的全局变量一次?

在此处输入图片说明

它们是否总是出现在静态/预设地址?

1个回答

这两个符号不是以通常的方式导出(即通过导出表)。相反,它们是运行时库本身内的公共符号。在 _main() 之前运行的启动代码执行命令行解析,将参数分配到 __wargv 数组中,并将计数存储在 __argc 中。文件的相对地址是固定的,但如果地址空间布局随机化 (ASLR) 生效,绝对地址会有所不同。