如下定义
static int num = 56789;
char str1[] = "pretty";
char str2[3] = {'a','b','c'};
char *str3 = "efg";
.text:0040B798 mov eax, dword ptr ds:aPretty ; "pretty"
.text:0040B79D mov [ebp+var_C], eax
.text:0040B7A0 mov cx, word ptr ds:aPretty+4
.text:0040B7A7 mov [ebp+var_8], cx
.text:0040B7AB mov dl, byte ptr ds:aPretty+6
.text:0040B7B1 mov [ebp+var_6], dl
.text:0040B7B4 mov [ebp+var_10], 61h
.text:0040B7B8 mov [ebp+var_F], 62h
.text:0040B7BC mov [ebp+var_E], 63h
.text:0040B7C0 mov [ebp+var_14], offset aEfg ; "efg"
发现str1 和 str3存放在rdata段中而且位置很近,如下
.rdata:00420F7A align 4
.rdata:00420F7C aEfg db 'efg',0 ; DATA XREF: test+40o
.rdata:00420F80 aPretty db 'pretty',0 ; DATA XREF: test+18r
.rdata:00420F80 ; test+20r ...
这里是是栈区还是常量区?
另外str2存放在那呢?
.text:0040B7B4 mov [ebp+var_10], 61h
.text:0040B7B8 mov [ebp+var_F], 62h
.text:0040B7BC mov [ebp+var_E], 63h
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课