Android JNI 获取应用签名
来源:互联网 发布:mac撤销快捷键 编辑:程序博客网 时间:2024/04/28 23:38
使用Android JNI 获取应用签名。
根据获取的签名来生成自己的密码,这样可以防止别人反编译自己的源码后查找密码。
jstring Java_com_masonsdk_jni_JNIUtil_getPWD(JNIEnv* env, jobject thizz,jobject thiz){jclass native_clazz = env->GetObjectClass(thiz); // 得到 getPackageManager 方法的 ID jmethodID methodID_func =env->GetMethodID(native_clazz,"getPackageManager", "()Landroid/content/pm/PackageManager;"); // 获得应用包的管理器 jobject package_manager = env->CallObjectMethod(thiz, methodID_func); // 获得 PackageManager 类 jclass pm_clazz = env->GetObjectClass(package_manager); // 得到 getPackageInfo 方法的 ID jmethodID methodID_pm = env->GetMethodID( pm_clazz, "getPackageInfo", "(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;"); //获取包名 jmethodID methodID_packagename =env->GetMethodID(native_clazz,"getPackageName", "()Ljava/lang/String;"); jstring name_str = static_cast<jstring>(env->CallObjectMethod(thiz, methodID_packagename)); // 获得应用包的信息 jobject package_info = env->CallObjectMethod(package_manager, methodID_pm, name_str, 64);//env->NewStringUTF("com.example.contasdf") // 获得 PackageInfo 类 jclass pi_clazz = env->GetObjectClass( package_info); // 获得签名数组属性的 ID jfieldID fieldID_signatures = env->GetFieldID( pi_clazz, "signatures", "[Landroid/content/pm/Signature;"); // 得到签名数组,待修改 jobject signatur = env->GetObjectField(package_info, fieldID_signatures); jobjectArray signatures = reinterpret_cast<jobjectArray>(signatur); // 得到签名 jobject signature = env->GetObjectArrayElement(signatures, 0); // 获得 Signature 类,待修改 jclass s_clazz = env->GetObjectClass(signature); // 得到 hashCode 方法的 ID jmethodID methodID_hc = env->GetMethodID(s_clazz, "hashCode", "()I"); // 获得应用包的管理器,待修改 int hash_code = env->CallIntMethod(signature, methodID_hc); char str[100]; sprintf(str, "%u", hash_code); return env->NewStringUTF(str);}
源码:
https://github.com/mentor811/AndroidUltimateEncrypt
【 声明:版权所有,欢迎转载,请勿用于商业用途。 --天盟】
1 0
- Android JNI 获取应用签名
- android获取应用签名
- android 获取应用签名
- Android 获取应用签名
- 使用JNI获取Android apk签名hashcode
- Android开发:使用JNI读取应用签名
- android获取应用签名信息
- Android studio 获取应用签名
- Android 如何获取应用签名
- jni 签名获取
- Android JNI 防二次打包应用签名检测
- jni android 签名检测
- android JNI 验证签名
- android 获取应用证书及签名信息
- Android获取应用的签名信息
- android获取应用32位签名
- ]获取android应用的MD5签名
- Android获取应用自身相关签名信息
- 【端午小练】HDU1701-ACMer
- 成员初始化列表
- Java程序员学习Flex和BlazeDS的十三个理由
- eclipse / ADT(Android Develop Tool) 一些方便的初始设置
- Mongodb安装与启动
- Android JNI 获取应用签名
- 【Leetcode】Insertion Sort List
- dedecms整合百度编辑器(Ueditor)之上传图片加水印的办法
- C++:重载运算符
- 杭电 2206 IP的计算(坑题)
- C++学习第八天:bitset类
- 系统分析与设计——MVC与WEB
- 查看电脑已安装的Jdk的位数
- 【解题报告】uva10066_The Twin Towers(双塔, dp, LCS)