精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

符號(hào)執(zhí)行:利用Angr進(jìn)行簡(jiǎn)單CTF逆向分析

安全 應(yīng)用安全
Angr是一個(gè)利用python開(kāi)發(fā)的二進(jìn)制程序分析框架,我們可以利用這個(gè)工具嘗試對(duì)一些CTF題目進(jìn)行符號(hào)執(zhí)行來(lái)找到正確的解答,即flag。

一、符號(hào)執(zhí)行概括

簡(jiǎn)單的來(lái)說(shuō),符號(hào)執(zhí)行就是在運(yùn)行程序時(shí),用符號(hào)來(lái)替代真實(shí)值。符號(hào)執(zhí)行相較于真實(shí)值執(zhí)行的優(yōu)點(diǎn)在于,當(dāng)使用真實(shí)值執(zhí)行程序時(shí),我們能夠遍歷的程序路徑只有一條,而使用符號(hào)進(jìn)行執(zhí)行時(shí),由于符號(hào)是可變的,我們就可以利用這一特性,盡可能的將程序的每一條路徑遍歷,這樣的話,必定存在至少一條能夠輸出正確結(jié)果的分支,每一條分支的結(jié)果都可以表示為一個(gè)離散關(guān)系式,使用約束求解引擎即可分析出正確結(jié)果,這就是符號(hào)執(zhí)行的簡(jiǎn)單闡述。

[[207174]]

Angr是一個(gè)利用python開(kāi)發(fā)的二進(jìn)制程序分析框架,我們可以利用這個(gè)工具嘗試對(duì)一些CTF題目進(jìn)行符號(hào)執(zhí)行來(lái)找到正確的解答,即flag。當(dāng)然,要注意的是符號(hào)執(zhí)行的路徑選擇問(wèn)題到現(xiàn)在依舊是一個(gè)很大的問(wèn)題,換句話說(shuō)也就是當(dāng)我們的程序存在循環(huán)時(shí),因?yàn)榉?hào)執(zhí)行會(huì)盡量遍歷所有的路徑,所以每次循環(huán)之后會(huì)形成至少兩個(gè)分支,當(dāng)循環(huán)的次數(shù)足夠多時(shí),就會(huì)造成路徑爆炸,整個(gè)機(jī)器的內(nèi)存會(huì)被耗盡。

二、Angr使用

個(gè)人感覺(jué)Angr在求解REVERSE題目時(shí)很有用,但在處理PWN題目時(shí),多用在一些輔助的位置,比如尋找 strcmp 等敏感的函數(shù)等,這次我們簡(jiǎn)單的講解一下如何使用Angr進(jìn)行REVERSE題目的分析求解。我首先講解一下Angr在實(shí)踐中的幾步關(guān)鍵操作,之后會(huì)使用一個(gè)簡(jiǎn)單的CTF題目進(jìn)行實(shí)踐。推薦大家使用ipython進(jìn)行簡(jiǎn)單的實(shí)踐,ipython的tab補(bǔ)全可以讓你看到Angr中很多奇妙的函數(shù)。

1. 運(yùn)行程序

我們?cè)诘玫揭粋€(gè)程序時(shí),首先需要對(duì)此程序創(chuàng)建一個(gè)Angr工程。

  1. p = angr.Project(‘program’) 

我們可以通過(guò)這個(gè)工程得到程序的一些信息,比如程序名p.filename等等。

然后需要將這個(gè)程序運(yùn)行起來(lái),并且處理程序的一些輸入,前面已經(jīng)說(shuō)過(guò),在符號(hào)執(zhí)行時(shí),我們使用的并不是真實(shí)值,而是一個(gè)個(gè)符號(hào),可以簡(jiǎn)單的理解為變量,所以我們需要構(gòu)造一個(gè)Angr中的符號(hào)來(lái)當(dāng)做程序的輸入。

(1) 命令行參數(shù)

當(dāng)程序要求命令行參數(shù)時(shí),我們首先需要使用claripy這個(gè)模塊來(lái)定義抽象的數(shù)據(jù)。

  1. import claripy 

