IDA Pro7.0使用技巧总结使用
文章目錄
- 聲明
- 一些二進制工具
- C++filt:
- PE tools:
- string:
- strip:
- IDA目錄結(jié)構(gòu)
- 常用快捷鍵
- 常用設(shè)置
- 拍攝快照
- 菜單欄常用設(shè)置
- 自動添加反匯編注釋
- 常用操作
- 創(chuàng)建數(shù)組
- 流程圖
- 折疊流程圖中的分支
- 函數(shù)調(diào)用圖
- 函數(shù)流程圖
- 創(chuàng)建結(jié)構(gòu)體:
- 手工創(chuàng)建結(jié)構(gòu)體
- 創(chuàng)建結(jié)構(gòu)體的快捷鍵是:insert
- 如果要刪除結(jié)構(gòu)體,那么對著結(jié)構(gòu)體按下delete鍵即可刪除
- 導(dǎo)入C語言聲明的結(jié)構(gòu)體
- IDA動態(tài)調(diào)試elf:
- IDA-python
- 打PATCH
- 下載Keypatch.py復(fù)制到插件目錄
- 撤銷patch
- IDA導(dǎo)出數(shù)據(jù)文件
- IDA常見命名意義
- IDA反編譯報錯
- 配置IDA
- 一、ida.cfg
- 二、idagui.cfg
- 三、idatui.cfg
- 最后
聲明
俗話說,工欲善其事,必先利其器,在二進制安全的學(xué)習(xí)中,使用工具尤為重要,而IDA又是玩二進制的神器,以前在使用IDA的時候,只是用幾個比較常用的功能,對于IDA的其他功能沒有去研究,于是本著學(xué)習(xí)的精神,參考著《IDA pro權(quán)威指南》(第二版),寫下這篇文章,記錄自己的學(xué)習(xí)心得,下面的記錄都是在Windows平臺下的IDA pro7.0進行的
一些二進制工具
在《IDA pro權(quán)威指南》的開篇一兩章中,先是介紹了幾款常用于二進制研究的工具,我這里簡單的記了幾個,介紹一波:
C++filt:
可以用于顯示出c++中復(fù)雜的重載后的函數(shù)名稱
PE tools:
是一組用于分析Windows系統(tǒng)中正在運行的進程和可執(zhí)行文件的工具
string:
可以用于直接搜索出elf文件中的所有字符串
參數(shù)-a 表示搜索整個文件,參數(shù)-t 可以顯示出每一個字符串的偏移,參數(shù)-e 可以用于搜索更多的字符編碼的字符串,如Unicode編碼
strip:
可用于elf去符號,去符號后仍然保持正常功能但增加了逆向的難度,出題惡人必備
開發(fā)了IDA的天才是Ilfak,他的個人博客有很多IDA的教程
https://www.hexblog.com/
IDA目錄結(jié)構(gòu)
在IDA的安裝根目錄下有許多文件夾,各個文件夾存儲不同的內(nèi)容
cfg:包含各種配置文件,基本IDA配置文件ida.cfg,GUI配置文件idagui.cfg,文本模式用戶界面配置文件idatui.cfg,
idc:包含IDA內(nèi)置腳本語言IDC所需要的核心文件
ids:包含一些符號文件
loaders:包含用于識別和解析PE或者ELF
plugins:附加的插件模塊
procs:包含處理器模塊
常用快捷鍵
IDA中的快捷鍵都是和菜單欄的各個功能選項一一對應(yīng)的,基本上你只要能在菜單欄上找到某個功能,也就能看到相應(yīng)的快捷鍵,這里記錄幾個常用的:
a:將數(shù)據(jù)轉(zhuǎn)換為字符串
f5:一鍵反匯編
esc:回退鍵,能夠倒回上一部操作的視圖(只有在反匯編窗口才是這個作用,如果是在其他窗口按下esc,會關(guān)閉該窗口)
shift+f12:可以打開string窗口,一鍵找出所有的字符串,右擊setup,還能對窗口的屬性進行設(shè)置
ctrl+w:保存ida數(shù)據(jù)庫
ctrl+s:選擇某個數(shù)據(jù)段,直接進行跳轉(zhuǎn)
ctrl+鼠標(biāo)滾輪:能夠調(diào)節(jié)流程視圖的大小
x:對著某個函數(shù)、變量按該快捷鍵,可以查看它的交叉引用
g:直接跳轉(zhuǎn)到某個地址
n:更改變量的名稱
y:更改變量的類型
/ :在反編譯后偽代碼的界面中寫下注釋
\:在反編譯后偽代碼的界面中隱藏/顯示變量和函數(shù)的類型描述,有時候變量特別多的時候隱藏掉類型描述看起來會輕松很多
注釋:
;:在反匯編后的界面中寫下注釋
分號;(注釋所在的地方被引用時,注釋也會在引用地存在)
冒號:(注釋所在的地方被引用時,注釋不會在引用地存在)
針對于函數(shù)的注釋:選中函數(shù)名,然后按下分號,可編寫針對于函數(shù)的注釋
ctrl+shift+w:拍攝IDA快照
u:undefine,取消定義函數(shù)、代碼、數(shù)據(jù)的定義
常用設(shè)置
拍攝快照
由于IDA不提供撤銷的功能,如果你不小心按到某個鍵,導(dǎo)致ida數(shù)據(jù)庫發(fā)生了改變,就得重新來過,所以要記得在經(jīng)常操作的時候,加上快照:file–>take database snapshot
加完快照后,會生成一個新的ida數(shù)據(jù)庫文件,本質(zhì)上是有點像另存的操作
快捷鍵:ctrl+shift+w
菜單欄常用設(shè)置
view–>open subviews: 可以恢復(fù)你無意中關(guān)閉的數(shù)據(jù)顯示窗口
windows–>reset desktop: 可以恢復(fù)初始ida布局
option–>font: 可以改變字體的相關(guān)屬性
在流程視圖中添加地址偏移
IDA中的流程視圖可以說是非常的好用,簡單明了地能看出程序的執(zhí)行流程,尤其是在看if分支代碼和循環(huán)代碼的時候,能夠非常直觀
但是,我們還可以改得更加好用,在這個視圖中添加地址偏移的話,我們?nèi)〉刂肪头浅7奖?#xff0c;不再需要按空格切換視圖去找,在菜單欄中設(shè)置:option–>general
將該選項打鉤后就可以看到效果了:
自動添加反匯編注釋
這個功能對于萌新來說非常友好,在剛剛初學(xué)匯編的時候, 難免遇到幾個不常用的蛇皮匯編指令,就得自己一個個去查,很麻煩,開啟了自動注釋的功能后,IDA就可以直接告訴你匯編指令的意思
同樣是在菜單欄中設(shè)置:option–>general
效果如下:
常用操作
創(chuàng)建數(shù)組
在操作IDA的時候,經(jīng)常會遇到需要創(chuàng)建數(shù)組的情況,尤其是為了能方便我們看字符串的時候,創(chuàng)建數(shù)組顯得非常必要,以下我隨便找了個數(shù)據(jù)來創(chuàng)建數(shù)組
首先點擊選中你想要轉(zhuǎn)換成數(shù)組的一塊區(qū)域:
接著在菜單欄中選擇:edit–>array,就會彈出如下的選項框
下面來解釋一下各個參數(shù)的意思:
Array element size這個值表示各數(shù)組元素的大小(這里是1個字節(jié)),是根據(jù)你選中的數(shù)據(jù)值的大小所決定的
Maximum possible size 這個值是由自動計算得出的,他表示數(shù)組中的元素的可能的最大值
Array size 表示數(shù)組元素的數(shù)量,一般都根據(jù)你選定的自動產(chǎn)生默認值
Items on a line 這個表示指定每個反匯編行顯示的元素數(shù)量,它可以減少顯示數(shù)組所需的空間
Element print width 這個值用于格式化,當(dāng)一行顯示多個項目時,他控制列寬
Use “dup” construct :使用重復(fù)結(jié)構(gòu),這個選項可以使得相同的數(shù)據(jù)值合并起來,用一個重復(fù)說明符組合成一項
Signed elements 表示將數(shù)據(jù)顯示為有符號數(shù)還是無符號數(shù)
Display indexes 顯示索引,使得數(shù)組索引以常規(guī)的形式顯示,如果選了這個選項,還會啟動右邊的Indexes選項欄,用于選擇索引的顯示格式
Create as array 創(chuàng)建為數(shù)組,這個一般默認選上的
創(chuàng)建好了以后,就變成了這樣:
可以看到這些數(shù)據(jù)已經(jīng)被當(dāng)成一個數(shù)組折疊到了一起,其中2 dup(0FFh)這樣的,表示有兩個重復(fù)的數(shù)據(jù)0xff
*
流程圖
折疊流程圖中的分支
在流程視圖中,分支過多的時候,可以在窗口標(biāo)題處右擊選擇group nodes,就能把當(dāng)前塊折疊起來
效果如下:
分支塊是可以自己命名的,方便自己逆向理解
函數(shù)調(diào)用圖
菜單欄中:view–>graphs–>Function calls(快捷鍵Ctrl+F12)
這個圖能很清楚地看到函數(shù)之間是如何相互調(diào)用的
函數(shù)流程圖
菜單欄中:view–>graphs–>flowt chart(快捷鍵F12)
這個其實跟IDA自帶的反匯編流程視圖差不多,他可以導(dǎo)出來作為單獨的一張圖
創(chuàng)建結(jié)構(gòu)體:
手工創(chuàng)建結(jié)構(gòu)體
創(chuàng)建結(jié)構(gòu)體是在IDA的structures窗口中進行的,這個操作在堆漏洞的pwn題中經(jīng)常使用
可以看到,這里已經(jīng)存在了四個結(jié)構(gòu)體,程序本身存在的,可以右擊選擇hide/unhide,來看具體的結(jié)構(gòu)體的內(nèi)容
創(chuàng)建結(jié)構(gòu)體的快捷鍵是:insert
在彈出的窗口中,可以編輯結(jié)構(gòu)體的名字
這底下有三個復(fù)選框,第一個表示顯示在當(dāng)前結(jié)構(gòu)體之前(就會排列在第一位,否則排列在你鼠標(biāo)選定的位置),第二個表示是否在窗口中顯示新的結(jié)構(gòu)體,第三個表示是否創(chuàng)建聯(lián)合體。
需要注意的是,結(jié)構(gòu)體的大小是它所包含的字段大小的總和,而聯(lián)合體的大小則等于其中最大字段的大小
在單擊ok以后,就定好了一個空的結(jié)構(gòu)體:
將鼠標(biāo)放在 ends這一行,單擊快捷鍵D即可添加結(jié)構(gòu)體成員,成員的命名默認是以field_x表示的,x代表了該成員在結(jié)構(gòu)體中的偏移
同時,可以把鼠標(biāo)放在結(jié)構(gòu)體成員所在的行,按D,就可以切換不同的字節(jié)大小
默認情況下可供選擇的就只有db,dw,dd(1,2,4字節(jié)大小)
如果想添加型的類型,可以在option–>setup data types(快捷鍵Alt+D),進行設(shè)置
如圖,勾選了第五個和第九個的話,就會出現(xiàn)dq和xmmword了(代表了8字節(jié)和16字節(jié))
如果要添加數(shù)組成員則可以對著成員所在的那一行,右擊選擇array
如圖,要創(chuàng)建的是16個元素的4字節(jié)數(shù)組
如果要刪除結(jié)構(gòu)體,那么對著結(jié)構(gòu)體按下delete鍵即可刪除
如果要刪除成員,則對著成員按下u(undefine)但是需要注意的是,這里只是刪除了成員的名字,而沒有刪除它所分配的空間
會變成這樣:
數(shù)組所分配的20個字節(jié)的空間并沒有被刪除,這時如果要刪除掉這些空間,就需要在原來數(shù)組成員所在的第一行中按下Ctrl+S,刪除空間(Edit–>shrink struct types)
就可以真正的刪除掉成員
給結(jié)構(gòu)體的成員重命名可以用快捷鍵N
我們在IDA中創(chuàng)建好了結(jié)構(gòu)體以后,就是去應(yīng)用它了
如圖,這是一個典型的堆的題目
可以看到v1是一個新建的chunk的地址指針,而后的操作都是往chunk不同的偏移位置寫入內(nèi)容,為了方便我們逆向觀察,可以將其變成一個結(jié)構(gòu)體,通過v1 v1+4 v1+0x48 這樣的偏移,創(chuàng)建好結(jié)構(gòu)體后,將char *v1的類型改成mail *v1,(快捷鍵Y可以更改函數(shù)、變量的類型和參數(shù))這個mail是我們創(chuàng)建的結(jié)構(gòu)體的名稱,效果如下:
導(dǎo)入C語言聲明的結(jié)構(gòu)體
實際上,IDA有提供一個更方便的創(chuàng)建結(jié)構(gòu)體的方法,就是直接寫代碼導(dǎo)入
在View–>Open Subviews–>Local Types中可以看到本地已有的結(jié)構(gòu)體,在該窗口中右擊insert
可以添加新的結(jié)構(gòu)體:
這樣就導(dǎo)入了新的結(jié)構(gòu)體:
但同時我們發(fā)現(xiàn)structure視圖里面,并沒有這個結(jié)構(gòu)體,我們需要對著my_structure右擊,選擇 synchronize to idb
這樣structure視圖就有了,如圖
這里你會發(fā)現(xiàn),多出來兩個db的undefined的成員,這是因為ida默認是會把結(jié)構(gòu)體統(tǒng)一4字節(jié)對齊的,滿足結(jié)構(gòu)體的大小為0x28
IDA動態(tài)調(diào)試elf:
這里我以一個在Ubuntu虛擬機中的elf為例子,進行調(diào)試
首先把ida目錄中的dbgsrv文件夾中的linux_server64拷貝到Ubuntu的elf的文件夾下,這個elf是64位的所有用的是linux_server64,如果你調(diào)試的是32位的程序,你就需要拷貝linux_server
記得給他們權(quán)限,然后在終端運行,這個程序的作用就像是連接ida和虛擬機中elf的橋梁
然后再到ida中進行配置:
在菜單欄中選擇:debugger–>process options
注意,application和input file 都是填寫在虛擬機中的elf的路徑,記得要加文件名
而directory 填寫elf所在目錄,不用加文件名
hostname是虛擬機的ip地址,port是默認的連接端口
parameter和password一般都不用填
設(shè)置好了以后點擊ok
接著可以直接在反匯編視圖中下斷點,只要點擊左邊的小藍點即可
這時按下快捷鍵F9,可以直接開始調(diào)試
按下快捷鍵F4,則直接運行到斷點處停下
這個就是基本的各個功能區(qū)的介紹,上面是我比較喜歡的常用布局,和ida默認的不太一樣,想要自定義添加一些視圖的話,可以在debugger–>quick debug view中添加
另外可以在Windows–>save desktop來保持當(dāng)前的視圖布局,以后就可以直接加載使用
下面介紹一些常用的快捷鍵
F7 單步步入,遇到函數(shù),將進入函數(shù)代碼內(nèi)部
F8 單步步過,執(zhí)行下一條指令,不進入函數(shù)代碼內(nèi)部
F4 運行到光標(biāo)處(斷點處)
F9 繼續(xù)運行
CTRL+F2 終止一個正在運行的調(diào)試進程
CTRL+F7 運行至返回,直到遇到RETN(或斷點)時才停止.
知道了這些快捷鍵后,調(diào)試起來就比較容易了,ida調(diào)試有個比較方便的地方在于能直接看到函數(shù)的真實地址,下斷點也非常直觀易操作
IDA-python
在IDA的最下面有個不起眼的Output Window的界面,其實是一個終端界面,這里有python終端和IDC終端
這里的python是2.7的版本,雖然老了點,但已經(jīng)足夠我們用了,在IDA的運用中,我們經(jīng)常需要計算地址,計算偏移,就可以直接在這個終端界面進行操作,非常方便
當(dāng)然上面說的只是很簡單的python用法,真正的IDA-python的用法是這樣的:
這里以簡單的一道逆向題來做個例子
這個程序很簡單,一開始來個for循環(huán),把judge函數(shù)的內(nèi)容全部異或0xc,這樣就導(dǎo)致了程序一運行就會直接破壞掉judge函數(shù)
從而使得沒法進行后面的flag判斷
這里我們就需要寫一個腳本來先把被破壞的內(nèi)容還原,這里IDA提供了兩種寫腳本操作的方法,一種就是IDC腳本,一種就是python腳本
這里只簡單的介紹IDA-python
而IDA-python通過三個python模塊將python代碼注入IDA中:
idaapi模塊負責(zé)訪問核心IDA API
idc模塊負責(zé)提供IDA中的所有函數(shù)功能
idautils模塊負責(zé)提供大量實用函數(shù),其中許多函數(shù)可以生成各種數(shù)據(jù)庫相關(guān)對象的python列表
所有的IDApython腳本會自動導(dǎo)入idc和idautils模塊,而idaapi模塊得自己去導(dǎo)入
這里貼上IDApython的官方函數(shù)文檔,這里包含了所有函數(shù),值得一看
針對以上的題目,我們只需要做一個腳本,指定judg函數(shù)的0-181范圍的字節(jié)異或0xc,即可恢復(fù)
judge=0x600B00 for i in range(182):addr=0x600B00+ibyte=get_bytes(addr,1)#獲取指定地址的指定字節(jié)數(shù)byte=ord(byte)^0xCpatch_byte(addr,byte)#打patch修改字節(jié)在菜單欄中file–>script file,加載python腳本
接著在judge函數(shù)中undefined掉原來的函數(shù),在重新生成函數(shù)(快捷鍵p),就可以重新f5了
腳本中出現(xiàn)的函數(shù)都是已經(jīng)封裝在idc模塊中的,具體可查官方文檔
這只是一個簡單的IDApython的使用例子,實際上這個功能非常強大,能弄出非常騷的操作
打PATCH
打patch,其實就是給程序打補丁,本質(zhì)上是修改程序的數(shù)據(jù),指令等,這在CTF中的AWD賽制中經(jīng)常用到,發(fā)現(xiàn)程序漏洞后馬上就要用這個功能給程序打好patch,防止其他隊伍攻擊我們的gamebox
這里,我是用一個叫keypatch的插件進行操作的,IDA自帶的patch功能不太好用
安裝keypatch:
這個很簡單,教程在github就有
下載Keypatch.py復(fù)制到插件目錄
IDA 7.0\plugins\Keypatch.py
下載安裝keystone python模塊,64位系統(tǒng)只需要安裝這一個就行
https://github.com/keystone-engine/keystone/releases/download/0.9.1/keystone-0.9.1-python-win64.msi
安裝好后,你就會發(fā)現(xiàn)這里有個keypatch的選項
修改程序指令
如果我們要修改程序本身的指令,怎么做呢
如圖,我們要修改63h這個值
將鼠標(biāo)指向改行,按快捷鍵Ctrl+Alt+K
直接輸入?yún)R編語句即可修改,打好patch后效果如圖:
這里會生成注釋告訴你,這里打過patch,非常人性化
接著還要在菜單欄進行設(shè)置才能真正使得patch生效
這樣一來,原來的程序就已經(jīng)被修改了
撤銷patch
如果不小心打錯了patch,就可以在這里進行撤銷上一次patch的操作了
但是如果打了很多次patch,不好分清該撤銷哪一次的patch,那么可以在菜單欄中打開patched bytes界面
看到所有的patch,要撤銷哪一個就右擊選擇 revert
IDA導(dǎo)出數(shù)據(jù)文件
在菜單欄中,這里有個選項可以生成各種不同的輸出文件
這里簡單的介紹前兩個文件,后面的大家可以自己去生成測試一下用途,我這里就不詳細介紹了
.map文件描述二進制文件的總體結(jié)構(gòu),包括與構(gòu)成改二進制文件的節(jié)有關(guān)的信息,以及每個節(jié)中符號的位置。
.asm文件,也就是匯編了,直接能導(dǎo)出ida中反匯編的結(jié)果,這個非常實用,有的時候在逆向中經(jīng)常遇到大量數(shù)據(jù)加解密的情況,如果在從IDA中一個個慢慢復(fù)制可就太沒效率了,直接導(dǎo)出生成asm,在里面復(fù)制數(shù)據(jù)快很多
IDA常見命名意義
IDA經(jīng)常會自動生成假名字。他們用于表示子函數(shù),程序地址和數(shù)據(jù)。根據(jù)不同的類型和值假名字有不同前綴
sub 指令和子函數(shù)起點
locret 返回指令
loc 指令
off 數(shù)據(jù),包含偏移量
seg 數(shù)據(jù),包含段地址值
asc 數(shù)據(jù),ASCII字符串
byte 數(shù)據(jù),字節(jié)(或字節(jié)數(shù)組)
word 數(shù)據(jù),16位數(shù)據(jù)(或字數(shù)組)
dword 數(shù)據(jù),32位數(shù)據(jù)(或雙字數(shù)組)
qword 數(shù)據(jù),64位數(shù)據(jù)(或4字數(shù)組)
flt 浮點數(shù)據(jù),32位(或浮點數(shù)組)
dbl 浮點數(shù),64位(或雙精度數(shù)組)
tbyte 浮點數(shù),80位(或擴展精度浮點數(shù))
stru 結(jié)構(gòu)體(或結(jié)構(gòu)體數(shù)組)
algn 對齊指示
unk 未處理字節(jié)
IDA中有常見的說明符號,如db、dw、dd分別代表了1個字節(jié)、2個字節(jié)、4個字節(jié)
IDA反編譯報錯
目前來說, 我遇到的反編譯報錯的情況,一般是兩種
一是由于程序存在動態(tài)加密,導(dǎo)致程序的某些代碼段被修改,從而反編譯出錯,這種情況,就需要去使用IDA-python解密一波,再進行F5反匯編
二是由于某些玄學(xué)問題,直接提示了某個地方出錯,一般來說,就按照IDA的提示,去進行修改
比如,出現(xiàn)如下報錯:
那我們就去找413238這個地址的地方,提示是說sp指針的值沒有被找到,說明是這里出錯了,那么就去修改sp的值,修改方法如下:
也可以使用快捷鍵 Alt+K
有的時候,遇到的這種報錯
就嘗試著把報錯的地址的匯編語句改一哈,改成nop,就可以解決問題
目前來說,我遇到報錯的情況不多,一般都可以通過以上方法解決
配置IDA
在ida的根目錄的cfg文件夾是專門用來存儲配置文件的
ida的主配置文件為ida.cfg,另外的還有idagui.cfg,idatui.cfg這兩個配置文件對應(yīng)IDA的GUI配置和文本模式的版本
一、ida.cfg
該文件包含了option–>general中的所有選項的配置,可以通過選項中的描述在配置文件總找到相應(yīng)的選項
這里舉幾個例子:
SHOW_AUTOCOMMENTS 表示是否自動生成匯編指令的注釋
GRAPH_SHOW_LINEPREFIXES 表示是否在流程控制視圖中顯示地址
VPAGESIZE 表示內(nèi)存調(diào)整參數(shù),當(dāng)處理非常大的輸入文件時,IDA可能報告內(nèi)存不足而無法創(chuàng)建新數(shù)據(jù)庫,在這種情況下增大該參數(shù),重新打開輸入文件即可解決問題
OPCODE_BYTES 表示要顯示的操作碼字節(jié)數(shù)的默認值
INDENTATION 表示指令縮進的距離
NameChars 表示IDA支持的變量命令使用的字符集,默認是數(shù)字+字母還有幾個特殊符號,如果需要添加就改變該參數(shù)
二、idagui.cfg
這個文件主要配置默認的GUI行為,鍵盤的快捷鍵等,這個很少需要修改,不做過多介紹。感興趣的可以自己打開該文件觀察,并不難懂,改改快捷鍵還是很容易的
三、idatui.cfg
這個似乎更加不常用。。。不多說了
需要注意的是,以上三個文件是默認配置,也就是說,每次打開創(chuàng)建新的ida數(shù)據(jù)庫的時候,都會以這三個配置文件的設(shè)置進行創(chuàng)建,之前臨時在菜單欄的設(shè)置就會消失,要永久設(shè)置ida的配置,就改這三個文件
但,凡是都有例外,在option–>font和option–>colors這兩個選項是全局選項,修改一次就永久生效的,不用在以上三個配置文件中改
最后
通過這一次系統(tǒng)地去學(xué)IDA,發(fā)現(xiàn)這個軟件真的是非常厲害,我上面也只是簡單地記錄了平時比較常用的功能和操作,IDA還有很多高級的開發(fā)技巧,甚至你還能自定義模塊和加載器等,也能自己制作ida的插件,在這個過程中,發(fā)現(xiàn)看書真的很重要,自己看書和看網(wǎng)上別人總結(jié)的,完全不一樣,搞二進制還是得踏踏實實打好基礎(chǔ),所謂萬丈高樓平地起。以前覺得天天對著電腦搞這些很累,進步又慢感覺很難,而經(jīng)歷這個黑暗寒假,我才知道這些東西再難也難不過生活,有個安安靜靜平平穩(wěn)穩(wěn)的生活去搞技術(shù)又何嘗不是一種幸運。
如果其他大佬還有別的IDA小技巧騷操作,可以留言交流一哈
總結(jié)
以上是生活随笔為你收集整理的IDA Pro7.0使用技巧总结使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020-11-7( servlet)
- 下一篇: 2020-11-8(activity状态