And*_*kha 2 c c++ operator-precedence deobfuscation
在将一些混淆的 C 代码移植到 C++(即Harm Geert Muller 的Fairy-Max国际象棋引擎)后,我收到了很多类似于以下的警告:
建议在 '&' [-Werror=parentheses] 的操作数中的比较周围加上括号
建议在“&”的操作数中将“+”括起来
虽然关闭警告不是一个选项,但解决方案是根据运算符优先级在表达式中添加括号。
例如:
if(z&S&&!ab&K==INF&d>2&v>V&v<Beta){
Run Code Online (Sandbox Code Playgroud)
需要改成这样:
if((z&S) && ((!ab)&(K==INF)&(d>2)&(v>V)&(v<Beta))) {
Run Code Online (Sandbox Code Playgroud)
但是手动执行此操作非常耗时。
我尝试使用这个clang-format内部使用的反混淆工具,但它没有在表达式中添加括号......
题
是否有一种工具(最好是在线的)可以将 C/C++ 表达式作为输入并返回一个无警告的等效表达式作为输出?
我一直想要一个网络版本,但上次我试图让 Geordi 在我的 VPS 上工作时,由于 Haskell 依赖 gubbins,我悲惨地失败了。有一天可以再试一次。
同时,您可以登录 Freenode IRC和/msg geordi --precedence *p->data(例如)。您将打开一个带有结果的私人消息选项卡(例如*(p->data))。随时--precedence <expression>在该选项卡中继续发送请求。