自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android中NDK學(xué)習(xí)之隱藏敏感信息

移動(dòng)開發(fā) Android
本文介紹了保護(hù)敏感信息,即NDK隱藏敏感信息的實(shí)現(xiàn)方法,與大家分享交流。

由于Android應(yīng)用被反編譯后是可以看到里面信息的,而一些敏感信息,比如服務(wù)器的ip地址、加密的算法,我們是不希望讓別人知道的。如何才能 隱藏這些信息呢,就我目前了解,使用Android NDK,把這些數(shù)據(jù)編譯在so文件中,然后通過(guò)JNI獲取,從而達(dá)到保護(hù)敏感信息的目的,即NDK隱藏敏感信息。
于是最近幾天開始學(xué)習(xí)Android NDK開發(fā),網(wǎng)上有很多教程,但都太麻煩,一會(huì)配置這,一會(huì)配置那的,很容易讓像我望而卻步。
在成功運(yùn)行Hello JNI后,心想干脆寫個(gè)博客吧,把自己的遇到的問題記錄下來(lái),如果能夠幫助同樣對(duì)Android NDK感興趣的童鞋,那就最好不過(guò)了。
首先下載相關(guān)工具:
1.下載最新版的Android developer tools
這個(gè)也叫ADT,是google最近發(fā)布的一款A(yù)ndroid集成開發(fā)工具,解壓后有2個(gè)目錄:eclipse和sdk.eclipse目錄里是一個(gè)定制 的eclipse,已經(jīng)裝好了sdk插件 、ndk插件和c/c (CDT)等插件,不到400M,sdk目錄里面是一個(gè)最新API級(jí)別的android sdk。建議下載這個(gè)ADT。如果你之前已經(jīng)下載過(guò)各個(gè)版本的SDK,把它們拷過(guò)來(lái),還可以正常使用。
如果你不愿意下載,那么你就需要在你的eclipse中安裝C/C (CDT)和NDK插件。
2.下載Android NDK,294M
3.如果你是windows用戶,貌似還得安裝Cygwin 1.7
強(qiáng)烈建議大家拋棄windows。這樣你就不用做第三步了。

下面開始創(chuàng)建項(xiàng)目:
1.新建一個(gè)Android Project
2.右鍵 找到Android Tools選擇,點(diǎn)擊Add Native Support

屏幕快照 2013-02-03 下午2.36.05.png

輸入so庫(kù)文件的名字,如果你使用過(guò)百度地圖的話,你對(duì)這個(gè)so文件應(yīng)該不陌生,它位于項(xiàng)目libs目錄里面的armeabi文件夾中,一般為 libxxxx.so,我這里輸入是AppConfig,編譯成功后便會(huì)生成libAppConfig.so文件,點(diǎn)擊確定,eclipse會(huì)變成C/C 編輯視圖,ndk插件會(huì)幫你在項(xiàng)目下創(chuàng)建一個(gè)jni目錄,并且在jni下面創(chuàng)建AppConfig.cpp文件和一個(gè)Android.mk文件

屏幕快照 2013-02-03 下午2.37.38.png

Android.mk 里面內(nèi)容如下

  1. LOCAL_PATH := $(call my-dir) 
  2. include $(CLEAR_VARS) 
  3. LOCAL_MODULE    := AppConfig 
  4. LOCAL_SRC_FILES := AppConfig.cpp 
  5. include $(BUILD_SHARED_LIBRARY) 

而AppConfig.cpp里面只有一行代碼:#include <jni.h>

接下來(lái)網(wǎng)上很多教程都是用javah生成.h頭文件。
我是按照下面的流程來(lái)做的:
1.編寫一個(gè)java類,里面有一個(gè)getAppUrl()的native方法,因?yàn)槲乙[藏服務(wù)器的地址,所以這里需要返回一個(gè)String字符串

  1. public class JNIInterface{ 
  2.     static
  3. //加載libAppConfig.so庫(kù)文件 
  4. //AppConfig是添加 Android Native Support時(shí)輸入的名稱 
  5. //另外,通過(guò)修改Android.mk中的LOCAL_MODULE可以修改這個(gè)名稱 
  6.         System.loadLibrary("AppConfig"); 
  7.     } 
  8.     public static native String getAppUrl(); 
  9. }

2.編寫AppConfig.cpp文件

  1. #include <jni.h> 
  2. extern "C" 
  3. jstring  
  4. Java_com_loveplusplus_hellojni_JNIInterface_getAppUrl(JNIEnv* env,jobject thiz) { 
  5. //return (*env)->NewStringUTF(env,"http://www.baidu.com"); //c 
  6. return env->NewStringUTF("http://www.baidu.com"); 

第一行代碼:引入jni.h頭文件
第二行代碼:因?yàn)檫@里用的c ,所以要extern "C" C是大小的
第三行代碼:剛才寫的JNIInterface類的getAppUrl方法位于com.loveplusplus.hellojni這個(gè)包下,所以這里有一個(gè)固定的寫法:Java包名類名_方法名。這和其它教程里面講的 使用javah 生成頭文件其實(shí)是一回事。JNIEnv* env,jobject thiz是固定傳入的參數(shù)。
第四行代碼:這行注釋掉的代碼是c語(yǔ)言返回字符串的寫法
第五行代碼:返回一個(gè)字符串

49CDC7FD-055C-43C3-B627-921C3709799A.png

點(diǎn)擊上圖中紅圈中的那個(gè)錘子,ndk便會(huì)把AppConfig.cpp編譯到libAppConfig.so文件中
下面是運(yùn)行效果圖:

device-2013-02-04-095039.png

本人研究了一下androidNDK隱藏敏感信息,把心得分享給大家。

責(zé)任編輯:閆佳明 來(lái)源: my.eoe.cn
相關(guān)推薦

2017-02-22 09:30:41

2014-07-30 16:43:49

Android

2020-05-28 15:35:21

Linux數(shù)據(jù)文件圖像

2023-09-01 07:21:11

2021-05-07 06:05:28

Docker信息泄露云安全

2014-06-30 13:51:27

2023-11-02 08:29:51

2022-07-15 08:38:58

android區(qū)段信息

2013-01-16 15:07:30

Android NDKAndroid開發(fā)

2021-12-30 10:43:21

Android函數(shù)Crash

2009-08-07 15:54:51

敏感信息檢測(cè)系統(tǒng)UnisSISS

2022-02-17 11:52:05

?Argo CD漏洞Kubernetes

2010-01-25 15:35:08

Android NDK

2016-01-08 15:44:31

東華網(wǎng)智反統(tǒng)方醫(yī)院

2013-12-27 09:54:58

Android開發(fā)NDK

2011-05-31 15:09:02

Android SDK 官方下載

2018-12-12 22:33:47

2021-01-26 09:31:02

人臉信息核心隱私人臉識(shí)別

2014-04-11 11:36:42

NDKAndroid開發(fā)終端

2010-01-28 11:07:59

Android NDK
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)