刚刚r2dumpbin把大富翁4的rich4.exe还原为了汇编。有几个要点:
- 它有.reloc节,说明程序可重定位,并且可以通过重定位信息获得所有的指针。
- 有大量的函数需要手动标记,一部分是结构体里的指针常量,一部分是用mov填入内存的回调函数指针,还有的是Windows API用的回调函数。
- radare2/rizin解析PE节有bug,rich4.exe的DGROUP节权限是rw-,但r2却认为没写权限。结果得到的文件运行时出现访存异常,最后把DGROUP改成.data就正常了。后来用winedump确认了DGROUP节是可写的。
刚刚试跑了一下,程序还是有问题的,不知道哪里出错了。
- 它有.reloc节,说明程序可重定位,并且可以通过重定位信息获得所有的指针。
- 有大量的函数需要手动标记,一部分是结构体里的指针常量,一部分是用mov填入内存的回调函数指针,还有的是Windows API用的回调函数。
- radare2/rizin解析PE节有bug,rich4.exe的DGROUP节权限是rw-,但r2却认为没写权限。结果得到的文件运行时出现访存异常,最后把DGROUP改成.data就正常了。后来用winedump确认了DGROUP节是可写的。
刚刚试跑了一下,程序还是有问题的,不知道哪里出错了。