<commit_before># 追求极致的代码安全性保障 
- [x] ndk实现AES加密
- [x] 使用JniOnload 隐藏c函数
- [x] 再做一层防止被二次打包的签名校验
- [x] key存在符号表中，同时隐藏字符表
- [x] 使用obfuscator混淆C的代码
- [x]  obfucator已经支持x86,具体配置obfucator的教程底部有链接。
- [x] 手工处理隐藏key，最复杂的方案：将密钥分成不同的几段，存储在不同的代码中，最后将他们拼接起来，可以将整个操作写的很复杂，增加逆向难度。（目前代码里用的是稍微简单的方案）
- [ ] TODO：代码run的时候屏蔽模拟器
- [ ] TODO：防止so代码被code inject
```
char * key = "<KEY>";//这里是key被做过处理存储在这里的，实际上真实的key是："<KEY>"
```
## 集成

a.先配置local.properties中ndk.dir 要求使用ndk版本必须12b以上.<commit_msg>[README]:{update RAEDME.}<commit_after># 追求极致的代码安全性保障 
- [x] ndk实现AES加密
- [x] 使用JniOnload 隐藏c函数
- [x] 再做一层防止被二次打包的签名校验
- [x] key存在符号表中，同时隐藏字符表
- [x] 使用obfuscator混淆C的代码
- [x]  增加obfucator对x86的支持,具体配置obfucator的教程底部有链接。
- [x] 手工处理隐藏key，最复杂的方案：将密钥分成不同的几段，存储在不同的代码中，最后将他们拼接起来，可以将整个操作写的很复杂，增加逆向难度。（目前代码里用的是稍微简单的方案）
- [ ] TODO：代码run的时候屏蔽模拟器
- [ ] TODO：防止so代码被code inject
```
char * key = "<KEY>";//这里是key被做过处理存储在这里的，实际上真实的key是："<KEY>"
```
## 集成

a.先配置local.properties中ndk.dir 要求使用ndk版本必须12b以上.
{'fraction_non_alphanumeric': 0.15657620041753653, 'fraction_numerical': 0.008350730688935281, 'mean_word_length': 6.672, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6754172', 'n_tokens_mistral': 724, 'n_tokens_neox': 828, 'n_words': 52}