>>237
ifで使われているptr_SE[i].Characteristicsのフラグについては↓に書いてある
ttp://www.geocities.jp/winapi_database2/special/2001_10_11/page7.html
あと、const宣言は.rdata、static宣言は.data(初期値あり)、.bss(初期値なし)に配置されたと思う‥‥
って、全然アセンブリ言語じゃないや。

#include <stdio.h>
#include <windows.h>

int main(int argc,char *argv[])
{
 PIMAGE_DOS_HEADER ptr_MZ;
 PIMAGE_NT_HEADERS ptr_PE;
 PIMAGE_SECTION_HEADER ptr_SE;
 int i;

 ptr_MZ = (void*)GetModuleHandle(0);
 ptr_PE = (void*)ptr_MZ + ptr_MZ->e_lfanew;
 ptr_SE = (void*)ptr_PE + sizeof(DWORD) + sizeof(IMAGE_FILE_HEADER) + ptr_PE->FileHeader.SizeOfOptionalHeader;

 for(i = 0 ; i < ptr_PE->FileHeader.NumberOfSections ; i++) {
  if(!(ptr_SE[i].Characteristics & IMAGE_SCN_MEM_WRITE)) {
   printf("Address: %p\n",ptr_MZ + ptr_SE[i].VirtualAddress);
   printf("Size: %d\n",ptr_SE[i].Misc.VirtualSize);
  }
 }
 return 0;
}