魔改Apple Clang注入混淆代码并保持其他功能可用性


#1

这个点子当时Hikari开源的时候我就想过,实在是太Hack了所以一开始并没有尝试,既然有人需要的话

代码应该是自解释的,有空再写详情


#2

tql,xmsl


#3

tql,bksn


#4

编译好了 不会用。。。应该是我的用法有问题。。。


#5

README不是写的很清楚么


#7

应该有更简单的办法,比如把pass编译成llvm_loadable_module,然后把clang替换成脚本

"/path/to/original-clang" -Xclang -load -Xclang "/path/to/libPass.dylib" "$@" 

#8

试过了,巨坑


#9

Create a folder called build/ in Loader/ , inside it build the Loader with cmake -DCMAKE_BUILD_TYPE=Release ../ and ninja

提示:ninja: error: loading ‘build.ninja’: No such file or directory

我的姿势不对吗?


#10

漏打了。cmake后面加上-G Ninja


#11

大佬回复好快:+1:

感谢指导,现在已经好了。之前我也尝试加了-G ninja,但是加在了…/的路径前面,结果一直过不去。


#12

我想问下是我的用法不对还是怎么回事 代码没有任何变化
我在终端执行export ALLOBF
然后执行 /Applications/Xcode.app/Contents/MacOS/Xcode`
然后执行我的项目
然后添加了argment ALLOBF


然而执行过后代码没有任何变化


#14

export ALLOBF=1


#15

项目里argment ALLOBF 不需要加


#16

把混淆参数放在App启动参数里也是牛逼。不过国内做那种坑钱劣质手游的也就这个智商


#17

export ALLOBF=1 这样执行下来代码也是没什么变化 不是会注入混淆代码吗。。。


#18

Due to many LLVM internal design choices, you can no longer pass options from command line and instead you’ll have to use environment variables. Currently it supports the following:
environment variables xcode就是那么添加的。。。


#19

弄好了 我以为是在代码里面添加垃圾内容了 看起来跟光差不多么。。。


#20

大神 我设置了环境变量 用IDA查看 还是无效 求指点。

我在~/.bash_profile 和 /etc/profile都设置了

export FCO=1
export BCFOBF=1

不好意思 刚刚入门 菜鸡。


#21

尴尬……搞定了,是我想当然了。完全按照git上的操作流程就可以了。
export后执行“ * /Applications/Xcode.app/Contents/MacOS/Xcode”,然后打开自己的项目进行编译就可以了。


#22

这就是移植到AppleClang版的光。。。。而且光本身就有添加垃圾内容。