在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Android開(kāi)發(fā)的ADT獲取內(nèi)存中的敏感信息

西西 ? 來(lái)源:哆啦安全 ? 作者:橙留香Park ? 2022-09-06 15:22 ? 次閱讀

0x01 利用ADT 獲取內(nèi)存中的敏感信息

對(duì)于基本的內(nèi)存分析,我們可以使用 Android Studio 的內(nèi)置工具。它們?cè)?Android 監(jiān)視器選項(xiàng)卡上。如果需要轉(zhuǎn)儲(chǔ)內(nèi)存,請(qǐng)選擇需要分析的設(shè)備和應(yīng)用,單擊“轉(zhuǎn)儲(chǔ) Java 堆”。這將在 capture 目錄中創(chuàng)建一個(gè) hprof 文件,該目錄位于應(yīng)用程序的項(xiàng)目路徑上

:我們可以通過(guò)使用ADT對(duì)客戶(hù)端內(nèi)存的訪問(wèn),來(lái)進(jìn)行查看各種內(nèi)存中未加密的敏感信息

ADT(Android Development Tools)在Eclipse編譯IDE環(huán)境中,需安裝ADT(Android Developer Tools)Plug-in,這是Android在Eclipse上的開(kāi)發(fā)工具。目前Android開(kāi)發(fā)所用的開(kāi)發(fā)工具主要有Android Studio 、intellij idea、Eclipse,在Eclipse編譯IDE環(huán)境中

Android Studio 是谷歌推出的一個(gè)Android集成開(kāi)發(fā)工具,基于IntelliJ IDEA. 類(lèi)似 Eclipse ADT,Android Studio 提供了集成的 Android 開(kāi)發(fā)工具用于開(kāi)發(fā)和調(diào)試

Android開(kāi)發(fā)工具(ADT,Android studio),下載地址:https://developer.android.com/studio/index.html

通過(guò)Android Studio工具中的Android Device Monitor 工具的“Heap dump”功能訪問(wèn)“堆內(nèi)存”的使用情況和內(nèi)存數(shù)據(jù)的變化,并檢查是否內(nèi)存中存在“用戶(hù)名”和“密碼”的” “cvv” 或 “key” 等重要信息是否泄露

:Android Studio 3.0開(kāi)始棄用Android Device Monitor,雖然說(shuō)被“棄用”,但是不代表不支持,我們還是可以通過(guò)其他方式來(lái)使用Android Device Monitor,就是DDMS,大家之前看過(guò)博主同學(xué)文章的,應(yīng)該知道,不太清除的可以翻看的之前的文章,此處不過(guò)多講解

使用Heap Dump,獲取我們當(dāng)前正在運(yùn)行的容易收到攻擊的應(yīng)用程序的“快照”,然后“導(dǎo)出”文件擴(kuò)展名為“HPROF”的“二進(jìn)制”格式文件,其格式為“HPROF”。“Dalvik格式”,但我們需要將其轉(zhuǎn)換為“J2se HPROF”格式,以便“Java”可讀

Memory Monitor是什么?

在Android Studio(以下簡(jiǎn)稱(chēng)AS)中Android Monitor是一個(gè)主窗口,它包含了Logcat,、Memory Monitor、CPU Monitor、 GPU Monitor和Network Monitor。其中Memory Monitor可以輕松地監(jiān)視應(yīng)用程序的性能和內(nèi)存使用情況,以便于找到被分配的對(duì)象,定位內(nèi)存泄漏,并跟蹤連接設(shè)備中正在使用的內(nèi)存數(shù)量。Memory Monitor可以報(bào)告出你的應(yīng)用程序的內(nèi)存分配情況, 更形象的呈現(xiàn)出應(yīng)用程序使用的內(nèi)存。它的作用如下:

實(shí)時(shí)顯示可用的和分配的Java內(nèi)存的圖表

實(shí)時(shí)顯示垃圾收集(GC)事件

啟動(dòng)垃圾收集事件

快速測(cè)試應(yīng)用程序的緩慢是否與過(guò)度的垃圾收集事件有關(guān)

快速測(cè)試應(yīng)用程序崩潰是否與內(nèi)存耗盡有關(guān)

使用Memory Monitor之前要確保手機(jī)開(kāi)啟了開(kāi)發(fā)者模式和USB調(diào)試。
使用的步驟為:

