通過(guò)文本分類(lèi)檢測(cè)中的代碼混淆
概述
安卓 APK 中的混淆
(資料圖)
混淆是軟件開(kāi)發(fā)中常用的技術(shù),用于使代碼更難理解、分析和逆向工程。它將代碼轉(zhuǎn)化為一種復(fù)雜而紛繁的形式,同時(shí)保留其功能。混淆的主要目標(biāo)是阻礙對(duì)代碼的未經(jīng)授權(quán)訪問(wèn),保護(hù)軟件的知識(shí)產(chǎn)權(quán)或者隱藏軟件的真實(shí)行為。
在 Android APK 中,常用多種混淆技術(shù)來(lái)保護(hù)代碼,使其更難理解或逆向工程。其中一種技術(shù)是代碼混淆,它將源代碼轉(zhuǎn)換為等效但更復(fù)雜的形式,使其難以解讀和分析。另一種常用的技術(shù)是字符串加密,在這種技術(shù)中,敏感字符串(如 API 密鑰或 URL)被加密,以防止輕易提取。此外,還采用控制流混淆來(lái)干擾代碼的邏輯流程,使其難以跟蹤程序的執(zhí)行路徑和理解其功能。
混淆對(duì) Android 安全的影響
混淆技術(shù)的使用增加了安全研究分析的難度,并使一些基于簽名的檢測(cè)方法失效。字符串加密使得追蹤關(guān)鍵信息變得具有挑戰(zhàn)性。這些措施使得惡意軟件更難以識(shí)別和追蹤。
一種基于文本分類(lèi)的軟件包混淆檢測(cè)方法
出于這些原因,我們的公司—— Liansecurity 開(kāi)發(fā)了一款名為 "Incinerator" 的產(chǎn)品,旨在提供高效、準(zhǔn)確和自動(dòng)化的逆向工程服務(wù)。通過(guò)對(duì)惡意軟件的廣泛分析和先前混淆檢測(cè)技術(shù)的研究,在我們的 Android APK 逆向工程產(chǎn)品 " 焚化爐 " 中實(shí)現(xiàn)了一種基于文本分類(lèi)的混淆檢測(cè)方法。根據(jù)我們的測(cè)試,我們的方法實(shí)現(xiàn)了 98% 的準(zhǔn)確率,這超出了我們的期望。在接下來(lái)的章節(jié)中,我們將詳細(xì)描述我們的方法。
背景
在檢測(cè) Android 應(yīng)用程序中的混淆技術(shù)方面,最先進(jìn)的系統(tǒng)是 "AndrODet"。在這項(xiàng)工作中,作者構(gòu)建了一個(gè)混淆檢測(cè)系統(tǒng),針對(duì)每種混淆類(lèi)型提取不同的特征,然后訓(xùn)練一個(gè)在線機(jī)器學(xué)習(xí)模型。下面列出了目標(biāo)混淆類(lèi)型和 AndrODet 實(shí)現(xiàn)后的測(cè)試結(jié)果:
標(biāo)識(shí)符重命名:0.92
字符串加密:0.79
控制流混淆:0.67
AndrODet 在 Android 環(huán)境中的局限性
在 Android 的背景下,AndrODet 面臨某些限制,影響其作為靜態(tài)代碼分析工具的準(zhǔn)確性和有效性。主要集中在兩個(gè)方面:
基于 APK 的計(jì)算和特征弱化
AndrODet 計(jì)算其度量指標(biāo)是基于整個(gè) APK,包括核心業(yè)務(wù)代碼和關(guān)聯(lián)的庫(kù)文件。在 Android 生態(tài)系統(tǒng)中,依賴庫(kù)可能會(huì)非常龐大,有時(shí)甚至比核心業(yè)務(wù)代碼本身還要大。而且大多數(shù)情況下,依賴庫(kù)并不需要進(jìn)行混淆。當(dāng)僅依靠整個(gè) APK 進(jìn)行計(jì)算時(shí),這些大型未混淆的庫(kù)的存在削弱了混淆部分的重要性,最終影響了 AndrODet 進(jìn)行正確判斷的準(zhǔn)確性。
無(wú)法處理 Unicode 編碼
AndrODet 計(jì)算距離的方法局限于 ASCII 編碼。然而,使用 Unicode 編碼進(jìn)行混淆技術(shù)的使用越來(lái)越普遍。因此,AndrODet 無(wú)法處理和分析使用 Unicode 編碼進(jìn)行混淆的代碼。這個(gè)限制阻礙了該工具在真實(shí)生產(chǎn)場(chǎng)景中準(zhǔn)確檢測(cè)和評(píng)估混淆代碼的安全性和質(zhì)量方面的能力。
AndrODet 的限制對(duì)其在真實(shí)生產(chǎn)場(chǎng)景中的準(zhǔn)確性構(gòu)成了挑戰(zhàn)。了解這些限制及其對(duì)真實(shí)生產(chǎn)環(huán)境的影響對(duì)于尋求改進(jìn) Android 應(yīng)用程序安全領(lǐng)域代碼分析工具能力的研究人員和從業(yè)者至關(guān)重要。
我們的方法
我們的方法主要解決了代碼混淆技術(shù)中最常見(jiàn)的標(biāo)識(shí)符重命名的識(shí)別問(wèn)題,這是惡意軟件常用的混淆技術(shù)。我們的方法也可以擴(kuò)展到字符串加密。在我們的研究中,我們觀察到,當(dāng)研究人員評(píng)估一個(gè)代碼片段是否被混淆時(shí),他們最初的判斷依賴于類(lèi)名、方法名和變量名的可理解性,以及可識(shí)別和常用的編碼約定,即所謂的 " 編碼英語(yǔ) ",與類(lèi)似 "a"、"Zb"、"c4"、"1li"、"0Oo" 等不容易理解的名稱(chēng)進(jìn)行對(duì)比。最初,我們嘗試了算法方法來(lái)解決這個(gè)問(wèn)題,但測(cè)試結(jié)果不怎么理想。然而,我們突然想到,這實(shí)際上是一個(gè)經(jīng)典的自然語(yǔ)言(NLP)分類(lèi)問(wèn)題。
憑借這一靈感,我們將混淆檢測(cè)問(wèn)題轉(zhuǎn)化為文本分類(lèi)問(wèn)題,而深度神經(jīng)網(wǎng)絡(luò)處理文本分類(lèi),已經(jīng)非常成熟。我們的測(cè)試結(jié)果也證明了這種轉(zhuǎn)換非常成功。" 字符串加密 " 本質(zhì)上也是一個(gè)文本分類(lèi)問(wèn)題,因此我們相信這種方法可以輕松擴(kuò)展到字符串加密。
方法說(shuō)明
第 1 步:反編譯和 Smali 提取
第 1 步涉及反編譯 AndroidAPK 和提取 Smali 代碼。在我們的實(shí)現(xiàn)中,我們使用我們自己的反編譯引擎 "Reactor"。其他開(kāi)源工具,如 AndroGuard 或 Apktools 也可以。從每個(gè)類(lèi)中,我們提取類(lèi)名和類(lèi)變量名,這些是下一步分析的輸入。理論上可以提取更多特征,如函數(shù)參數(shù)名稱(chēng)和局部變量,但提取更多的特征對(duì)準(zhǔn)確率沒(méi)有太大的提升,因?yàn)榍懊娴娜齻€(gè)特征已經(jīng)達(dá)到了很高的準(zhǔn)確性。
第 2 步:創(chuàng)建訓(xùn)練集
創(chuàng)建兩個(gè)不同的訓(xùn)練集。第 1 個(gè)訓(xùn)練集是混淆的類(lèi)生成的數(shù)據(jù),標(biāo)記為 1。第 2 個(gè)訓(xùn)練集是未混淆的類(lèi)生成的數(shù)據(jù),標(biāo)記為 0。
第 3 步:文本分類(lèi)神經(jīng)網(wǎng)絡(luò)訓(xùn)練我們構(gòu)建了一個(gè)文本分類(lèi)神經(jīng)網(wǎng)絡(luò)。該神經(jīng)網(wǎng)絡(luò)使用步驟 1 中提取的特征和步驟 2 中的相應(yīng)標(biāo)簽進(jìn)行訓(xùn)練。通過(guò)利用深度學(xué)習(xí)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。
該模型分成 3 層:嵌入層、LSTM 層和密集層。
1)嵌入層:嵌入層將輸入整數(shù)序列轉(zhuǎn)換為密集矢量表示。
2)LSTM 層:LSTM(長(zhǎng)短期記憶)層是一種能夠處理序列數(shù)據(jù)和捕獲長(zhǎng)期依賴關(guān)系的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)。在該模型中,使用了具有 128 個(gè)單元的 LSTM 層。
3)Dense 層:Dense 層是一個(gè)全連接層,對(duì) LSTM 層的輸出進(jìn)行線性變換并應(yīng)用 sigmoid 激活函數(shù)。
第 4 步:訓(xùn)練
我們從 1000 個(gè)數(shù)據(jù)樣本開(kāi)始,發(fā)現(xiàn)結(jié)果已經(jīng)非常不錯(cuò)。隨著我們將樣本量增加到 10000,準(zhǔn)確率和驗(yàn)證準(zhǔn)確率都變得非常令人滿意。最終,我們的模型使用 100000 個(gè)數(shù)據(jù)樣本進(jìn)行了訓(xùn)練。我們?cè)噲D進(jìn)一步擴(kuò)充數(shù)據(jù)集,但準(zhǔn)確率和驗(yàn)證準(zhǔn)確率沒(méi)有提高。為了避免由單個(gè) APK 生成的數(shù)據(jù)引起的偏差,我們從數(shù)據(jù)庫(kù)中隨機(jī)提取了幾百個(gè) APK 來(lái)生成我們的數(shù)據(jù)。從生成的數(shù)百萬(wàn)個(gè)數(shù)據(jù)樣本中,我們隨機(jī)選擇了 100000 個(gè)進(jìn)行訓(xùn)練。
訓(xùn)練結(jié)果如下:訓(xùn)練準(zhǔn)確率:99.75%
驗(yàn)證準(zhǔn)確率:98.50%
實(shí)驗(yàn)結(jié)果與分析
在實(shí)際應(yīng)用中,為了確定一個(gè) APK 是否被混淆,我們使用了一種方法,該方法涉及檢查 APK 內(nèi)的每個(gè)類(lèi)是否進(jìn)行混淆。通過(guò)將混淆類(lèi)的數(shù)量除以類(lèi)的總數(shù),我們可以計(jì)算 APK 中混淆代碼的比例。盡管在理論,針對(duì)每個(gè)類(lèi),判斷可能出現(xiàn)假陽(yáng)或者假陰,但是在判斷一個(gè) APK 是否存在現(xiàn)象時(shí),很難出錯(cuò),因?yàn)橐粋€(gè)被混淆的 APK,需要確保它的大部分代碼很難理解,這正是混淆的目的和最終呈現(xiàn),大部分難以理解的類(lèi),是不能逃過(guò)模型的檢測(cè)的。因此,我們的模型在確定 APK 中是否存在混淆時(shí)達(dá)到了接近 100% 的準(zhǔn)確率。
第一輪訓(xùn)練后,我們從 Fdroid 和 Abuse 各獲取了 1000 個(gè) APK,進(jìn)行驗(yàn)證測(cè)試。FDroid 代表良性 apk, abuse 代表惡意 apks,測(cè)試后,我們發(fā)現(xiàn)有較高概率出現(xiàn)假陽(yáng),一些非常短的內(nèi)部類(lèi),例如 "Class: MainActivity ExternalSyntheticLambda15; Method:
下面是我們抽取隨機(jī)的 100 個(gè)測(cè)試樣本,因?yàn)槲覀兊哪P托r?yàn)準(zhǔn)確率是 98.5%,所以測(cè)試結(jié)果中,混淆覆蓋率 1%,2% 這樣的情況,應(yīng)該判斷為沒(méi)有混淆。剩下結(jié)果中的 4% ( md5:8328cd96c931d06d25f67d42a50fd20d ) 這個(gè)是誤報(bào),分析原因是因?yàn)檫@個(gè) apk 的類(lèi)非常少,三條假陽(yáng)數(shù)據(jù)導(dǎo)致了這個(gè)錯(cuò)誤。其他的 5% ( 923df6854199e999fdd274729b28a1ad ) ,7% ( 71e293f29e636112e0a00ebac8cf3eb8 ) 都是真實(shí)存在的混淆。所以這個(gè)模型,判斷混淆的準(zhǔn)確率接近 100%,而且 APK 中存在非常少量的混淆也是可以檢測(cè)出來(lái)。
我們的訓(xùn)練集中并沒(méi)有出現(xiàn) unicode 的混淆樣本,但是在測(cè)試的時(shí)候,這種情況也會(huì)被識(shí)別為混淆,因?yàn)槟P蛯?duì)非混淆的文本有非常好的識(shí)別,所以即便出現(xiàn)樣本中沒(méi)有出現(xiàn)的其他混淆情況,也可以識(shí)別。
APK | APK Md5 | Obfuscation Coverage |
et.nWifiManager.apk | 11c43f6d781457352e5e61e725998ea8 | 0% |
jackpal.androidterm.apk | 8bbc3d9173e6d6b19e561a8651e83731 | |
com.boombuler.widgets.contacts.apk | 8328cd96c931d06d25f67d42a50fd20d | 4% |
cz.jirkovsky.lukas.chmupocasi.apk | 86f763c8cf4530e1c46c75d26374855a | 99% |
com.example.poleidoscope.apk | 08cf9be157669f3e0f7dd88975fdc22c | 1% |
dufmvh.frdnoj.oggtsh.apk | cf2f9963933457dcdd1f28fec054cd07 | 56% |
ua.com.radiokot.lnaddr2invoice.apk | c1ade85027c6178e43daac2e957ba9b1 | 96% |
org.openbmap.unifiedNlp.apk | 79ce98b9d38490625ad15f5948afe32f | |
com.dekics.chat.message.apk | dc84f225fdb1c21071ee70d43af39224 | 50% |
org.getdisconnected.libreipsum.apk | a394d3131303bd24bdcddc7e0a507f0d | |
com.pnr.engproverbsandsayings.apk | 1d28e138a9ecf1c9b3240868879bbd54 | 10% |
org.ligi.blexplorer.apk | 49619da57858ffdd6bd55bb5b962efe3 | |
net.osmand.srtmPlugin.paid.apk | c7dd9b418933ceea723527487bd94268 | |
org.broeuschmeul.android.gps.bluetooth.provider.apk | cf1d9aa2d5eec5a8e0af76d9708a8da0 | |
com.intense.pub1.sbgs.apk | e272df5c9abd7d4c03982bb506922428 | 15% |
tgr.kitach.messenger.apk | cd4acd78cf29adf56837e944c0ea3791 | |
com.github.lamarios.clipious.apk | 0e728b50b101456d74329f97552ea2db | 94% |
com.ctbcad.cnove01.apk | 782216c3d9db96da2ef0285daddbdcdb | |
in.ac.iitb.cse.cartsbusboarding.apk | ee83d9a3c3fcffbd833f1b73d28d28cd | 2% |
de.reimardoeffinger.quickdic.apk | 8e5e7cc0e581fac6c5d83802dadc0095 | 98% |
com.fastcleaner.forphoneandroid.freenoads.apk | c31ca58e67d55bb20a06e0f986cf04c1 | 92% |
com.gh4a.apk | 22556b8c3b0f4196b0db777d64cac5ee | |
nznm.qfvxs.apk | a827ee829d6067eda9c19f1dee15b9af | |
com.freezingwind.animereleasenotifier.apk | c0786ccbcfe7cb57f82f36a66040d452 | |
ogjp.otmyswhz.apk | ef3c97b748088019dc986dce53ae0755 | |
com.scare.obscure.apk | b11e72c94d810958df65d8716d853bc3 | 46% |
org.smc.inputmethod.indic.apk | c9eeb111666c723e3a4f78e2e11ab10d | |
com.blame.annual.apk | 376fc34c1eb64a348311156b1f22763e | 45% |
org.xapek.andiodine.apk | 923df6854199e999fdd274729b28a1ad | 5% |
ir.PluTus.pluto.apk | dc9f73c8ec88a8b493a15a3cbcb36f15 | 33% |
org.sufficientlysecure.viewer.apk | dcb35395a9a3fa0aea0bd9c876c4fadc | |
ir.shz.shzkisi.apk | 7ec247424733c287c3322fc49f1a7766 | |
com.mimic.left.apk | 4076db4387eb8ddf8f2010e3db8c8b07 | 59% |
com.igllc.reign.apk | bb78d33aac9b1c0c741b9e66d1ad9710 | |
org.tuxpaint.apk | 5f1d4d542004efd946a40a26166aed00 | |
Adliran.ir.apk | 3c0cccf2790ba49a122d0235225dbceb | 26% |
com.believe.blouse.apk | 768ec2246d2c92330ba8fafe6513963e | |
Rahbar.Api.apk | 2f1570b5b5723d3f4ddd615905e8c08f | 27% |
net.everythingandroid.smspopup.apk | 1e5d955dabdd0ee548054c8cdc223653 | |
com.cointrend.apk | cb3726beeb870d96e2dd458da66af96b | 97% |
com.junjunguo.pocketmaps.apk | 0be11a3a032b35e2ce8021d32780cf32 | 21% |
com.kabood.koroshkabir.apk | 6129cc4392d2e10ffdb80db67ca2534b | 24% |
site.leos.setter.apk | 2f03d669939c74b508a3959838fbba4c | |
jp.co.qsdn.android.jinbei3d.apk | f25da1334e4db5d6c14c2361ba4defa8 | |
ir.game.co.apk | 9849247aef1aa1ae82c4dc06a638f29d | |
fr.xgouchet.texteditor.apk | a3f79b347a1c06140697326acb04581a | |
org.smssecure.smssecure.apk | a6dcb00ee7482256f8070b2d2eb23f62 | |
com.ebaschiera.triplecamel.apk | d36cd1850f8dfec7298c08e8eed3f997 | |
org.y20k.trackbook.apk | d4054bf60b2fbcfc152b32397cb861b0 | |
com.comfort.digital.apk | a32c36009a37893be90e4f385b26b5ee | 35% |
com.kylecorry.trail_sense.apk | 42501430e5b199df00f0068b3bd59db4 | |
com.helphomestickers.heartcarejingchat.apk | fec9d39eb80814e1eec29e52e0fede2d | |
de.markusfisch.android.pielauncher.apk | d0cf7f183b84ff040f237da0d7e89c58 | 90% |
org.xcsoar.apk | 35923a4197bcd2efd8d22a167af3f028 | |
com.takela.message.apk | 55774d1c8251ee3c12ce08af65000bd7 | 16% |
tech.bogomolov.incomingsmsgateway.apk | 85d0288b9b04c7d71bfd8185a916490b | |
com.rmowa.wpamz.apk | 23e49cc28a5feeed4b9e362aa43e158a | 65% |
piste.security.path.vf.apk | 95d33595783ede50bd428a18823ca0a9 | 20% |
de.rwth_aachen.phyphox.apk | 0a3fa3b09980e629c6a983a2c33d0400 | |
com.brief.blouse.apk | be9d61e3363c3399b55a44895fd1cf60 | 47% |
xjl.lrl.jzk.xkbnif.apk | f140ec3c051717491aac1a477c0f453a | 44% |
net.goroid.maya.apk | 9b1de8718bb348e74ecde66dfa7332a8 | 19% |
eu.polarclock.apk | c3c6f8ba040f1715d32ac7563d7d9b0c | |
tube.chikichiki.sako.apk | d79144a6e4aad73e78bc25af25e8f8d1 | |
org.dyndns.fules.ck.apk | 7c1e243288ff30b602976d2ce634b0f3 | |
com.nima.demomusix.apk | 93a79a8f1b2ad1eb2b670782e571107d | |
aps.js.piste.asd.apk | b1e0ad60b4113ecfdf74e930848dcab4 | |
com.tutpro.baresip.apk | 702d0800421413f73f0f3d65a577986e | |
iroj.jnafjk.apk | d0118fe80f1af4cf2fad4579fa7f8741 | |
de.monocles.mail.apk | 21ce417bd40a12c2333ab505a0095891 | |
com.example.myapplication.apk | 52a5b10ae074459fbbeb1a0e8c297eac | |
com.piolang.transltor.voice.apk | c4c0982149feaf5266d6b2a9c4634858 | 84% |
net.sourceforge.kid3.apk | 7bff47951d893d50b7bf1bb151225006 | |
com.burtonben.goodlauncher.apk | d7ffbdf8e491f0c3e53901cf830f10b2 | 9% |
com.howwatchfunsms.locktextmessage.apk | d59b366ab1870d17f9abdd4824461327 | |
free.vpn.unblock.proxy.turbovpn.apk | 1fd53adfc1ff5f6262567592dfc88fd4 | 70% |
com.yshlhh.com.apk | f0c84c3ffcc77a88ce344e7f632afb2d | 67% |
com.feis.bphealthy.blood.apk | 6e05b674fb8725a4f1faae9d39be1b94 | 14% |
org.servalproject.apk | 8b2df68517574eb0c7d1b42858403695 | |
plus.H59300BC9.apk | 889e1c52bdebe6e1ae952bcc38b5daf1 | 11% |
mon.suxzgi.apk | b48f43a3c6b7c4ef07b7f87b62f64d61 | |
com.seleuco.easshs.apk | 013a0f9ddc9db42f06ae2cd1b6228c8f | 31% |
com.vicman.toonmeapp.apk | f724e92bdf978fb3bbdac308d4ba800c | 73% |
com.hugo.apk | 6320c822ba4ce417ffb82746dbf6f6f8 | |
org.segin.bfinterpreter.apk | 69d3cd2ef0e619193f145c89b22ce920 | |
de.jonasbernard.tudarmstadtmoodlewrapper.apk | 29bf40b35ce52d6e44c61304fdd8561a | |
com.belt.space.apk | 71e293f29e636112e0a00ebac8cf3eb8 | 7% |
center.bestlinks.samuraivpn.apk | f6e5f704bf5910b4d0aff44df2a77a8b | 91% |
com.dev.xavier.tempusromanum.apk | 1d51ef04566cc66661358f7708c0a9d3 | |
com.zanghh.pdfreader.apk | e9133a533614dafee5780d50b29484c3 | |
org.avmedia.gshockGoogleSync.apk | f942cf3de1107400be084ddd596016d9 | |
com.github.igrmk.smsq.apk | 72dfae851b1c93838094fe3b059ac5b1 | |
com.ljechbei.apk | 87118a9b63adebe8ad642509ff76818b | |
org.courville.nova.apk | 7041af61162329c4e2022d82939a2d2d | |
com.cliambrown.easynoise.apk | 8755ffdd6fe155593af77536bc8d1da1 | |
net.mullvad.mullvadvpn.apk | 956659e2df6362a79e110fac0fda3534 | |
nl.eduvpn.app.apk | aa2099699b3c8b68aa33925899ad9e84 | |
com.cheogram.android.apk | 4987ea46c3679a191434c1546231bade | |
io.pslab.apk | 37f9a2a3e4c906bf2cc3c14895620b1e | |
ru.yanus171.feedexfork.apk | 742aebc4c88564678e78276dbf29e935 |
本文討論的都是針對(duì)標(biāo)識(shí)符重命名的混淆檢測(cè),相同的辦法可以應(yīng)用到字符串檢測(cè)上。但是不能應(yīng)用到控制流混淆檢測(cè)。AndrODet 的結(jié)果在這方面的表現(xiàn)也不盡如人意。未來(lái)我們會(huì)針對(duì)控制流檢測(cè)專(zhuān)門(mén)設(shè)計(jì)新的模型。
與 AndrODet 相比,我們的模型需要相對(duì)更多的時(shí)間來(lái)確定 APK 是否被混淆,因?yàn)樗枰獑为?dú)檢測(cè)每個(gè)類(lèi)。雖然可以批量檢測(cè),但 APK 可能包含數(shù)千甚至數(shù)萬(wàn)個(gè)類(lèi)。然而,在生產(chǎn)環(huán)境中,這是可以接受的,因?yàn)榉治?APK 涉及靜態(tài)分析、動(dòng)態(tài)分析等各個(gè)方面,需要更長(zhǎng)的時(shí)間來(lái)執(zhí)行。因此,在我們的產(chǎn)品中,混淆檢測(cè)的等待時(shí)間是合理的。此外,這個(gè)時(shí)間也可以通過(guò)并行架構(gòu)處理來(lái)緩解。
結(jié)論
我們提出了一種基于文本分類(lèi)的方法來(lái)檢測(cè) APK 是否被混淆。這種方法以前在現(xiàn)有研究中沒(méi)有應(yīng)用過(guò),可以擴(kuò)展到其他軟件中的混淆檢測(cè)以及字符串加密檢測(cè)。此外,我們建議 APK 中混淆的檢測(cè)應(yīng)該在類(lèi)級(jí)別進(jìn)行,因?yàn)檫@樣可以達(dá)到基本 100% 的準(zhǔn)確率。
我們已經(jīng)在正式生產(chǎn)環(huán)境中實(shí)現(xiàn)了這種方法。
Appendix
[ 1 ] https://0m1d.com/software/AndrODet
[ 2 ] https://drive.google.com/file/d/1OYYegY7MP7nGgfMORz_M7L4c3QFEjJW0/view?usp=sharing
源地址:https://www.liansecurity.com/#/main/news/HPMR8ogBE2npFSfFmiR_/detail
責(zé)任編輯:hnmd003
相關(guān)閱讀
-
焦點(diǎn)速訊:LinkedIn 推出生成式 AI 輔助撰寫(xiě)帖文功能,將向所有用戶開(kāi)放
品玩6月26日訊,職場(chǎng)社交平臺(tái)LinkedIn早前推出了廣告創(chuàng)建支持功能,允
2023-06-26 -
三星 Galaxy Z Flip5 真機(jī)疑似曝光,不規(guī)則大副屏很醒目
在折疊屏手機(jī)市場(chǎng)中,三星一直占據(jù)著比較重要的地位,旗下的多款折疊屏
2023-06-26 -
消息稱(chēng)蘋(píng)果今年秋季將發(fā)布三款蘋(píng)果手表
品玩6月26日訊,據(jù)新浪科技報(bào)道,一份報(bào)告稱(chēng),蘋(píng)果公司產(chǎn)品發(fā)布路線圖
2023-06-26 -
拆解報(bào)告:SAMSUNG 三星 10000mAh 25W 快充移動(dòng)電源 EB-P3400
前言三星新推出了一款10000mAh的移動(dòng)電源P3400,這款移動(dòng)電源外殼由通
2023-06-26 -
看點(diǎn):索尼 WH-CH720N 評(píng)測(cè):輕巧佩戴、頭戴降噪,性價(jià)比出色
作為音頻中的大廠之一,索尼旗下耳機(jī)在音頻圈、愛(ài)好者中相當(dāng)知名,例如
2023-06-26
相關(guān)閱讀
-
通過(guò)文本分類(lèi)檢測(cè)中的代碼混淆
概述安卓APK中的混淆混淆是軟件開(kāi)發(fā)中常用的技術(shù),用于使代碼更難理解
-
焦點(diǎn)速訊:LinkedIn 推出生成式 AI 輔助撰寫(xiě)帖文功能,將向所有用戶開(kāi)放
品玩6月26日訊,職場(chǎng)社交平臺(tái)LinkedIn早前推出了廣告創(chuàng)建支持功能,允
-
扎堆涌入二次元游戲賽道:有人流水破億,有人裁員大半
如果把時(shí)間拉回到2022年10月,可能沒(méi)有人會(huì)想到,2023年會(huì)演變成二次元
-
拜登還能再干一屆?民調(diào):將在 2024 年大選中戰(zhàn)勝特朗普
財(cái)聯(lián)社6月26日訊(編輯卞純)根據(jù)美國(guó)全國(guó)廣播公司新聞?lì)l道(NBCNews)
-
天天信息:23 億代價(jià)深圳買(mǎi)樓時(shí)機(jī)不對(duì)?浙商銀行董事罕見(jiàn)投出反對(duì)票:資本耗用應(yīng)優(yōu)先聚焦生息資產(chǎn)
財(cái)聯(lián)社6月26日訊(記者梁柯志)繼去年花費(fèi)30億為上海分行購(gòu)買(mǎi)寫(xiě)字樓之
-
今日熱議:又是乳腺癌!知名財(cái)經(jīng)博主葉檀被傳去世,本人已辟謠:我活著,治療很有效
本文來(lái)源:時(shí)代周報(bào)作者:杜蘇敏知名財(cái)經(jīng)評(píng)論葉檀被傳去世,是烏龍!6
-
世界訊息:《黑鏡 6》崩了,劇本是 AI 寫(xiě)的吧?
文|深燃,作者|王璐,編輯|李秋涵時(shí)隔四年后,《黑鏡6》悄悄回來(lái)了,6
-
欠條是一份還是雙方各一份?欠條的有效期是多少年?
欠條是一份還是雙方各一份?條并不是雙方都要,一般只需要債權(quán)人持有。但最好是一式兩份,由債權(quán)人和債務(wù)人...
-
拘役是什么意思?拘役和拘留的區(qū)別
拘役是什么意思?拘役就是對(duì)違法了的人限制一段時(shí)間的個(gè)人自由的情況。通俗點(diǎn)來(lái)說(shuō),就是對(duì)違法了的人進(jìn)行...
-
天天看熱訊:西藏那曲:千名學(xué)生享“光明”公益服務(wù)
6月22日,來(lái)自浙江省嘉興市“溫暖嘉·毛源昌雪域光明行”的志愿者為西
-
拉薩市尼木縣北京中心幼兒園:民族團(tuán)結(jié)進(jìn)校園和諧之花開(kāi)滿園 速訊
自2021年8月建園以來(lái),尼木縣北京中心幼兒園以增強(qiáng)幼兒民族團(tuán)結(jié)意識(shí)為
-
天天微動(dòng)態(tài)丨西藏大學(xué)2023屆學(xué)生畢業(yè)典禮暨學(xué)位授予儀式舉行
日前,西藏大學(xué)舉行2023屆學(xué)生畢業(yè)典禮暨學(xué)位授予儀式,3113名畢業(yè)生順
-
雙規(guī)是什么意思?雙規(guī)后還能官?gòu)?fù)原職嗎?
雙規(guī)是什么意思?雙規(guī)又可稱(chēng)為兩規(guī)、兩指,是中共紀(jì)檢(紀(jì)律檢查)機(jī)關(guān)和政府行政監(jiān)察機(jī)關(guān)所采取的一種十分...
-
微信提現(xiàn)怎樣才不收費(fèi)?微信提現(xiàn)手續(xù)費(fèi)有上限嗎?
微信提現(xiàn)怎樣才不收費(fèi)?第一種方法,通過(guò)兌換提現(xiàn)券實(shí)現(xiàn),那我們大家在生活中都有使用微信支付是不是,其...
-
貴金屬點(diǎn)差是什么意思?貴金屬50點(diǎn)差多少錢(qián)?
貴金屬點(diǎn)差是什么意思?點(diǎn)差就是銀行或貴金屬交易商在提供服務(wù)的過(guò)程中收取的費(fèi)用。點(diǎn)差高低由交易商或銀...
-
黃金交易日是什么時(shí)候?黃金交易時(shí)間和規(guī)則
黃金交易日是什么時(shí)候?不同種類(lèi)的黃金交易時(shí)間不同:1、中國(guó)黃金現(xiàn)貨(如:AU99 99或黃金TD)的交易時(shí)間...
-
基金老鼠倉(cāng)是什么意思?老鼠倉(cāng)建議買(mǎi)入嗎?
基金老鼠倉(cāng)是什么意思?在基金行業(yè)里,所謂的老鼠倉(cāng)是指基金從業(yè)人員在使用公有資金拉升某只股票之前,先...
-
安心百萬(wàn)醫(yī)療險(xiǎn)2020版怎么樣?怎么理賠?
安心百萬(wàn)醫(yī)療險(xiǎn)2020版是在原有基礎(chǔ)上進(jìn)行升級(jí)和改進(jìn)的產(chǎn)品。2020年版本
-
百萬(wàn)醫(yī)療險(xiǎn)人保好還是人壽好?百萬(wàn)醫(yī)療險(xiǎn)怎么投保?
不同保險(xiǎn)公司的百萬(wàn)醫(yī)療險(xiǎn)產(chǎn)品可能在保障范圍上存在差別,如疾病種類(lèi)、
-
逸安衛(wèi)年金保險(xiǎn)保什么?可以為孩子儲(chǔ)備學(xué)費(fèi)嗎?|每日熱點(diǎn)
逸安衛(wèi)年金保險(xiǎn)是泰康人壽旗下的一款產(chǎn)品。 它可以用來(lái)給孩子存儲(chǔ)一筆
-
人壽保險(xiǎn)怎么樣?最多可以延遲多久交費(fèi)?|天天熱聞
人壽保險(xiǎn)具有較高的保障功能。購(gòu)買(mǎi)人壽保險(xiǎn),可以為投保人或其家庭提供
-
借勢(shì)“最火”端午,激發(fā)消費(fèi)新潛力
經(jīng)文化和旅游部數(shù)據(jù)中心綜合測(cè)算,端午期間,全國(guó)國(guó)內(nèi)旅游出游1 06億人
-
利安安享百萬(wàn)醫(yī)療保險(xiǎn)多少錢(qián)一年?能報(bào)銷(xiāo)嗎?
可靠。 作為一款備受推崇的醫(yī)療保險(xiǎn)產(chǎn)品,利安安享百萬(wàn)醫(yī)療保險(xiǎn)的可靠
-
天天熱消息:抖音外賣(mài)上線200天:從熱潮到冷落
抖音外賣(mài)擴(kuò)張步伐放緩抖音外賣(mài)的故事,已不如開(kāi)篇時(shí)引人入勝。距離
-
?知乎將清理侵害企業(yè)家合法權(quán)益內(nèi)容,依法查處違規(guī)賬號(hào)
6月26日消息,知乎近日宣布開(kāi)展“清朗?優(yōu)化營(yíng)商網(wǎng)絡(luò)環(huán)境”專(zhuān)項(xiàng)行動(dòng)
-
無(wú)憂傳媒旗下廣東夫婦、多余和毛毛姐等主播入駐“我的百科” 今日熱訊
百度百科官方賬號(hào)日前宣布,為了提升達(dá)人影響力,無(wú)憂傳媒攜手旗下
-
白銀期貨是怎么開(kāi)戶的?白銀期貨開(kāi)戶需要哪些條件?
白銀期貨是怎么開(kāi)戶的?白銀期貨一手大概需要1萬(wàn)元左右的保證金,開(kāi)戶比較簡(jiǎn)單。白銀期貨成交量是非常大...
-
Lordstown創(chuàng)始人拋售全部股份-天天觀速訊
Lordstown創(chuàng)始人拋售全部股份截至今年6月中旬,Burns已經(jīng)售出了價(jià)值約6
-
騰訊基金怎么買(mǎi)?騰訊基金會(huì)配捐是什么?
騰訊基金怎么買(mǎi)?騰訊基金有兩個(gè)快捷渠道可以購(gòu)買(mǎi),分別是微信的理財(cái)通和QQ的理財(cái)通。第一個(gè)渠道,打開(kāi)微...
-
年貼現(xiàn)率是什么意思?年貼現(xiàn)率的計(jì)算公式
年貼現(xiàn)率是什么意思?年貼現(xiàn)率是期限為一年的貼現(xiàn)率,貼現(xiàn)率是將未來(lái)支付改變?yōu)楝F(xiàn)值所使用的利率,或持票人...
精彩推薦
- 西藏拉林鐵路開(kāi)通運(yùn)營(yíng)兩周年 運(yùn)送旅客1...
- 【世界聚看點(diǎn)】海拔4900米的黨建流動(dòng)驛...
- 2023年西藏?cái)M新建公租房4516套 世界快資訊
- 快資訊丨2023藏游啤酒文化音樂(lè)節(jié)舉行
- 數(shù)字賦能讓水庫(kù)管理更智能_當(dāng)前視訊
- 西藏芒康縣納西民族鄉(xiāng)村村有產(chǎn)業(yè)、戶戶...
- 當(dāng)前關(guān)注:G219西藏段旅游推廣聯(lián)盟 第...
- 西藏全方位夯實(shí)糧食安全根基 確保糧食...
- 拉薩市舉行首屆鍋莊舞大賽
- 天天觀熱點(diǎn):西藏自治區(qū)拉薩市人大常委...
閱讀排行
精彩推送
- 證券交易時(shí)間是多久?證券交易時(shí)...
- 怎么辦理基金定投?基金定投贖回...
- 新股中簽率高好還是低好?中簽怎...
- 做市商機(jī)制是什么意思?做市商機(jī)...
- 什么機(jī)構(gòu)能代銷(xiāo)基金?基金直銷(xiāo)和...
- 機(jī)器人概念股繼續(xù)沖高,南方精工...
- 每日熱議!透徹未來(lái)完成近億元A輪...
- 天天快播:富士康領(lǐng)銜 “果鏈”...
- 環(huán)球今熱點(diǎn):和元生物慢病毒載體...
- “短板”變“潛力板” 廣東推動(dòng)...
- 三星 Galaxy Z Flip5 真機(jī)疑...
- 消息稱(chēng)蘋(píng)果今年秋季將發(fā)布三款蘋(píng)...
- 拆解報(bào)告:SAMSUNG 三星 10000...
- 看點(diǎn):索尼 WH-CH720N 評(píng)測(cè):...
- 消息稱(chēng)蘋(píng)果正在研發(fā) 24 英寸和...
- 什么叫杠桿交易?3倍杠桿下跌多...
- 如何購(gòu)買(mǎi)白銀?白銀1g多少錢(qián)?
- 阿迪達(dá)斯于UEFA歐冠決賽前夕發(fā)布...
- 全球信息:賴蛟在區(qū)黨委主題教育...
- 環(huán)球資訊:昌都市財(cái)政系統(tǒng)30名學(xué)...
- 察隅縣竹瓦根鎮(zhèn)“電影+宣講”讓...
- 視訊!西藏2023年高考分?jǐn)?shù)線和成...
- 銀行黑卡是什么意思?銀行黑卡要...
- 證券賬戶怎么開(kāi)戶?證券賬戶可以...
- 年利率是什么意思?年利率18%算...
- 現(xiàn)貨黃金如何交易?現(xiàn)貨黃金15分...
- 保險(xiǎn)買(mǎi)百萬(wàn)醫(yī)療還是重疾?有什么...
- 個(gè)人收款碼一天可以收多少錢(qián)?個(gè)...
- 泰康鑫瑞人生保險(xiǎn)怎么樣?保障內(nèi)...
- 金盈年年養(yǎng)老年金險(xiǎn)投保規(guī)則是什...



