導航:首頁 > 操作系統 > androidndk加密

androidndk加密

發布時間:2023-02-10 22:57:21

❶ 如何用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來測試其運行情況,實驗表明是能夠正確運行的。

❷ 怎樣防止Android apk被反編譯,用什麼加密方法來保護dex源碼文件不被注入惡意代碼杜絕二次打包的出現

1、混淆java代碼。增加無用代碼,或者重命名,使反編譯後的源代碼難於看懂。
2、關鍵代碼使用jni調用本地代碼,用c或c++編寫,相對於class文件,so相對比較難於反編譯。 需要開發者熟悉如何寫c或c++代碼。
3、如果自身時間或者技術有局限的話,現在國內有第三方加密平台。最近有家叫做 愛加密的非常活躍建議一試而且是免費的。
總的來說APP加密保護是一項比較難精的技術,易學的安全性能不佳。技術也在不斷的更新,是沒有絕對安全的。到不如直接交給專業的處理。

❸ 安卓加密要怎麼做特別是針對二次打包與dex文件保護的加密。

防止Android
apk被反編譯的方法:
判斷apk簽名是否與原版簽名是否一致;
代碼混淆,將混淆的級別設置高點,混淆出來以後代碼全部變亂;
使用NDK編程,將核心演算法用c/c++來編寫,打包成so庫供java層調用

❹ Android APP加密方法都有哪些

1 偽加密是Android4.2.x系統發布前的Android加密方式之一,通過java代碼對APK(壓縮文件)進行偽加密,其修改原理是修改連續4位位元組標記為」P K 01 02」的後第5位位元組,奇數表示不加密偶數表示加密。
2 混淆保護
把原來有具體含義的類名,變數名,方法名,修改成讓人看不懂的名字,例如方法名getUserName編程了方法名。

混淆保護只是增加了代碼閱讀難度,對於破解基本上是沒有實質性作用的
運行時驗證,主要是指在代碼啟動的時候本地獲取簽名信息然後對簽名信息進行檢驗來判斷自己的應用是否是正版,如果簽名信息不是正版則提示盜版或者直接崩潰。當然你可以把必要的數據放在伺服器端。Android APP加密方法都有哪些?破解:找到smali文件中,判斷是否相等的部分。改為常量true,即失效。
總之,反編譯一些apk之後,只要是java代碼寫的總會有smil文件。對於smil文件,如果耐心讀的話,還是可以查看到一些關鍵代碼的。
相較於應用來說,游戲apk因為採用cocos2d-x或者 unity3D,採用的是c++和c# 編寫的跨平台程序,在apk採用JNI的方式。所以沒有smali,可以防止靜態被破解apk包。
當然游戲包apk在運行的時候,會把.*so載入到內存中。動態也是可以在內存中抓取相應的數據。只不過NDK相對於smali破解來說,根部不是一個層級的關系。
3 使用第三方Android加密平台

閱讀全文

與androidndk加密相關的資料

熱點內容
紅茶可以緩解壓力 瀏覽:997
騰訊雲怎麼弄七十多一年雲伺服器 瀏覽:717
java按鈕設置圖片 瀏覽:864
php數字分頁代碼 瀏覽:791
旅遊業程序員 瀏覽:395
區塊鏈第三代加密數字資產 瀏覽:525
把播放清單放在雲伺服器上 瀏覽:869
phpppt下載 瀏覽:300
1929pdf 瀏覽:366
編譯器是終端嗎 瀏覽:529
pdf改b4 瀏覽:380
命令通道 瀏覽:704
pdf去 瀏覽:543
嵌入式編譯器優化 瀏覽:127
不同品牌安卓一鍵換機用什麼軟體 瀏覽:957
二年下冊運演算法則 瀏覽:137
蘭溪兩級壓縮空壓機 瀏覽:137
網頁如何取回伺服器上的文件 瀏覽:96
linuxphp重啟命令行 瀏覽:575
為什麼我的所有app都登錄不了 瀏覽:583