運(yùn)行需要監(jiān)控的應(yīng)用程序

點(diǎn)擊AS面板下面的Android圖標(biāo),并選擇Monitors選項(xiàng)

Heap Dump是什么

Heap Dump的主要功能就是查看不同的數(shù)據(jù)類(lèi)型在內(nèi)存中的使用情況。它可以幫助你找到大對(duì)象,也可以通過(guò)數(shù)據(jù)的變化發(fā)現(xiàn)內(nèi)存泄

運(yùn)行Android Device Monitor,并打開(kāi)InsecureBankv2 應(yīng)用程序

e6cd4c9c-2d1e-11ed-ba43-dac502259ad0.png

打開(kāi)InsecureBankv2 應(yīng)用程序后,會(huì)發(fā)現(xiàn)“Android Device Monitor”的“Device”中出現(xiàn)InsecureBankv2 應(yīng)用程序

e6ed3f98-2d1e-11ed-ba43-dac502259ad0.png

單擊“Update HEAP”按鈕

e70e57be-2d1e-11ed-ba43-dac502259ad0.png

在APP中的登錄界面輸入賬號(hào)密碼登錄的操作,然后點(diǎn)擊“Dump HPROF file”導(dǎo)出包含剛剛操作的堆內(nèi)存信息的文件,文件名默認(rèn)為當(dāng)前應(yīng)用程序名.hprof文件名命名:“com.android.insecurebankv2.hprof”

e735f210-2d1e-11ed-ba43-dac502259ad0.png

e746228e-2d1e-11ed-ba43-dac502259ad0.png

要對(duì)內(nèi)存轉(zhuǎn)儲(chǔ)進(jìn)行更高級(jí)的分析,需要使用Eclipse Memory Analyzer Tool (MAT)。它可作為 Eclipse 插件或獨(dú)立應(yīng)用程序使用。要分析 MAT 中的轉(zhuǎn)儲(chǔ),可使用 Android SDK 自帶的hprof-conv平臺(tái)工具

./hprof-conv memory.hprof memory-mat.hprof

MAT 提供了多種用于分析內(nèi)存轉(zhuǎn)儲(chǔ)的工具。例如,直方圖提供了從給定類(lèi)型中捕獲的對(duì)象數(shù)量的估計(jì)值,線(xiàn)程概覽顯示了進(jìn)程的線(xiàn)程和堆棧幀。支配樹(shù)提供有關(guān)對(duì)象之間保持活動(dòng)依賴(lài)關(guān)系的信息,以及可以使用正則表達(dá)式來(lái)過(guò)濾數(shù)據(jù)的結(jié)果

使用 MemoryAnalyzer(MAT)程序來(lái)檢查內(nèi)存,MAT有兩種安裝方式

一種安裝方式是將MAT當(dāng)做eclipse的插件進(jìn)行安裝:?jiǎn)?dòng)Eclipse --> Help --> Eclipse Marketplace,然后搜索Memory Analyzer,安裝,重啟eclipse即可

另外一種安裝方式是將MAT作為一個(gè)獨(dú)立的軟件進(jìn)行安裝:https://www.eclipse.org/mat/

e7629432-2d1e-11ed-ba43-dac502259ad0.png

Android Studio Profile與Leak Canary dump出來(lái)的內(nèi)存快照無(wú)法直接在MAT當(dāng)中打開(kāi),需要使用hprof-conv來(lái)轉(zhuǎn)換操作一下,這里我們使用“Appie”命令從“Android Device Monitor”獲取的“hprof”格式,格式轉(zhuǎn)換如下:

hprof-conv  com.android.insecurebankv2.hprof  test.hprof

e7752098-2d1e-11ed-ba43-dac502259ad0.png

e797776a-2d1e-11ed-ba43-dac502259ad0.png

打開(kāi)程序“MemoryAnalyzer.exe”并“導(dǎo)入”我們已轉(zhuǎn)換格式的文件“test.hprof”,如下:

e7a7e4b0-2d1e-11ed-ba43-dac502259ad0.png

e7cba3b4-2d1e-11ed-ba43-dac502259ad0.png

點(diǎn)擊“Open Dominator Tree for entire hap”按鈕

e7ea89dc-2d1e-11ed-ba43-dac502259ad0.png

然后,在窗口中檢查“dominator_tree”,發(fā)現(xiàn)有一個(gè)與我們剛剛操作的應(yīng)用程序相關(guān)的命名

