BruceWind / AESJniEncrypt

🛡 Make safest code in Android. (基于libsodium实现chacha20算法,key在native中,防止被二次打包){长期维护,请star,勿fork}
Other
1k stars 164 forks source link

从cmake换回ndkbuild编译不通过? #5

Closed zeroleo12345 closed 6 years ago

zeroleo12345 commented 6 years ago

cmake正常编译, 但换回方法1, ndkbuild

Windows平台报错:

image

Linux平台报错:

image

BruceWind commented 6 years ago

我现在身边没有电脑,手机上简单看你的日志在clang , 你ndk配置了obfuscator 了没?看下我的教程。

zeroleo12345 commented 6 years ago

我已经是把obfuscator关了, ollvm的开关应该只是这些编译参数吧. 想先编译下无混淆的版本, 待会再编译混淆的对比. 结果就这样 image

zeroleo12345 commented 6 years ago

用ndkbuild成功编译了. 改少了个开关 image

BruceWind commented 6 years ago

抱歉!抱歉!刚刚在开车,未能及时回复,刚刚到家开电脑。

如果没有配置obfuscator 的话 这个库没有达到我期望的代码安全性。

你好了是吗? 如果好了,那我可否关闭这个 issues。

zeroleo12345 commented 6 years ago

嗯, 可以了, 您太客气。 这ollvm好像不支持windows,试了3天。。。现在换成linux终于可以编译了,现在在试下混淆效果。 另外cmake增加编译参数cFlags -fvisibility=hidden好像不会生效, IDA打开so还能看到函数名

作者回复: 我没有windows机器,这里我不太想表现出一个程序员的鄙视链,连mac下我也没试过,我有两台mac机器都给他装了linux。不过你可以帮我试下mac,然后给我一个反馈。

BruceWind commented 6 years ago

-fvisibility=hidden 这个我测试过 并没有什么卵用 ,我记得我在mk文件里有说明这个没有卵用。

BruceWind commented 6 years ago

忽然发现这个issues 是已经关闭的 。

zeroleo12345 commented 6 years ago

-fvisibility=hidden在ndkbuild下有用的, 我刚试了, 应该没眼花

BruceWind commented 6 years ago

NDKbuild有用? 你是用IDA吧,你换到objdump试试。IDA反编译会隐藏字符,但是我用objdump多余IDA,虽然IDA也支持linux。

BruceWind commented 6 years ago

你说的有用是隐藏函数? 我想要的是隐藏字符表。 当然,破解so文件不止有反编译,还有别的动态调试等等,后期这个仓库会做一些延伸拓展。欢迎star。

zeroleo12345 commented 6 years ago

已star了。目前只想防住一些小白, 大神的话就由他去吧。

BruceWind commented 6 years ago

好的。

zeroleo12345 commented 6 years ago

你想隐藏字符表, 估计ollvm混淆字符串也能适合这个需求吧

BruceWind commented 6 years ago

我是前期做的时候偷懒用字符串写到代码里,等我有时间,我再修改一下key的存储方式,到时候你review我的代码保证你看不到字符串,其实有很多更合适的方案隐藏key。先说到这里,我先忙去了。

BruceWind commented 6 years ago

新版key的安全存储方案,初阶版本。commit:fbf46a49183e84d160ae99a7e0127d206696847b