@WangBeiCheng wrote:
静态库文件可以用张总的Hikari做加固,但却不知道如何对开启bitcode的app的.xcarchive做混淆加固。
静态库
静态库重新编译bitcode的步骤:
1、拿到libWJNetwork.a中的.o文件:
ar -x libWJNetwork.a
目录下会生成两个文件:
WJNetwork.o __.SYMDEF SORTED
2、终端输入命令,处理WJNetwork.o文件,生成result.bc文件,就是bitcode文件。
segedit WJNetwork.o -extract “__LLVM” “__bitcode” result.bc
3、使用Hikari处理bitcode文件,生成.o文件:
/path_to/Hikari.xctoolchain/usr/bin/clang -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs -fobjc-arc -c result.bc -mllvm -enable-cffobf -mllvm -enable-bcfobf -o result.o
4、生成.a文件:
rm __.SYMDEF\ SORTED
ar -crs result.a result.o
ranlib result.a混淆加固完成。
开启bitcode的app
APP开启bitcode,生成.xcarchive文件,对.xcarchive文件做混淆加固。
测试的APP项目名为 TestBitCode1、把TestBitCode二进制文件中的bitcode分离出来,得到一个.bc文件
segedit TestBitCode -extract “__LLVM” “__bundle” result.bc
2、执行编译混淆
/path_to/Hikari.xctoolchain/usr/bin/clang -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs -fobjc-arc -c result.bc -mllvm -enable-cffobf -mllvm -enable-bcfobf -o result.o
报错:
error: expected top-level entity
xar!<U+0000><U+001C><U+0000><U+0001><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+000B><9A><U+0000>…
^
1 error generated.
对app这样操作,应该是不行。
请问各位大佬,有没有做过类似的对开启bitcode的APP做过类似的加固处理,能指点我一下。
对开启bitcode的APP的.xcarchive文件,应该用怎样的步骤呢?????
Posts: 2
Participants: 2