gpt4 book ai didi

c - 从.c程序获取程序集x86的地址

转载 作者:行者123 更新时间:2023-11-30 19:34:37 25 4
gpt4 key购买 nike

作为软件工程研究的一部分,我需要编写一种小型病毒。

仅使用系统调用而没有任何标准库

我有一个.s文件,其中包含我为此项目编写的所有程序集,我需要从内部运行某些逻辑的.c文件获取病毒功能开始的地址和代码的末尾。他。

我在.s中定义了code_start和code_end为全局
并在.c中当然添加了extern部分

但我找不到如何从.c内到达适当标签的特定地址。

最佳答案

如果它是全局导出的符号,则C程序应该能够直接访问它(或者,当链接器将C程序与汇编程序链接时,链接程序应该能够解析它)。

但是,一个问题是,许多C工具链在所有全局标识符的前面都添加了下划线,因此,如果您有一个名为doSomething()的函数,则会将其导出为_doSomething()。如果标签名为virusStart,并且您在C程序中引用了virusStart(),则C编译器实际上将其称为_virusStart(),这就是链接程序将尝试解决的问题。

另一方面,汇编程序不一定要这样做。尝试在汇编器源文件中将名称更改为_code_start_code_end,以查看是否可行。

关于c - 从.c程序获取程序集x86的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43653323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com