Open ohroy opened 7 years ago
这个只对 data 有效, 如果改的是 code, 需要重新改回原来的内存属性, 否则会 exec bad address(code = 2)
@jmpews 是啊,这个是当时做实验临时存上来的,实际上对于data来说,一般本来都是对齐的。。
我也想改回去原来的属性,但是这个mac os不像是windows,在windows下VirtualProtect
函数修改内存属性后,会把原来的内存属性通过指针返回出来。但是macos上,我找了很多的地方都没找到能够获取原来内存属性的办法,所以也没法恢复。
但我看你的https://github.com/jmpews/HookZz/blob/master/src/zzdeps/darwin/memory-utils-darwin.c#L147这里面,是直接给了读和执行的权限,也不知道是否稳妥....
你可以重新看下, 我添加了 darwin/linux 下的 get_memory_layout. (PS: darwin 下可以获取页的属性