可以获取链接的C程序的开始和结束地址吗?

时间:2019-04-08 10:20:52

标签: c assembly x86 nasm reverse-engineering

我正在尝试创建一个多态引擎,因此我需要外部C程序printVal.c的可执行文件中的精确起始地址和结束地址,该程序链接到汇编程序virus.o,其中主要功能居住。 NASMC是编译器

virus:  printVal.c virus.o
    $(CC) $(LFLAGS) $^ -o $@

virus.o: virus.asm template.asm.inc
    $(ASM) $(AFLAGS) $< -o $@

printVal.c包含:

#include <stdio.h>

long printVal(long val)
{
        printf("0x%lx\n", val);
        return 0;
}

我可以看到ida pro中生成的virus可执行文件,但是我不知道程序在哪里开始和结束,或者如何在virus.asm中以编程方式获取开始地址和结束地址文件或通过诸如objdump之类的方法。我注意到的一件事是ida pro中的printVal.c代码标记为Attributes: bp-based frame

enter image description here

1)我需要在病毒可执行文件中添加printVal.c的开始和结束地址。

2)链接过程中printVal.c是否可以对齐16?

很抱歉,如果问题没有使用适当的用语。

0 个答案:

没有答案