bluesadi / Pluto

Obfuscator based on LLVM 14.0.6
809 stars 181 forks source link

通过GlobalEncryption混淆变量创建的函数,可以插入在该变量使用之前嘛? #62

Open Dfault0 opened 6 months ago

Dfault0 commented 6 months ago

原本是将字符串解密的函数放在了init_array中,这样的话so一加载就能够自动解密了, image 可以将这些解密的函数放在调用这个变量之前嘛?有没有大佬做到了呀?

mrh929 commented 6 months ago

编译器很难准确预测一个变量在什么时候会被引用,比如我 int a,b; printf("%d", *(&a + 1)),编译器应该没有办法做到对 b 的预测(它只知道 a 变量被引用了)。还有很多 corner case,很难保证整体预测率达到 100%

bluesadi commented 6 months ago

之后可以试试,但corner case确实会比较多,比如间接引用之类的

Dfault0 commented 6 months ago

编译器很难准确预测一个变量在什么时候会被引用,比如我 int a,b; printf("%d", *(&a + 1)),编译器应该没有办法做到对 b 的预测(它只知道 a 变量被引用了)。还有很多 corner case,很难保证整体预测率达到 100%

感觉很难哇,尤其是您说的间接应用的情况

Dfault0 commented 6 months ago

之后可以试试,但corner case确实会比较多,比如间接引用之类的

期待~