Untitled
unknown
plain_text
a year ago
1.0 kB
4
Indexable
#include <stdio.h>
#include <windows.h>
// Global variables as anchors
int data_var = 42; // In .data section
char bss_var; // In .bss section
void get_section_boundaries() {
MEMORY_BASIC_INFORMATION mbi;
// .data section
if (VirtualQuery(&data_var, &mbi, sizeof(mbi))) {
printf(".data section boundaries:\n");
printf(" Start: %p\n", mbi.BaseAddress);
printf(" End: %p\n", (char*)mbi.BaseAddress + mbi.RegionSize);
} else {
printf("Failed to retrieve .data section boundaries.\n");
}
// .bss section
if (VirtualQuery(&bss_var, &mbi, sizeof(mbi))) {
printf(".bss section boundaries:\n");
printf(" Start: %p\n", mbi.BaseAddress);
printf(" End: %p\n", (char*)mbi.BaseAddress + mbi.RegionSize);
} else {
printf("Failed to retrieve .bss section boundaries.\n");
}
}
int main() {
printf("Detecting memory sections in MinGW (32-bit)...\n");
get_section_boundaries();
return 0;
}Editor is loading...
Leave a Comment