Android JNI 如何隐藏关键信息?

最近公司做的项目小火了,于是出现一堆外挂程序,有的甚至直接抓包模拟请求,简直猖狂!

虽然我们接口做了校验,但是salt+md5这种套路大家都懂,只要apk被反编译了,基本就阻止不了敌人。

所以我们要把关键的salt藏起来,比如藏到so里。

具体的so我参考了以下两篇文章做了出来↓

使用 Android Studio 写出第一个 NDK 程序(超详细)

Android 安全系列之如何在 native 层保存关键信息

但是,做完之后的so我试着用IDA打开,发现字符串暴露无疑,签名暴露也就算了,salt也暴露简直可怕!

所以我简单设计了一下,由App端传入一个字符串key1,再跟so中的一个字符串key2按照写好的规则进行组合,这个规则可以自己写的复杂点,增加破解难度。

再用IDA打开,就只能看到so中的字符串key2,和一堆看不懂的汇编代码,真正的salt是要运行过so才能获取的,而运行so会校验签名,保证了不会被敌人直接运行获取到。

当然,如果敌人看得懂汇编代码,又拿到了key1跟key2,那就认命了吧。

转载于:https://my.oschina.net/u/816576/blog/3066987

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值