claripy的BVS函數(shù)可以創(chuàng)建一個(gè)指定長(zhǎng)度的抽象數(shù)據(jù),BVS函數(shù)要求兩個(gè)參數(shù),***個(gè)參數(shù)為變量名,第二個(gè)參數(shù)為變量長(zhǎng)度。

  1. argv = [p.filename,]  
  2. arg = claripy.BVS(‘arg1′, 8)argv.append(arg1) 

這樣,我們就創(chuàng)建好了一個(gè)命令行參數(shù),我們現(xiàn)在可以將程序運(yùn)行到程序入口處,并獲得當(dāng)前的一個(gè)狀態(tài)。

  1. state = p.factory.entry_state(args=argv

P.factory是工廠函數(shù)的一個(gè)集合,在這里面可以調(diào)用各種各樣的函數(shù)來(lái)進(jìn)行符號(hào)執(zhí)行,其中entry_state()函數(shù)接收一個(gè)list作為程序的命令行參數(shù)并且返回程序入口的狀態(tài)(這個(gè)狀態(tài)將在2.2節(jié)講解)。

(2) 標(biāo)準(zhǔn)輸入

當(dāng)程序需要從標(biāo)準(zhǔn)輸入處讀取數(shù)據(jù)時(shí),需要使用read_from()函數(shù),要注意,這個(gè)函數(shù)位于狀態(tài)中,并且我們可以對(duì)輸入進(jìn)行一些約束以減少符號(hào)執(zhí)行遍歷的路徑。

  1. for _ in xrange(5):   
  2.     k = state.posix.files[0].read_from(1) 
  3.     state.se.add(k!=10) 

這表示我們從標(biāo)準(zhǔn)輸入讀入了5個(gè)字節(jié),并且每個(gè)字節(jié)都不為換行符。

2. Angr中程序的幾種狀態(tài)

我們?cè)谥疤岬搅双@取程序入口點(diǎn)的狀態(tài),狀態(tài)在Angr中表示著程序符號(hào)執(zhí)行后的幾種結(jié)果,在Angr中,當(dāng)獲取到程序入口點(diǎn)的狀態(tài)后,我們需要使用Angr的Simgr模擬器來(lái)進(jìn)行符號(hào)執(zhí)行

  1. sm = p.factory.simgr(state) 

表示從入口點(diǎn)出創(chuàng)建一個(gè)模擬器來(lái)進(jìn)行符號(hào)執(zhí)行。

在 Angr 尋找路徑時(shí),程序的當(dāng)前狀態(tài)有多種表示。

  • step()表示向下執(zhí)行一個(gè)block(42bytes),step()函數(shù)產(chǎn)生active狀態(tài),表示該分支在執(zhí)行中;
  • run()表示運(yùn)行到結(jié)束,run()函數(shù)產(chǎn)生deadended狀態(tài),表示分支結(jié)束;
  • explore()可以對(duì)地址進(jìn)行限制以減少符號(hào)執(zhí)行遍歷的路徑。例如
  • sm.explore(find=0x400676,avoid=[0x40073d])
  • explore()產(chǎn)生found狀態(tài),表示探索的結(jié)果等等

3. 獲取輸出

當(dāng)符號(hào)執(zhí)行遍歷玩路徑后,會(huì)產(chǎn)生大量的狀態(tài),我們則需要從這些狀態(tài)中找出我們所需要的一條路徑。

我們可以獲取當(dāng)前狀態(tài)程序的輸出

  1. print sm.found.posix.dumps(1) 