e808c514-2d1e-11ed-ba43-dac502259ad0.png

e8223a1c-2d1e-11ed-ba43-dac502259ad0.png

不出意外我們?cè)谵D(zhuǎn)賬頁(yè)面找到了賬號(hào)和密碼,如下:

e8498c84-2d1e-11ed-ba43-dac502259ad0.png

如果查看“Convert ByteCode”之后的“Source code”,“Class Dotransfer”的“Properties”類(lèi)似:

public class DoTransferextends Activity{
    public static final String MYPREFS2 = "mySharedPreferences";
    String acc1;
    String acc2;
    EditText amount;
    Button button1;
    EditText from;
    Button getAccounts;
    InputStream in ;
    JSONObject jsonObject;
    String number = "5554";
    String passNormalized;
    EditText phoneNumber;
    String protocol = "http://";
    BufferedReader reader;
    HttpResponse responseBody;
    String result;
    SharedPreferences serverDetails;
    String serverip = "";
    String serverport = "";
    EditText to;
    Button transfer;
    String usernameBase64ByteString;}

或使用OQL查詢(xún)語(yǔ)句來(lái)快速查詢(xún)內(nèi)存中的關(guān)鍵字,因?yàn)镸AT 支持一種類(lèi)似于 SQL 的查詢(xún)語(yǔ)言 OQL(Object Query Language)。OQL 使用類(lèi) SQL 語(yǔ)法,可以在堆中進(jìn)行對(duì)象的查找和篩選,比如如下:

e86c46b6-2d1e-11ed-ba43-dac502259ad0.png

Object Query Language studio是一個(gè) MAT 特性,它允許使用類(lèi)似 SQL 的語(yǔ)言從內(nèi)存轉(zhuǎn)儲(chǔ)中查詢(xún)對(duì)象。MAT允許我們通過(guò)在簡(jiǎn)單對(duì)象上調(diào)用 Java 方法來(lái)轉(zhuǎn)換它們,并且它提供了一個(gè)用于在 MAT之上構(gòu)建復(fù)雜工具的 API

SELECT * FROM java.lang.String

String在上面的示例中,內(nèi)存轉(zhuǎn)儲(chǔ)中的所有字符串對(duì)象都將被選中。結(jié)果將包括對(duì)象的類(lèi)、內(nèi)存地址、值和保留計(jì)數(shù)。要過(guò)濾這些信息并只查看每個(gè)字符串的值,如下查詢(xún)語(yǔ)句:

SELECT toString(object) FROM java.lang.String object

或者
SELECT object.toString() FROM java.lang.String object

MAT SQL 語(yǔ)法也支持原始數(shù)據(jù)類(lèi)型,所以可訪問(wèn)所有 char 數(shù)組的內(nèi)容:

SELECT toString(arr) FROM char[] arr

如果我們得到的結(jié)果與之前的結(jié)果相似,因?yàn)?String 和其它 Java 數(shù)據(jù)類(lèi)型只是原始數(shù)據(jù)類(lèi)型的包裝器。現(xiàn)在讓我們過(guò)濾結(jié)果,下面的示例SQL語(yǔ)句將選擇包含 RSA 密鑰的ASN.1 OID的所有字節(jié)數(shù)組,但給不表示我們給定的字節(jié)數(shù)組是包含 RSA(相同的字節(jié)序列可能是其它東西的一部分)這也是有可能的:

SELECT * FROM byte[] b WHERE toString(b).matches(".*1.2.840.113549.1.1.1.*")

如果我們覺(jué)得比較麻煩不想擇整個(gè)對(duì)象,可以使用一個(gè) SQL 語(yǔ)句來(lái)做查詢(xún),比如我們只想找到內(nèi)存中所有存在"password"字段的對(duì)象,如下:

SELECT password FROM ".*" WHERE (null != password)

MAT進(jìn)行分析內(nèi)存,可以嘗試的分析技巧:

通過(guò)一些關(guān)鍵字來(lái)快速查詢(xún),比如“password”、“pass”、“pin”、“secret”、“private”等

字符串、字符數(shù)組、字節(jié)數(shù)組等中的加密模式(如RSA、md5等加密)

已知的密碼,比如已知道某個(gè)后端的密鑰Key的關(guān)鍵字,然后通過(guò)關(guān)鍵字去內(nèi)存中搜索

