Можно ли получить начальный и конечный адрес связанной программы на C? - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь создать полиморфный движок, поэтому мне нужен точный начальный и конечный адрес в результирующем исполняемом файле внешней программы C * printVal.c, которая связана с программой сборки virus.o, в которой находится основная функция. NASM и C это компилятор

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;
}

Глядя на результирующий virus исполняемый файл в ida pro, я могу видеть, однако я понятия не имею, где начинается и заканчивается программа или как я могу получить начальный и конечный адрес с помощью программного обеспечения в файле virus.asm или с помощью методов. такие как objdump. Одна вещь, которую я заметил, это то, что printVal.c коды в ida pro помечены Attributes: bp-based frame

enter image description here

1) Мне нужен начальный и конечный адрес добавления printVal.c в исполняемый файл вируса.

2) Можно ли выровнять printVal.c в 16 во время связывания?

Извинения, если в вопросе не используются правильные термины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...