命令行參數(shù)

  1. print sm.found.solver.eval(arg1,cast_to = str

標(biāo)準(zhǔn)輸入

  1. inp = sm.found.posix.files[0].all_bytes()   
  2. print sm.found.solver.eval(inp,cast_to = str)z 

在求解命令行參數(shù)和標(biāo)準(zhǔn)輸入的值時(shí),我們使用了約束求解引擎來(lái)進(jìn)行求解

3. Angr實(shí)踐

bin(re50)下載:

http://oj.xctf.org.cn/web/practice/defensetrain/465f6bb8f4ad4d65a70cce2bd69dfacf/

腳本編寫(xiě)

  1. import angr 
  2. import sys 
  3. print "[*]start------------------------------------" 
  4. p = angr.Project(sys.argv[1])  # 建立工程初始化二進(jìn)制文件 
  5. state = p.factory.entry_state() # 獲取入口點(diǎn)處狀態(tài) 
  6.   
  7. ''' 
  8. state.posix.files[0].read_from(1)表示從標(biāo)準(zhǔn)輸入讀取一個(gè)字節(jié) 
  9. ''' 
  10.   
  11. for _ in xrange(int(sys.argv[2])):  # 對(duì)輸入進(jìn)行簡(jiǎn)單約束(不為回車(chē)) 
  12.     k = state.posix.files[0].read_from(1) 
  13.     state.se.add(k!=10) 
  14.   
  15. k = state.posix.files[0].read_from(1) 
  16. state.se.add(k==10)  # 回車(chē)為結(jié)束符 
  17.   
  18. state.posix.files[0].seek(0) 
  19. state.posix.files[0].length = int(sys.argv[2])+1 # 約束輸入長(zhǎng)度(大于實(shí)際長(zhǎng)度也可) 
  20.   
  21. print "[*]simgr start-------------------------------" 
  22.   
  23. sm = p.factory.simgr(state)   # 初始化進(jìn)程模擬器 
  24. sm.explore(find=lambda s:"correct!" in s.posix.dumps(1)) # 尋找運(yùn)行過(guò)程中存在 “correct!”的路徑,并丟棄其他路徑 
  25. print "[*]program excuted---------------------------" 
  26.   
  27. for pp in sm.found: 
  28.     out = pp.posix.dumps(1)   # 表示程序的輸出 
  29.     print out 
  30.     inp = pp.posix.files[0].all_bytes()  # 取輸入的變量 
  31.     print pp.solver.eval(inp,cast_to = str)  # 利用約束求解引擎求解輸入 

運(yùn)行

  1. root@kali:~# python re50.py ppp 4 
  2. [*]start------------------------------------ 
  3. /usr/local/lib/python2.7/dist-packages/cle/loader.py:729: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal 
  4.   if ilibname.strip('.0123456789') == spec.strip('.0123456789'): 
  5. [*]simgr start------------------------------- 
  6. [*]program excuted--------------------------- 
  7. please input the key:correct! 
  8.   
  9. 9563 
  10.   
  11. root@kali:~# 

我們就得到了正確的key值 9563

責(zé)任編輯:趙寧寧 來(lái)源: FreeBuf
相關(guān)推薦

2017-01-23 08:40:33

動(dòng)態(tài)符號(hào)代碼覆蓋測(cè)試

2021-04-21 10:01:18

漏洞KLEE網(wǎng)絡(luò)攻擊

2025-05-14 02:22:00

符號(hào)工具Angr

2021-05-26 08:51:50

漏洞漏洞掃描符號(hào)執(zhí)行

2022-04-19 09:24:18

QtC++框架

2022-07-26 13:00:01

安全符號(hào)源代碼

2022-09-27 14:46:03

網(wǎng)絡(luò)安全計(jì)算機(jī)惡意軟件

2009-02-04 10:30:47

2020-12-25 15:24:24

人工智能

2023-09-11 08:40:34

AOTVMP代碼

2020-09-21 09:58:01

Frida

2016-09-29 14:37:39

ImageMagick漏洞分析

2009-07-04 21:19:04

2021-01-20 08:30:00

數(shù)據(jù)分析機(jī)器學(xué)習(xí)IT

2020-10-21 09:49:31

Ghidra逆向分析

2020-10-19 11:35:47

Ghidra逆向分析G

2017-08-22 13:45:27

2020-12-17 09:45:54

數(shù)據(jù)分析互聯(lián)網(wǎng)大數(shù)據(jù)

2024-07-26 21:36:43

2022-10-20 10:37:44

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

波多野结衣在线观看| av免费在线不卡| 欧美人体视频| 欧美羞羞免费网站| 最新av在线免费观看| 欧美特黄一级视频| 日韩av不卡在线观看| 亚洲最新av在线| 国产精品99精品无码视亚| 成人片免费看| 一区二区三区在线观看网站| 免费国产在线精品一区二区三区| 亚洲综合精品国产一区二区三区| 伊人久久成人| 色小说视频一区| 亚洲国产精品成人综合久久久| 日日夜夜亚洲| 欧美午夜片在线免费观看| 在线播放 亚洲| 久草在现在线| 国产不卡视频一区| 国产精品欧美日韩一区二区| 久久久久成人网站| 日韩精品一区二区三区免费观看| 欧美精品一区二区久久婷婷 | 亚洲一本二本| 亚洲女人天堂av| 国产精品嫩草69影院| www.26天天久久天堂| 欧美日韩裸体免费视频| 97在线免费视频观看| 97电影在线| 91视频观看免费| 99视频在线| 国产老女人乱淫免费| 久久久久久久波多野高潮日日| 欧美激情视频网址| 国产成人无码aa精品一区| 国产亚洲一区二区三区啪| 日韩av影视在线| 中文字幕55页| 国产精品成人3p一区二区三区| 欧美日韩一级大片网址| 国产免费一区二区三区视频| 国产丝袜精品丝袜| 亚洲伊人色欲综合网| ijzzijzzij亚洲大全| 天天影视久久综合| 中文字幕欧美激情| 日韩精品久久一区| 国产在线一二三区| 久久精品免视看| 奇米视频888战线精品播放| 日韩资源在线| 久久久五月婷婷| 欧美日韩在线不卡一区| 男人天堂网在线| 久久久99精品久久| 婷婷久久五月天| freemovies性欧美| 国产精品久久久久久久久免费相片 | 免费cad大片在线观看| 成人ww免费完整版在线观看| 综合久久久久久| 97超碰人人爱| 蜜桃成人365av| 亚洲成av人片| 黄在线观看网站| 日韩免费va| 欧美人妇做爰xxxⅹ性高电影| 中文字幕 91| 国产午夜亚洲精品一级在线| 日韩一级免费观看| 精品影片一区二区入口| 婷婷综合电影| 亚洲最新av在线| 婷婷伊人五月天| 伊人蜜桃色噜噜激情综合| 7777免费精品视频| 中文字幕乱伦视频| 国产一区二区三区久久悠悠色av| 99www免费人成精品| 色呦呦视频在线| 久久久久久电影| 一区二区三区在线视频111| 菠萝蜜视频国产在线播放| 无码av中文一区二区三区桃花岛| av免费播放网址| 欧美天堂一区二区| 欧美不卡在线视频| 自拍偷拍视频亚洲| 欧美黄色aaaa| 国产suv精品一区二区三区88区| 一级黄色片在线观看| 国产成+人+日韩+欧美+亚洲| 欧洲成人一区二区| av在线免费网站| 日韩欧美国产视频| 亚洲一二三av| 精品中文一区| 欧美成人午夜激情视频| 国产伦精品一区二区三区视频网站| 蜜桃视频一区二区| 国产经品一区二区| 永久av在线| 午夜精品一区二区三区三上悠亚| 美女网站色免费| caoporn成人免费视频在线| 亚洲性生活视频| 国产一级在线视频| 老司机精品视频一区二区三区| 国产精品区一区| 欧洲日本在线| 一本到三区不卡视频| 欧美xxxx日本和非洲| 欧美日韩一区二区三区视频播放| 久久久久久久97| 亚洲一二区视频| 久久精品视频一区二区| 国产精品www在线观看| 日韩成人一区| 亚洲欧洲在线看| 日本少妇性高潮| 黄一区二区三区| 视频一区在线免费观看| 台湾佬中文娱乐网欧美电影| 日韩午夜在线观看视频| 欧美另类69xxxx| 久久久青草婷婷精品综合日韩| 成人午夜电影在线播放| mm1313亚洲国产精品美女| 在线观看日韩av先锋影音电影院| 日韩成人av一区二区| 欧美久久九九| 成人写真视频福利网| 春暖花开成人亚洲区| 欧美日韩日本国产| 97精品人人妻人人| 久久久久国产精品| 国产在线日韩在线| xxxxx日韩| 色久综合一二码| 在线 丝袜 欧美 日韩 制服| 亚洲免费成人| 精品国产一区二区三区麻豆小说| 欧美高清另类hdvideosexjaⅴ| 日韩视频中午一区| 国产av无码专区亚洲av毛网站| 久久国产生活片100| 亚洲草草视频| 欧美电影在线观看网站| 中日韩美女免费视频网址在线观看 | 亚洲三级黄色片| 偷拍一区二区三区| 欧美熟妇精品黑人巨大一二三区| 999亚洲国产精| 久久久久成人精品免费播放动漫| 久久青草伊人| 亚洲欧洲在线视频| 中文字幕777| 国产精品看片你懂得| 爱豆国产剧免费观看大全剧苏畅| 希岛爱理av一区二区三区| 成人h猎奇视频网站| 日本在线免费| 日韩欧美在线影院| 豆国产97在线 | 亚洲| caoporn国产一区二区| 免费看国产一级片| 少妇精品久久久一区二区三区| 国产999精品| 午夜在线播放| 欧美一卡在线观看| 日韩成人免费观看| 国产欧美一区二区精品久导航| 91极品视频在线观看| 51精产品一区一区三区| 国产伦精品一区二区三区免| 少妇视频一区| 色香阁99久久精品久久久| 国内精品久久久久久久久久久| 亚洲第一av色| 免费网站在线高清观看| 国内一区二区视频| 国产黄色片免费在线观看| 思热99re视热频这里只精品| 国产精品人成电影| www欧美xxxx| 伊人伊成久久人综合网站| 国产毛片在线视频| 日韩人在线观看| 久久av红桃一区二区禁漫| 成人在线视频首页| 国产自偷自偷免费一区| 欧美涩涩视频| 日韩精品第一页| 91精品啪在线观看国产爱臀| 日韩美女中文字幕| 在线欧美三级| 亚洲欧洲一区二区三区在线观看| 精品人妻一区二区三区三区四区| 欧美性少妇18aaaa视频| www.xxxx日本| 久久久综合九色合综国产精品| 午夜大片在线观看| 久久久夜精品| www.射射射| 亚洲精品二区三区| 日韩wuma| 国产一级成人av| 国产有码一区二区| gay欧美网站| 欧美极品少妇xxxxⅹ喷水| av影片在线看| 日韩激情av在线播放| 国产成人精品无码高潮| 欧美最猛性xxxxx直播| 91看片在线播放| 亚洲欧美日韩综合aⅴ视频| 久久中文字幕精品| 91碰在线视频| 在线精品视频播放| 国产制服丝袜一区| 国产原创精品在线| 蜜桃av一区| 国产女大学生av| 黄色在线成人| 日韩不卡视频一区二区| 欧美第十八页| 午夜老司机精品| 最新亚洲精品| 麻豆一区区三区四区产品精品蜜桃| aaa国产精品| 亚洲iv一区二区三区| 国产毛片精品久久| 国产盗摄xxxx视频xxx69| 美女露胸视频在线观看| 国内精品久久久久久久| 午夜av在线免费观看| 久久国产精品免费视频| 免费a级毛片在线播放| 色婷婷久久av| 免费网站成人| 久久久国产一区二区| 91ph在线| 精品国产自在精品国产浪潮 | 中文字幕av在线一区二区三区| 国产免费看av| 国产欧美一区二区精品久导航| 免费看裸体网站| 国产女人18毛片水真多成人如厕| 亚洲精品色午夜无码专区日韩| 久久精品人人爽人人爽| 免费成人深夜天涯网站| 中文子幕无线码一区tr| 手机av在线不卡| 中文字幕亚洲区| 午夜剧场免费在线观看| 亚洲日本在线a| 久草视频手机在线观看| 亚洲一区在线观看视频| 日韩欧美性视频| 欧美性生交大片免网| 久久影视中文字幕| 欧美日韩精品专区| 国产精品人人爽| 欧美成人精精品一区二区频| 欧美一级在线免费观看| 日韩风俗一区 二区| av中文在线| 久久久久www| 免费污视频在线观看| 91av成人在线| 久久人体av| 成人区精品一区二区| 九九亚洲精品| 亚洲资源在线网| 欧美午夜在线| 97成人在线观看视频| 久久精品国内一区二区三区| 人妻精品久久久久中文字幕69| 成人免费黄色大片| 国产精品国产三级国产专业不 | 亚洲日本精品国产第一区| 最新精品国产| 欧美亚洲另类色图| 精品一区二区三区视频在线观看| 欧美性生交xxxxx| 久久久美女毛片| 欧美日韩午夜视频| 欧美日韩一区二区免费在线观看| 中文字幕第315页| 精品国产乱码久久久久久浪潮 | 久久亚洲免费视频| 性色国产成人久久久精品| 亚洲国产另类av| 中文字幕二区三区| 精品999久久久| 91高清在线| 91高潮精品免费porn| 亚洲一区有码| 欧美日韩一区二区视频在线 | 99爱视频在线| 国精产品一区一区三区mba桃花| 男男做爰猛烈叫床爽爽小说 | 久久这里只有精品国产| 欧美午夜精品久久久久久超碰| 国产香蕉在线观看| 自拍偷拍亚洲欧美| 天堂av中文在线观看| 91精品在线看| 欧美丝袜一区| 欧美激情 国产精品| 国产综合久久久久久久久久久久| 欧美图片一区二区| 亚洲一二三四久久| 国产又黄又粗又猛又爽| 亚洲色图第一页| 欧美gv在线观看| 亚洲最大成人在线| 四季av一区二区三区免费观看| 成年人视频观看| 成人精品鲁一区一区二区| www.毛片com| 欧美日韩高清在线| 国产黄在线看| 57pao国产成人免费| 国产福利资源一区| av久久久久久| 国产精品影音先锋| 欧美一级特黄高清视频| 在线免费不卡视频| 国外av在线| 欧美在线观看日本一区| 老司机成人在线| 国产精品成人久久电影| 国产69精品久久久久777| 欧美高清视频一区二区三区| 欧美剧情片在线观看| aaa在线观看| 国产精品视频久久久久| 国产91精品对白在线播放| 精品久久久久久久免费人妻| 91麻豆精品在线观看| 五月婷婷中文字幕| 日韩精品极品毛片系列视频| jizz一区二区三区| 国产精品美女黄网| 亚洲精品社区| 日本免费福利视频| 欧美性色视频在线| av资源种子在线观看| 国产噜噜噜噜久久久久久久久| 色琪琪久久se色| 国产精品久久久久久9999| 亚洲欧美电影一区二区| 精品久久久无码中文字幕| 久久久久九九九九| 国产成人av毛片| aaa毛片在线观看| 国产欧美日韩麻豆91| 国产男人搡女人免费视频| 中文字幕日韩专区| 成人黄色理论片| 欧妇女乱妇女乱视频| av一区二区三区在线| 国产99免费视频| 中文字幕在线成人| 日本精品视频| 免费人成自慰网站| 久久综合给合久久狠狠狠97色69| 五月婷婷激情五月| 久久五月天色综合| 懂色av一区二区| 日韩精品一区二区三区不卡| 国产亚洲欧美激情| 国产毛片毛片毛片毛片毛片| 久久男人的天堂| 国产剧情一区| 亚洲自拍第三页| 精品国产乱码久久久久酒店| 国产视频网站在线| 亚洲伊人第一页| 日韩亚洲在线| 五月综合色婷婷| 亚洲国产欧美日韩精品| 色猫猫成人app| 欧美性猛交内射兽交老熟妇| 久久女同精品一区二区| 97在线播放免费观看| 97av在线视频免费播放| 欧美成人激情| 国产精品一级黄片| 911国产精品| 在线观看的黄色| 特级西西444| 国产欧美精品国产国产专区 | 18精品爽视频在线观看| 国产亚洲美女精品久久久| 亚洲一区电影|