① IDA pro 獲取不到全部的app進程列表
其實就是用戶的問題,真機usb鏈接電腦後,adb shell進去後是$,su轉為#,然後執行android_server,這樣是不行的,必須adb shell進入後就是#,這樣才表示是root在操作shell。
解決方案:建議在電腦上裝個靠譜助手,然後再測試。經測試,可以解決如題問題。
② Ida pro文件加密方式
具體如下:
1、壓縮加密
文件夾右鍵——添加到壓縮文件夾——設置密碼——確定。這也是我們最常用到的文件夾加密方式。這種加密方式簡單易行,針對一般文件的加密,安全度是足夠的。
2、隱藏文件夾
右鍵點擊需要隱藏的文件夾,點擊「屬性」,勾選「隱藏」項,確定。不過「文件夾隱藏」這種加密方式對於稍微懂點電腦的人或者細心的人來說都不是很安全的。不過隱藏文件夾可以和上面提到的壓縮加密方式結合。這樣可以起到雙管齊下的作用。
3、加密軟體
通過軟體加密的方式也是最為常用的加密方式之一。不同加密軟體的加密原理是不同的。最常用的也是公認加密性比較高的加密演算法是AES。下載安裝數據安全中心>登錄賬號創建文件保險箱>將文件拖入保險箱>退出登錄文件加密隱藏。
③ ida pro 查看android的dex文件怎麼看
根據android的官方文檔,如果要調試一個App裡面的dex代碼,必須滿足以下兩個條件中的任何一個:
1.App的AndroidManifest.xm中Application標簽必選包含屬性android:debuggable="true";
2./default.prop中ro.debuggable的值為1;
由於正常的軟體發布時都不會把android:debuggable設置為true,所以要達成條件1,需要對app進行重新打包,這不僅每次分析一個App都重復操作,而且很多軟體會對自身進行校驗,重打包後執行會被檢測到,所以想辦法滿足第2個條件是個一勞永逸的辦法,我實際使用的方法就是滿足第二個條件。
由於default.prop是保存在boot.img的ramdisk中,這部分每次重新啟動都會重新從rom中載入,所以要到目的必須修改boot.img中的ramdisk並重新刷到設備中。
④ IDA怎麼調試Android的send函數,求教
安卓手機用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)對應.local X。
2
另外,有的包在你要調試的那個SO裡面有簽名保護,反正你重新打了包之後會導致程序運行崩潰,這個相比java修改困難些,建議你用那個簽名漏洞來打包。事實上我調試那個SO也遇到過這樣,然後打了個簽名漏洞的包嵌入的延時函數就可以了。
方法2
1) am start -D -n 包名/類名;
2) IDA pro attach 進程, 設置新線程,載入so時斷點,continue;
3) 打開ddms, 查看調試埠, jdb attach port;
4) 這個時候應該已經斷在新線程,或者載入so處了,在你感興趣的so處停下來;
5) 另外用ida 打開so,查看你感興趣的函數偏移, 加上你感興趣的so的基地址,打上斷點,continue, 就大功告成了。
注意事項
windows下ida6.1不行,linux ida 6.4可以,不知是ida的問題還是windows的問題,你可以在linux下用wine測一下。
經驗內容僅供參考,如果您需解決具體問題(尤其法律、醫學等領域),建議您詳細
⑤ apk調試方法求助
方法一:
1、使用apktool的-d選項反編譯apk文件
java -jar apktool.jar d -d target.apk -o output
2、在AndroidManifest的application節點中添加 android:debuggable="true"
3、在入口點的類的onCreate中添加如下代碼等待調試
invoke-static{}, Landroid/os/Debug;->waitForDebugger()V
4、回編譯apk
java -jar apktool.jar b -d output -o newTarget.apk
5、對apk進行簽名
java -jar signapk.jar testkey.x509.pem testkey.pk8 newTarget.apk signed.apk
6、將簽名後的apk安裝到手機或者模擬器上
adb install signed.apk
7、將1中的smali代碼導入到Android Studio中
file→open→output目錄→下斷點
8、打開Monitor查找相應的進程
運行→monitor 或者Tools ->Android ->Android Device Monitor
9、配置遠程調試選項
Run→Editor Configurations→Defaults→Remote,點擊+號新增一個,Host為localhost,Port為8700
10、打開apk,點擊綠色的小蟲子就可以開始調試了
方法二:無需修改原apk文件
1、用 Android killer等工具反編譯apk文件
2、將smali代碼入到Android Studio中,安裝smaliidea插件
File→Settings→Plugins→Install plugin from disk…→Restart
3、配置遠程調試選項,打開monitor
4、使用adb以debug方式啟動apk
adb shell am start -D -n package/activitiyname
5、下斷點開始調試,在watch中添加寄存器http://www.315nk.com/不清楚追問,希望能幫助到您
⑥ ida pro怎麼查找中文字元串
在ida pro中查找中文字元,有兩種方案:
將ida pro保存為與欲查找中文一樣的編碼,然後使用strpos查找。
將ida pro保存為UTF-8無BOM編碼,然後轉換字元串編碼為UTF-8,再用strpos查找。
第一種方法:
strpos($curl_res, '中文');
第二種方法:
$str = mb_convert_encoding($str, 'utf-8', 'gbk');
mb_strpos($str, '中文');
主意:函數中的中文字元串參數的編碼,必須要和PHP文件保存格式的編碼一致。
⑦ android動態調試so時怎麼修改標志位的值
Android平台的動態調試一直以來是個困擾我等Coder的頭疼問題,特別是對於本地的動態調試支持,可以說是「弱智」級別的,不知道Google的新版NDK和新出的Android Studio對這塊支持如何,讓我們拭目以待。
言歸正傳,我這里採用的是cygwin+ndk-gdb的調試模式,靈感來自於XDA的一篇博文(點擊打開鏈接),平台和原文作者不同:
1、Win7 64
2、NDK r9d x86_64
3、Android 4.2.2
4、cygwin 64
5、IDA pro 6.1
話不多話,開始正題,調試步驟如下:
1、環境搭建這類的各位可以自行Google之,這里就不多說了。
2、首先我們隨便找個網站,下載游戲的APK包。Android的APK包的正式發布版本是取消了debug屬性的,在調試之前,我們還需要做些准備工作。
3、用apktool解包apk文件,然後修改AndroidManifest.xml,在重新打包,再用signapk簽名。
4、為ndk-gdb調試做准備工作,這個上面那篇博文已經寫得很詳細,這里不再贅述。說明一點:我們調試的目標是.\libs\armeabi\libgame.so,這個so是游戲主庫文件。
⑧ ida pro 如何顯示c代碼
通過按照偽代碼所表達的演算法或操作,編好程序,才能運行。IDA Pro全稱是互動式反匯編器專業版(Interactive Disassembler Professional),簡稱IDA,它是一種典型的遞歸下降反匯編器。IDA並非免費軟體,但Hex-Rays公司提供了一個功能有限的免費版本。IDA是Windows,Linux或Mac OS X託管的多處理器反匯編程序 和調試程序,它提供了許多功能,是一款很強大的靜態反編譯工具。支持很多插件和python,利用一些插件可以提供很多方便的功能大大減少工作量,在CTF中,逆向和pwn都少不了它,更多強大的功能等待童鞋們自己去學習挖掘,三言兩語講不完。它支持數十種CPU指令集其中包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。
⑨ IDA Pro權威指南的目錄
第一部分IDA簡介
第1章反匯編簡介 2
1.1反匯編理論2
1.2何為反匯編3
1.3為何反匯編3
1.3.1分析惡意軟體 4
1.3.2漏洞分析4
1.3.3軟體互操作性 4
1.3.4編譯器驗證 4
1.3.5顯示調試信息 5
1.4如何反匯編5
1.4.1基本的反匯編演算法5
1.4.2線性掃描反匯編6
1.4.3遞歸下降反匯編7
1.5小結 10
第2章逆向與反匯編工具 11
2.1分類工具 11
2.1.1file 11
2.1.2PE Tools 13
2.1.3PEiD 14
2.2摘要工具 14
2.2.1nm 15
2.2.2ldd 16
2.2.3objmp 17
2.2.4otool 18
2.2.5mpbin 18
2.2.6c++filt 19
2.3深度檢測工具 20
2.3.1strings 20
2.3.2反匯編器 21
2.4小結 22
第3章IDA Pro背景知識 23
3.1Hex-Rays公司的反盜版策略 23
3.2獲取IDA Pro 24
3.2.1IDA版本 24
3.2.2IDA許可證 24
3.2.3購買IDA 25
3.2.4升級IDA 25
3.3IDA支持資源 25
3.4安裝IDA 26
3.4.1Windows安裝 26
3.4.2OS X和Linux安裝 27
3.4.3IDA目錄的結構 28
3.5IDA用戶界面 29
3.6小結 29
第二部分IDA基本用法
第4章IDA入門 32
4.1啟動IDA 32
4.1.1IDA文件載入 34
4.1.2使用二進制文件載入器 35
4.2IDA資料庫文件 37
4.2.1創建IDA資料庫 38
4.2.2關閉IDA資料庫 38
4.2.3重新打開資料庫 39
4.3IDA桌面簡介 40
4.4初始分析時的桌面行為 42
4.5IDA桌面提示和技巧 43
4.6報告bug 44
4.7小結 44
第5章IDA數據顯示窗口 45
5.1IDA主要的數據顯示窗口 45
5.1.1反匯編窗口 45
5.1.2Names窗口 50
5.1.3消息窗口 51
5.1.4Strings窗口 52
5.2次要的IDA顯示窗口 53
5.2.1十六進制窗口 53
5.2.2導出窗口 54
5.2.3導入窗口 54
5.2.4函數窗口 55
5.2.5結構體窗口 55
5.2.6枚舉窗口 56
5.3其他IDA顯示窗口 56
5.3.1段窗口 56
5.3.2簽名窗口 57
5.3.3類型庫窗口 58
5.3.4函數調用窗口 58
5.3.5問題窗口 59
5.4小結 59
第6章反匯編導航 60
6.1基本IDA導航 60
6.1.1雙擊導航60
6.1.2跳轉到地址 62
6.1.3導航歷史記錄 62
6.2棧幀 63
6.2.1調用約定64
6.2.2局部變數布局 67
6.2.3棧幀示例67
6.2.4IDA棧視圖 70
6.3搜索資料庫74
6.3.1文本搜索75
6.3.2二進制搜索 75
6.4小結 76
第7章反匯編操作 77
7.1名稱與命名77
7.1.1參數和局部變數 77
7.1.2已命名的位置 79
7.1.3寄存器名稱 80
7.2IDA中的注釋 80
7.2.1常規注釋82
7.2.2可重復注釋 82
7.2.3在前注釋和在後注釋 82
7.2.4函數注釋82
7.3基本代碼轉換 83
7.3.1代碼顯示選項 83
7.3.2格式化指令操作數 85
7.3.3操縱函數86
7.3.4數據與代碼互相轉換 91
7.4基本數據轉換 91
7.4.1指定數據大小 92
7.4.2處理字元串 93
7.4.3指定數組 94
7.5小結 96
第8章數據類型與數據結構 97
8.1識別數據結構的使用 98
8.1.1數組成員訪問 98
8.1.2結構體成員訪問 102
8.2創建IDA結構體 107
8.3使用結構體模板 111
8.4導入新的結構體 114
8.4.1解析C結構體聲明 114
8.4.2解析C頭文件 115
8.5使用標准結構體 115
8.6IDA TIL文件 118
8.6.1載入新的TIL文件 118
8.6.2共享TIL文件 118
8.7C++逆向工程基礎 119
8.7.1this指針 119
8.7.2虛函數和虛表 120
8.7.3對象生命周期 122
8.7.4名稱改編 124
8.7.5運行時類型識別 125
8.7.6繼承關系 126
8.7.7C++逆向工程參考文獻 127
8.8小結 127
第9章交叉引用與繪圖功能 128
9.1交叉引用 128
9.1.1代碼交叉引用 129
9.1.2數據交叉引用 131
9.1.3交叉引用列表 133
9.1.4函數調用 134
9.2IDA繪圖 135
9.2.1IDA的遺留繪圖功能 135
9.2.2IDA的集成圖形視圖 141
9.3小結 143
第10章IDA的多種面孔 144
10.1控制台模式IDA 144
10.1.1控制台模式的共同特性 144
10.1.2Windows控制台 145
10.1.3Linux控制台 146
10.1.4OS X控制台 148
10.2使用IDA的批量模式 150
10.3非Windows平台上的GUI IDA 151
10.4小結 152
第三部分IDA高級應用
第11章定製IDA 154
11.1配置文件 154
11.1.1主配置文件:ida.cfg 154
11.1.2GUI配置文件:idagui.cfg 155
11.1.3控制台配置文件:idatui.cfg 157
11.2其他IDA配置選項 158
11.2.1IDA顏色 159
11.2.2定製IDA工具欄 159
11.3小結 161
第12章使用FLIRT簽名來識別庫 162
12.1快速庫識別和鑒定技術 162
12.2應用FLIRT簽名 163
12.3創建FLIRT簽名文件 166
12.3.1創建簽名概述 166
12.3.2識別和獲取靜態庫 167
12.3.3創建模式文件 168
12.3.4創建簽名文件 169
12.3.5啟動簽名 171
12.4小結 172
第13章擴展IDA的知識 173
13.1擴充函數信息 173
13.1.1IDS文件 175
13.1.2創建IDS文件 176
13.2使用loadint擴充預定義注釋 178
13.3小結 179
第14章修補二進制文件及其他IDA 限制 180
14.1隱藏的補丁程序菜單 180
14.1.1更改資料庫位元組 181
14.1.2更改資料庫中的字 181
14.1.3使用「匯編」對話框 182
14.2IDA輸出文件與補丁生成 183
14.2.1IDA生成的MAP文件 183
14.2.2IDA生成的ASM文件 184
14.2.3IDA生成的INC文件 184
14.2.4IDA生成的LST文件 185
14.2.5IDA生成的EXE文件 185
14.2.6IDA生成的DIF文件 185
14.2.7IDA生成的HTML文件 186
14.3小結 186
第四部分擴展IDA的功能
第15章編寫IDC腳本 188
15.1執行腳本的基礎知識 188
15.2IDC語言 189
15.2.1IDC變數 190
15.2.2IDC表達式 190
15.2.3IDC語句 190
15.2.4IDC函數 191
15.2.5IDC程序 192
15.2.6IDC錯誤處理 192
15.2.7IDC永久數據存儲 193
15.3關聯IDC腳本與熱鍵 194
15.4有用的IDC函數 195
15.4.1讀取和修改數據的函數 196
15.4.2用戶交互函數 196
15.4.3字元串操縱函數 197
15.4.4文件輸入/輸出函數 197
15.4.5操縱資料庫名稱 198
15.4.6處理函數的函數 199
15.4.7代碼交叉引用函數 199
15.4.8數據交叉引用函數 200
15.4.9資料庫操縱函數 200
15.4.10資料庫搜索函數 201
15.4.11反匯編行組件 201
15.5IDC腳本示例 202
15.5.1枚舉函數 202
15.5.2枚舉指令 202
15.5.3枚舉交叉引用 203
15.5.4枚舉導出的函數 205
15.5.5查找和標記函數參數 206
15.5.6模擬匯編語言行為 208
15.6小結 209
第16章IDA軟體開發工具包 211
16.1SDK簡介 212
16.1.1安裝SDK 212
16.1.2SDK的布局 212
16.1.3配置構建環境 213
16.2IDA應用編程介面 214
16.2.1頭文件概述 214
16.2.2網路節點 217
16.2.3有用的SDK數據類型 223
16.2.4常用的SDK函數 224
16.2.5IDA API迭代技巧 229
16.3小結 232
第17章IDA插件體系結構 233
17.1編寫插件 233
17.1.1插件生命周期 235
17.1.2插件初始化 236
17.1.3事件通知 237
17.1.4插件執行 238
17.2構建插件 239
17.3插件安裝 243
17.4插件配置 244
17.5擴展IDC 244
17.6插件用戶界面選項 247
17.7小結 254
第18章二進制文件與IDA載入器模塊 255
18.1未知文件分析 256
18.2手動載入一個Windows PE文件 256
18.3IDA載入器模塊 263
18.4編寫IDA載入器 263
18.4.1「傻瓜式」載入器 265
18.4.2構建IDA載入器模塊 269
18.4.3IDA pcap載入器 269
18.5其他載入器策略 274
18.6小結 275
第19章IDA處理器模塊 276
19.1Python位元組碼 277
19.2Python解釋器 277
19.3編寫處理器模塊 277
19.3.1processor_t結構體 278
19.3.2LPH結構體的基本初始化 278
19.3.3分析器 282
19.3.4模擬器 286
19.3.5輸出器 288
19.3.6處理器通知 293
19.3.7其他processor_t成員 294
19.4構建處理器模塊 296
19.5定製現有的處理器 299
19.6處理器模塊體系結構 301
19.7小結 302
第五部分實際應用
第20章編譯器變體 304
20.1跳轉表與分支語句 304
20.2RTTI實現 308
20.3定位main函數 308
20.4調試版與發行版二進制文件 315
20.5其他調用約定 317
20.6小結 317
第21章模糊代碼分析 319
21.1反靜態分析技巧 319
21.1.1反匯編去同步 319
21.1.2動態計算目標地址 322
21.1.3導入的函數模糊 327
21.1.4有針對性地攻擊分析工具 331
21.2反動態分析技巧 331
21.2.1檢測虛擬化 331
21.2.2檢測「檢測工具」 333
21.2.3檢測調試器 333
21.2.4防止調試 334
21.3使用IDA對二進制文件進行「靜態去模糊」 335
21.3.1面向腳本的去模糊 335
21.3.2面向模擬的去模糊 339
21.4小結 349
第22章漏洞分析 350
22.1使用IDA發現新的漏洞 351
22.2使用IDA在事後發現漏洞 356
22.3IDA與破解程序開發過程 359
22.3.1棧幀細目 360
22.3.2定位指令序列 362
22.3.3查找有用的虛擬地址 363
22.4分析shellcode 364
22.5小結 366
第23章實用IDA插件 367
23.1Hex-Rays 367
23.2IDAPython 368
23.3IDARub 371
23.4IDA Sync 371
23.5collabREate 374
23.6ida-x86emu 377
23.7mIDA 377
23.8小結 379
第六部分IDA調試器
第24章IDA調試器 382
24.1啟動調試器 382
24.2調試器的基本顯示 384
24.3進程式控制制 387
24.3.1斷點 388
24.3.2跟蹤 390
24.3.3棧跟蹤 393
24.3.4監視 393
24.4調試器任務自動化 393
24.4.1使用IDC為調試器操作編寫 腳本 394
24.4.2使用IDA插件實現調試器操 作自動化 398
24.5小結 400
第25章反匯編器/調試器集成 401
25.1背景知識 401
25.2IDA資料庫與IDA調試器 402
25.3調試模糊代碼 404
25.3.1簡單的解密和解壓循環 404
25.3.2導入表重建 407
25.3.3隱藏調試器 410
25.3.4處理異常 414
25.4小結 418
第26章Linux、OS X平台的IDA和 遠程調試 419
26.1控制台模式的調試 419
26.2使用IDA進行遠程調試 420
26.2.1遠程調試中的異常處理 422
26.2.2在遠程調試中使用腳本和 插件 423
26.3小結 423
附錄A使用IDA 4.9免費版 424
附錄BIDC/SDK交叉引用 426
附錄CIDA 5.3的新功能 444