Я пытаюсь создать полиморфный движок, поэтому мне нужен точный начальный и конечный адрес в результирующем исполняемом файле внешней программы 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
1) Мне нужен начальный и конечный адрес добавления printVal.c
в исполняемый файл вируса.
2) Можно ли выровнять printVal.c
в 16 во время связывания?
Извинения, если в вопросе не используются правильные термины.