#1 楼
我几年前在恶意软件样本中发现的一个不透明谓词:SetErrorMode(1024);
if ( SetErrorMode(0) == 0 )
SayHiToEmulator();
DoRealStuff();
关于另一个问题,如何构建新的不透明谓词,我认为这取决于您想要破坏的分析仪。破坏旨在发现错误的静态代码分析器与破坏旨在模仿恶意软件运行环境的仿真器是不同的。
但是,让我们说,您想破坏恶意软件仿真器:您可以从最常用的库(kernel32.dll,advapi32.dll,user32.dll等)构建API列表,创建一批证明,在其中执行这些API更改参数并检查返回值和生成的异常,如果有的话,并保存结果。然后检查此类API的结果并找到候选者:例如,与此类API的输入相关的返回值是不透明谓词的良好候选者。很少发生且带有某些特定输入的特定条件(异常或返回值)更好。只是一些想法...