增加底层库的破解难度的一个小方法

有时候开发需要底层的库的支持,或者不方便写在java层的代码都有移到native底层写的需求,最终都是以.so动态库的形式调用,但是有一个问题,使用“nm -A/D libNativeExampleActivity.so”会看到你的.so库中所有写的方法,而如果你的函数命名很规范,并且面向对象,这样会显著降低别人破解的难度,因此最好需要做一下方法混淆,增加一些难度。

也许有人说底层库没必要去做这些,但是如果你的客户端和服务端的一些通信加密算法等重要信息放在这里的话,就需要尽一切手段增加其难度。

看一下这个文件:

#!/usr/bin/python
#coding=utf-8
import random

'''
获取所有需要替换的text,返回一个字典 
'''
def get_macros_dict():
    my_file = open('macros.txt', 'r')
    lines = my_file.readlines()
    return [line.strip() for line in lines]

def get_text_dict(s, l):
    if l == 1:
        return [x for x in s]
    else:
        return [x+y for x in s  for y in get_text_dict(s, l-1)]

def get

你可能感兴趣的:(jni学习,破解)