у меня есть этот простой код проверки кода:
#include <Windows.h>
#include <stdio.h>
/* Declare new sections to store encrypted code and shellcode data */
#pragma section(".code", execute, read, write)
#pragma comment(linker,"/SECTION:.code,ERW")
// From here executable code will go in .code section
#pragma code_seg(".code")
int test()
{
printf("prova");
return 0;
}
// .stub SECTION
#pragma section(".stub", execute, read, write)
#pragma code_seg(".stub")
int main(int argc, char *argv[]){
test(); /* Call function which executes shellcode now that it is decrypted */
return 0;
}
Может кто-нибудь сказать мне, почему, если я дам этот файл, я получил только этот раздел по умолчанию:
- .data
- .rdata
- .reloc
- .rsrc
- .stub
- .text
Сегмент .code не генерируется. Я думаю, что раньше делал это в каком-то предыдущем проекте, я делаю что-то не так?
- Дальнейшие испытания -
- Дамп файла
.obj
показывает секцию .code
.
.stub
получает показанный дамп .exe
или .obj
- удаление
#pragma comment(linker,"/SECTION:.code,ERW")
не сработало
- добавление
#pragma comment(linker,"/SECTION:.stub,ERW")
не изменило результат дампа на .exe
, .stub
все еще показывает
- изменить имя с
.code
на .somethingelse
тоже не сработало, тот же результат