A. so庫怎麼加密,公司的一款APP,有做混淆,想對so文件做保護,請問有沒有什麼技術可以做這方面加密的
額,一般應用進行個高級混淆基本都可以了,不過也有部分應用對so文件有特殊保護需求,這個一般比較高級了,很多宣稱可以做的實際也做不了的,你可以去技術論壇或者網頁搜一下,仔細咨詢下
現在做應用保護的企業並不多,有3、5家左右,挨個咨詢下,總有能滿足你需求的。
B. SO的用法
1、so用作副詞時常用於形容詞或其他副詞之前,用於表示程度,作「這么,那麼」解。
2、可用於表示方式,作「這樣,那樣」解,可用以避免重復,常用於believe,do,say之後,作「如此,這樣」解。
3、so作「同樣,也」解時,其後跟be,have,do或will,can,should等,然後再接主語,so作「當然」解時,後接there或代詞主語,然後再接be,have,do或will,can,should等。
4、so也可用於代替已經陳述的事物,尤用在接that...的動詞之後。
5、「notso+ adj./adv. (+as...)」表示「不(像)…這么…」。
6、「so+ adj./adv. +that...」用於表示結果,「so+ adj. +a/an+ n. (+as sb/sth)」可用於比較。
7、so用作連詞可用於表示結果,作「因此,所以」解,也可用於表示目的,作「為了,以便」解,還可用以引出一段話進行評比。
so的近義詞:therefore
therefore
讀音:英 [ˈðeəfɔː(r)] 美 [ˈðerfɔːr]
釋義:因此,所以。
語法:therefore的意思是「因此,為此,所以」,是副詞,引導結果、結局或結論,不能誤作連詞用。therefore可引出一個獨立句,但不能連接兩個句子,因此當therefore前沒有and等連詞時,前面須用分號。
例句:
.
天下雨,足球賽因此而延期了。
C. 如何用ida靜態分析so加密
安卓手機用ida在apk執行前動態調試其so中的函數 方法1 1、解包對方APK,插入一個:對應SMALI: android.os.SystemClock.sleep(20000);const-wide/16 v0, 0x2710 #20秒invoke-static {v0, v(X-1)}, Landroid/os/SystemClock;->sleep(J)V這里(X-1)
D. 一段二進制數據怎樣判斷其是否加密過,有沒有好的方法
首先,Base64算不上是一種加密演算法。
Base64是網路上最常見的用於傳輸8Bit位元組代碼的編碼方式之一,它的目的是用ASCII中定義的可見字元去表示任意的二進制數據。之所以要這樣做,是因為計算機中很多數據是只能通過可見字元去傳輸的(比如我們的網站網址,比如一些面向字元的網路協議如SMTP等),但是這些情景有時由需要去傳輸二進制數據。基於這樣的需要,誕生了Base64.
簡單來講,Base64就是用下列總計64個字元:
A-Z
a-z
0-9
+
/
去表示二進制數據。二進制數據以位元組為組,一個位元組8bit存在256個狀態,而一個Base64字元只有64個狀態。機智的人們於是規定,用每4個Base64字元去表示3個二進制位元組,因為:
64 * 64 * 64 * 64 = 256 * 256 * 256
因此,Base64字元串的長度必然是4的整數倍。此外,由於二進制的位元組數不一定是3的整數倍,所以Base64字元串在結尾是可能有空的。這些空的狀態,Base64引入第65個字元去表示:
=
這也是為什麼Base64很多都是以=或==結尾的。但是注意,也存在不以=或==結尾的Base64,只要編碼的二進制位元組數恰好被3給整除。
E. linux下的so文件如何分析
使用objmp反匯編,用readelf 查看文件結構, 這兩個工具在軟體包 binutils中.
安裝 binutils:
fedora,redhat: yum install binutils
ubuntu,Mint等: apt-get install binutils
Archlinux: pacman -S binutils
用Intel格式匯編輸出反匯編指令: objmp -d -M intel xxxx.so
F. 怎麼樣可以看見有沒有加密軟體
很簡單,比如你打開一個文件夾,看看邊框左下角顯示的對象有幾個,如果顯示是有一個,但是你卻看見的是空白的,說明
,這個文件夾有一個文件,而且加了密!
G. 如何給so文件加殼
在 Android 環境中,Native 層的加殼主要是針對動態鏈接庫 SO,SO 加殼的示意圖如下:
加殼工具、loader、被保護SO。
SO: 即被保護的目標 SO。
loader: 自身也是一個 SO,系統載入時首先載入 loader,loader 首先還原出經過加密、壓縮、變換的 SO,再將 SO 載入到內存,並完成鏈接過程,使 SO 可以正常被其他模塊使用。
加殼工具: 將被保護的 SO 加密、壓縮、變換,並將結果作為數據與 loader 整合為 packed SO。
加固可以在一定程度上保護自己核心代碼演算法,提高破解/盜版/二次打包的難度,緩解代碼注入/動態調試/內存注入攻擊等,但也對應用的兼容性有一定影響,加殼技術不行的話,還會影響程序運行效率.
目前市面上有很多第三方加固的平台, 如果新應用發布前需要掃描或者加固的話,可以先試試免費的,例如騰訊御安全,建議自己先去掃加固試下。
H. 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); ,就可以調用了
I. 如何對so文件進行加密
你可以使用網路搜索的方式,從一些網站上下載對文件/文件夾進行加密的免費軟體。但是我勸你最好還是對重要的文件進行一個備份。如果萬一將文件加密了,無法進行解密,到了那會兒可就麻煩了。因為加密演算法往往是和解密演算法配套使用的。
J. android的so文件如何防止常量字元串泄露
SO文件主要存放著核心演算法、加密解密方法、協議等,因此一旦被反編譯。逆向分析會造成重大的損失。目前有很多安全服務商推出相應的SO文件保護,比如愛加密等等,針對Android/Linux的so文件做高級混淆以及加殼隱藏外部函數,可以有效防止so文件被逆向分析。希望可以採納,謝謝!