Ⅰ android的so文件如何防止常量字元串泄露
SO文件主要存放著核心演算法、加密解密方法、協議等,因此一旦被反編譯。逆向分析會造成重大的損失。目前有很多安全服務商推出相應的SO文件保護,比如愛加密等等,針對Android/Linux的so文件做高級混淆以及加殼隱藏外部函數,可以有效防止so文件被逆向分析。希望可以採納,謝謝!
Ⅱ android把加密演算法放在so裡面 怎麼辦
1.比如我現在在用net.sqlcipher.database 這個加密庫(網上能搜得到的,用於資料庫加密)。 那麼我現在就在項目用載入這個jar包(在你的項目單擊右鍵-》屬性-》Java Build Path-》Libraries-》Add Jars,選擇提供給你的jar包,我這里是 sqlcipher.jar,然後在Order and Export勾選你剛剛載入的 jar包。)
2.打開你的workspace目錄,在你的項目目錄下創建一個文件夾libs(如果文件夾不存在的話),然後將提供給你的so庫放入該目錄,基本架構就算是搭建好了。
3.進行開發,這里你需要問一下提供給你jar包的廠家,基本的用法,否則的話是無法進行開發的,因為你都不知道怎麼去用。 sqlcipher的基本用法是:
SQLiteDatabase.loadLibs(this); //載入 so庫文件,你的廠家的方法應該也是類似。
File databaseFile = getDatabasePath(SQLite_toll.DATABASE_NAME);
databaseFile.mkdirs();
databaseFile.delete();
SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(databaseFile, helper_SharedPreferences.get_str_sp("database_cipher",this), null);
SQLite_toll initToll = new SQLite_toll(this, avaSys);
initToll.onCreate(database);
database.close();
//因為我sqlcipher是用於資料庫加密的,所以你所看到的都是資料庫的一些方法,你廠家提供給你的jar包的用法,你是要去問他們的,或者他們的是否有開源代碼,又或者是網上也有很多人使用,那麼能搜到相關資料。
根據你補充的提問,那麼就是System.loadLibrary(this); ,就可以調用了
Ⅲ 如何給so文件加殼
在 Android 環境中,Native 層的加殼主要是針對動態鏈接庫 SO,SO 加殼的示意圖如下:
加殼工具、loader、被保護SO。
SO: 即被保護的目標 SO。
loader: 自身也是一個 SO,系統載入時首先載入 loader,loader 首先還原出經過加密、壓縮、變換的 SO,再將 SO 載入到內存,並完成鏈接過程,使 SO 可以正常被其他模塊使用。
加殼工具: 將被保護的 SO 加密、壓縮、變換,並將結果作為數據與 loader 整合為 packed SO。
加固可以在一定程度上保護自己核心代碼演算法,提高破解/盜版/二次打包的難度,緩解代碼注入/動態調試/內存注入攻擊等,但也對應用的兼容性有一定影響,加殼技術不行的話,還會影響程序運行效率.
目前市面上有很多第三方加固的平台, 如果新應用發布前需要掃描或者加固的話,可以先試試免費的,例如騰訊御安全,建議自己先去掃加固試下。
Ⅳ 如何用gdb找到android so文件中的加密key
你好,我現在能夠用NDK的如下方式寫幾個簡單的文件,然後打包為SO,再用另外的一個.C文件調用SO,然後生成最終的供Android使用的SO文件,具體方式如下:
下載一個從android模擬器里取system lib的工具busybox,然後調用命令
$adb push busybox /dev/sample/busybox
$adb shell chmod 777 /dev/sample/busybox
$adb shell ./dev/sample/busybox tar -cf /dev/sample/libs.tar /system/lib
$adb pull /dev/sample/libs.tar libs.tar
這樣就將模擬器下的 /system/lib 目錄的所有庫(so)文件打包並下載下來了,解壓libs.tar就得到了我們所需要的所有庫文件。
接著將所有的文件 到 $(NDK)\build\prebuilt\windows\arm-eabi-4.2.1\lib\gcc\arm-eabi\4.2.1,這個時候基本的配置工作就結束了。
然後建立tutorial01.c調用tutorial02.c中的方法,通過寫makefile文件將之打包為SO
CC = /cygdrive/e/android-ndk-1.5_r1/build/prebuilt/windows/arm-eabi-4.2.1/bin/arm-eabi-gcc
CFLAGS = -g -O2 -fPIC -DANDROID -I ./ -I ../ -I /cygdrive/e/android-ndk-1.5_r1/build/platforms/android-1.5/arch-arm/usr/include
SDFLAGS = -nostdlib -Wl,-T,armelf.xsc -Wl,-soname,$@ -Wl,-shared,-Bsymbolic -lc
CRT_OBJS= -lz -lm
# source files:
SRCS= tutorial01.c tutorial02.c tutorial02.h
all: libtutorial.so
libtutorial.so: tutorial01.o tutorial02.o
$(CC) $(SDFLAGS) -o $@ tutorial01.o tutorial02.o $(CRT_OBJS)
tutorial01.o: tutorial02.h
tutorial02.o: tutorial02.h
clean:
rm -f libtutorial.so *.o
然後make,這個時候會報錯 can't find "armelf.xsc", 在ndk的目錄里搜索一下,搜到之後 到$(NDK)\build\prebuilt\windows\arm-eabi-4.2.1\lib\gcc\arm-eabi\4.2.1,然後make,成功。
接著建立一個文件test01.c,動態載入so文件,然後寫一個makefile文件,最後make成功。
建立一個Android工程 testapp來測試其運行情況,實驗表明是能夠正確運行的。
Ⅳ 如何對so文件進行加密
你可以使用網路搜索的方式,從一些網站上下載對文件/文件夾進行加密的免費軟體。但是我勸你最好還是對重要的文件進行一個備份。如果萬一將文件加密了,無法進行解密,到了那會兒可就麻煩了。因為加密演算法往往是和解密演算法配套使用的。
Ⅵ so庫怎麼加密,公司的一款APP,有做混淆,想對so文件做保護,請問有沒有什麼技術可以做這方面加密的
額,一般應用進行個高級混淆基本都可以了,不過也有部分應用對so文件有特殊保護需求,這個一般比較高級了,很多宣稱可以做的實際也做不了的,你可以去技術論壇或者網頁搜一下,仔細咨詢下
現在做應用保護的企業並不多,有3、5家左右,挨個咨詢下,總有能滿足你需求的。
Ⅶ 請問:幾維安全支持so庫文件保護嗎是不是免費加密的
朋友你好,很高興為你解答問題。
Android加固主要是兩個方面,一個是dex加固,還有一個是native加固。native加固保護對象是native層的so文件,可通過加殼、反調試、混淆等手段來增加so文件的反編譯難度。
幾維安全為廣大開發者提供移動安全服務,包括漏洞掃描、應用加固以及so庫文件保護,幫助開發者有效規避漏洞風險、防逆向以及防二次打包等。
希望以上簡單解答能夠幫助到你。
Ⅷ APP加密對DEX,SO文件是如何保護的
您好,NAGA娜迦信息科技(NAGAIN)加固平台的服務挺不錯的。可以對APP文件/APK應用進行dex加殼、 亂序保護、so加殼、虛擬機指令保護等多重保護,有效的對存儲數據進行加密保護、保護APP安全,是APP安全加固的首選。