Hlkari

如果第一个DAG里有后面没有的话就是实锤DAG Construction的时候优化掉了

弟啊那是类型系统的签名啊

这能anti stalker的trace?我理解的stalker是指令级别的追踪器,即使交错在一起对它也没有什么影响。

布局上交错在一起?需要改Final Layout相关的代码。 CFG / IR上? No

其实stripPointerCasts就好了

想了一下。应该都不行,目前的LLVM流水线里Layout是远在RA后面的

你用的llvm那个版本,我xcode测试llvm12.x,我这边测试,发现-O0,pass是混淆了的,但是生成.s 还说被优化了。

他是11 看你不知道跟你说一下

谢谢,张总,哪里看出来是11 ?对话中,我看不出。

ollvm 里面的sub pass 在-O0情况下有效果,但是splitpass 是-O0也是无效的,有试过?

是,你翻光的repo有个关掉的issue就是这个问题。我能想到的就是建模已知Semantic的外部引用。

但最稳妥的其实也只有光那种实现

看到过很多栈上解密的样本,google的safetynet的字符串就是在栈上解密的。实现这个可能得需要对变量的逃逸分析有深入的研究,保证栈上解密后的字符串不会在函数返回之后还会被使用。

是,所以我说要model外部函数调用的semantic或者自己维护一套白名单etc etc

还有一种可能就是让代码编写的自己决定什么时候标记使用栈上的实现

不改前端只能这样 :grinning_face_with_smiling_eyes: