我不知道 GUI 中是否有任何本机内置允许您更改分段权限的内容,但是您可以使用 IDC 轻松更改分段权限。
来自 IDA 的帮助文件:
SetSegmentAttr
***********************************************
** set segment attribute
arguments: segea - any address within segment
attr - one of SEGATTR_... constants
value - the new value of the attribute
success SetSegmentAttr(long segea, long attr, long value);
SEGATTR_ALIGN alignment
SEGATTR_COMB combination
SEGATTR_PERM permissions
SEGATTR_FLAGS segment flags
SEGATTR_SEL segment selector
SEGATTR_ES default ES value
SEGATTR_CS default CS value
SEGATTR_SS default SS value
SEGATTR_DS default DS value
SEGATTR_FS default FS value
SEGATTR_GS default GS value
SEGATTR_TYPE segment type
SEGATTR_COLOR segment color
从段.hpp:
/* 22 */ uchar perm; // Segment permissions (0-no information)
#define SEGPERM_EXEC 1 // Execute
#define SEGPERM_WRITE 2 // Write
#define SEGPERM_READ 4 // Read
因此,如果要将以 VA 0x00400000 开始的段的权限设置为读取和执行,则只需运行以下 IDC 命令:
SetSegmentAttr(0x00400000, SEGATTR_PERM, 4 | 1);
或者,如果你只是寻找应对来自六角射线的警告,但可能足以使用细分查看在GUI中从改变一个段的类CODE
来DATA
。