SDOJ 2.5 eXtensible 的评测器会对编译后的程序进行 API 导入检查,以阻止调用可能危害系统安全的 API。但是呢,API 是可以动态加载的,而相关的 API在内存中的位置是固定的,这就产生了一个安全隐患,即可以利用 ShellCode 绕开 API 检查来攻击系统。
于是乎,我们就必须另外想一个办法来解决此问题。由于每个进程的进程空间相互隔离,因此在一个进程空间里修改一个共用 DLL 的代码是不会影响到其他进程的。可能已经有人想到了,这就是 API 断点 + 调试跟踪技术!具体思路是:
1、用调试方式运行被评测的程序
[......]