... ...

在分析內(nèi)存是否泄露信息的時(shí)候,我們可能第一次查看內(nèi)存并不一定會(huì)有什么發(fā)現(xiàn),只需要更加耐心重復(fù)的多看幾次說(shuō)不定就有發(fā)現(xiàn)了,另外觀察特定內(nèi)存段(例如,字節(jié)數(shù)組)的變化方式說(shuō)不定會(huì)發(fā)現(xiàn)一些隱藏的比較深且不容易發(fā)現(xiàn)的敏感數(shù)據(jù)

編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3936

    瀏覽量

    127400
  • ADT
    ADT
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    9488

原文標(biāo)題:Android利用ADT獲取內(nèi)存中的敏感信息

文章出處:【微信號(hào):哆啦安全,微信公眾號(hào):哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ubuntu下搭建Android開(kāi)發(fā)環(huán)境

    /downloads/2)下載ADT Plugin,利用eclipse的help>install software安裝。http://developer.android.com/sdk/installing
    發(fā)表于 08-22 09:57

    Android SDK開(kāi)發(fā)環(huán)境搭建

    ://developer.android.com上的安裝步驟進(jìn)行安裝。不過(guò),在Android 2.3,對(duì)應(yīng)的ADT 8.0.0的文件布局發(fā)生了 基于SDK進(jìn)行
    發(fā)表于 09-03 14:08

    飛凌嵌入式開(kāi)發(fā)Android應(yīng)用程序開(kāi)發(fā)-入門(mén)級(jí)

    ,有利于您對(duì)Android系統(tǒng)的學(xué)習(xí)。所用的系統(tǒng)是Ubuntu 12.04操作系統(tǒng),開(kāi)發(fā)工具是ADT-Bundle。一 軟件實(shí)現(xiàn)框架......................飛凌嵌入式開(kāi)發(fā)
    發(fā)表于 05-20 14:41

    [資料分享]+Android內(nèi)核剖析

    內(nèi)存管理 19210.3 對(duì)AmS數(shù)據(jù)對(duì)象的理解 21110.4 ActivityGroup的內(nèi)部機(jī)制 214第11章 從輸入設(shè)備獲取消息 22111.1
    發(fā)表于 09-26 10:46

    [分享]4412開(kāi)發(fā)Android教程——Android開(kāi)發(fā)環(huán)境搭建

    `分享視頻鏈接:http://pan.baidu.com/s/1o6tgEeQ 下載和安裝Android應(yīng)用的開(kāi)發(fā)環(huán)境新建Android虛擬環(huán)境 Android IDE簡(jiǎn)介JDK編譯
    發(fā)表于 10-21 17:10

    ADT7310讀取的溫度值波動(dòng)較大

    實(shí)驗(yàn)項(xiàng)目,選取 ADT7310 作為溫度傳感器,MCU利用SSP接口模擬SPI的方式與AD通訊,通訊成功,能夠正常讀取ADT7310信息和溫度值,配置為連續(xù)轉(zhuǎn)換,連續(xù)讀取模式,供電
    發(fā)表于 10-24 09:38

    基于ADT7475熱監(jiān)控器和PWM風(fēng)扇控制器的ADT7475EBEVB評(píng)估板

    ADT7475EBEVB,ADT7475控制器評(píng)估板是一款熱監(jiān)控器和多個(gè)PWM風(fēng)扇控制器,適用于需要主動(dòng)系統(tǒng)冷卻的噪聲敏感或功耗敏感型應(yīng)用。 ADT
    發(fā)表于 05-10 09:34

    Android環(huán)境的搭建

    Java的核心,包括了Java運(yùn)行環(huán)境,Java工具和Java基礎(chǔ)的類(lèi)庫(kù)。2.目前Android開(kāi)發(fā)所用的開(kāi)發(fā)工具是Eclipse,在Eclipse編譯IDE環(huán)境,安裝
    發(fā)表于 07-09 07:21

    Android性能優(yōu)化之Java內(nèi)存

    Android開(kāi)發(fā),一些不好的編程習(xí)慣會(huì)導(dǎo)致我們的開(kāi)發(fā)的app存在內(nèi)存泄露的情況。下面介紹一些在An
    發(fā)表于 04-26 15:38 ?1002次閱讀
    <b class='flag-5'>Android</b>性能優(yōu)化之Java<b class='flag-5'>內(nèi)存</b>

    Android ADT 23.0.3應(yīng)用程序免費(fèi)下載

    Android ADT目前已經(jīng)更新到23.0.3,有需要的不要錯(cuò)過(guò)。它是在WINDOWS系統(tǒng)平臺(tái)上SDK環(huán)境下用來(lái)開(kāi)發(fā)安卓軟件所必不可少的本地安裝插件。
    發(fā)表于 07-11 17:48 ?22次下載

    Android開(kāi)發(fā)APP應(yīng)該如何省電

    但對(duì)多數(shù)開(kāi)發(fā)者來(lái)說(shuō),PowerManager在實(shí)際開(kāi)發(fā)毫無(wú)用處,因?yàn)橐坏┱{(diào)用該類(lèi)的方法,你的app運(yùn)行時(shí)就會(huì)崩潰,查看日志報(bào)錯(cuò)“java.lang.SecurityException
    發(fā)表于 07-30 17:35 ?0次下載
    <b class='flag-5'>Android</b><b class='flag-5'>開(kāi)發(fā)</b>APP應(yīng)該如何省電

    如何使用Android SDK和ADT插件設(shè)置工作環(huán)境

    您現(xiàn)在已經(jīng)準(zhǔn)備好環(huán)境開(kāi)發(fā)Android應(yīng)用程序。我們安裝了Android SDK,Eclipse和ADT插件。
    的頭像 發(fā)表于 11-11 09:27 ?2109次閱讀
    如何使用<b class='flag-5'>Android</b> SDK和<b class='flag-5'>ADT</b>插件設(shè)置工作環(huán)境

    Android開(kāi)發(fā)模式詳細(xì)介紹

    。在本章,您將了解Android Studio、如何獲取Android開(kāi)發(fā)中使用的獨(dú)立SDK工具、各種
    發(fā)表于 03-03 08:00 ?0次下載
    <b class='flag-5'>Android</b>的<b class='flag-5'>開(kāi)發(fā)</b>模式詳細(xì)介紹

    SDCardUtils封裝類(lèi)應(yīng)用:設(shè)備信息獲取實(shí)現(xiàn)方法

    硬件名、SDK版本、android版本 、語(yǔ)言支持、默認(rèn)語(yǔ)言 六、 獲取 SD 卡存儲(chǔ)信息 七、 獲取手機(jī) RAM、ROM存儲(chǔ)信息
    的頭像 發(fā)表于 11-13 09:40 ?775次閱讀
    SDCardUtils封裝類(lèi)應(yīng)用:設(shè)備<b class='flag-5'>信息</b><b class='flag-5'>獲取</b>實(shí)現(xiàn)方法

    android如何獲取本機(jī)ip地址及ip歸屬地

    的地理位置信息,如省市區(qū)等信息。 # 獲取ip地址 # 如果只是查看本機(jī)ip,不涉及應(yīng)用開(kāi)發(fā),可以依次打開(kāi)手機(jī)設(shè)置-我的設(shè)備-狀態(tài)信息-ip
    的頭像 發(fā)表于 11-20 11:57 ?219次閱讀
    主站蜘蛛池模板: 天堂网2021天堂手机版| 人人看人人玩| 精品伊人久久大香线蕉网站| 中文字幕在线乱码免费毛片| 日本最顶级丰满的aⅴ艳星| 成年ssswww中国女人| 天天综合色天天综合网| h视频在线免费看| 四虎成人免费网站在线| 久久综合九色综合97_ 久久久 | 免费黄色小视频| 天天操欧美| 欧美成人性高清观看| 天堂bt种子资源+在线| 福利片欧美| 久久在草| 亚洲香蕉影院| 女人张腿让男桶免费视频网站| 福利色视频| 人人澡人人搞| 日韩啪啪电影| 天天操天天添| 伊人久久综合网站| 美女毛片视频| 国产一级影院| 天堂资源在线官网bt| 伊人狼人在线| 亚洲一区毛片| 久久极品| 欧美性a欧美在线| 欧洲综合色| 五月天婷婷视频在线观看| 九九re热| 久青草国产高清在线视频| 国内精品久久影视| 手机在线色| 日韩1024| 亚洲三级在线看| 午夜精品在线视频| 综合伊人| 一区二区三区午夜|