精品欧美一区二区三区在线观看 _久久久久国色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在线免费| www.8ⅹ8ⅹ羞羞漫画在线看| 久久伊99综合婷婷久久伊| 国产精品视频男人的天堂| 久久久久久久久毛片| 一区二区三区视频免费观看| 538在线一区二区精品国产| 波多野结衣之无限发射| 免费看美女视频在线网站| 成人精品鲁一区一区二区| 国产精品视频公开费视频| 粉嫩aⅴ一区二区三区| 色狮一区二区三区四区视频| 日韩av综合网| 992tv人人草| 国精产品一区二区三区有限公司 | 三级黄色片在线观看| 美腿丝袜亚洲图片| 欧美一区二区三区在线观看| 别急慢慢来1978如如2| 欧美一区二区三区在线观看免费| 99久久精品国产麻豆演员表| 成人免费在线视频网站| 麻豆成人免费视频| 极品中文字幕一区| 久久精品视频在线观看| 欧美 日韩 成人| 欧美男男freegayvideosroom| 欧美一区二区三区四区在线观看| 99视频免费播放| 国产美女高潮在线观看| 亚洲伊人伊色伊影伊综合网 | 精品福利av| 欧美精品免费在线| 三级av在线免费观看| 成人同人动漫免费观看| 亚洲偷欧美偷国内偷| 国产精品久久久久久亚洲av| 欧美成年网站| 欧美一区二区三区免费大片| 国内国产精品天干天干| 青青伊人久久| 欧美精品日韩一区| 国产探花在线看| 六九午夜精品视频| 欧美男生操女生| 五月天开心婷婷| 亚洲成人高清| 日韩一卡二卡三卡国产欧美| 亚洲自拍第三页| 看亚洲a级一级毛片| 日韩午夜av电影| 日本少妇xxxx软件| а√中文在线天堂精品| 精品福利在线导航| 日韩Av无码精品| 羞羞答答一区二区| 亚洲欧美中文字幕| 国产探花视频在线| 99久久影视| 九九热99久久久国产盗摄| 久久久精品99| 亚洲每日在线| 国产精品激情av电影在线观看| 国产精品无码粉嫩小泬| 美女精品自拍一二三四| 成人亚洲欧美一区二区三区| 亚洲黄色在线观看视频| 成人av免费在线| 欧美日韩最好看的视频| 欧美三级黄网| 亚洲最色的网站| 大肉大捧一进一出好爽动态图| 韩国女主播一区二区| 91精品国产综合久久小美女| 少妇献身老头系列| 亚洲另类春色校园小说| 日韩性xxxx爱| 日本一区二区网站| 日韩电影免费在线观看网站| 91久久精品国产91久久性色| 亚洲va欧美va| 国产亚洲综合性久久久影院| 中文字幕乱码一区二区三区| 四虎影院观看视频在线观看| 福利精品视频在线| 男生操女生视频在线观看 | 欧美二区在线| 黄网址在线观看| 午夜精品久久久久久久久久久| 欧洲熟妇精品视频| gogo久久日韩裸体艺术| 一区国产精品视频| 久久精品国产亚洲av无码娇色 | 亚洲午夜电影网| 黄色aaa级片| 成人资源在线| 最近2019年日本中文免费字幕| 欧美黑人精品一区二区不卡| 亚洲一区亚洲| 99精品国产一区二区| 国产51人人成人人人人爽色哟哟| 一区二区三区色| 亚洲欧美自拍另类日韩| 日韩av三区| 色综合色综合网色综合| 久久久久久久久久一级| 粉嫩绯色av一区二区在线观看| 色一情一乱一伦一区二区三区 | 永久91嫩草亚洲精品人人| 欧美孕妇性xx| 好吊色一区二区三区| 国产精品久久久久久亚洲毛片 | 美女18一级毛片一品久道久久综合| 欧美一区二区三区公司| 制服丨自拍丨欧美丨动漫丨| 亚欧成人精品| 韩日午夜在线资源一区二区| 午夜av在线播放| 欧美日韩精品电影| 无码国产69精品久久久久同性| 极品中文字幕一区| 超碰在线97av| 色操视频在线| 日韩欧美一区二区三区在线| 激情无码人妻又粗又大| 青青草成人在线观看| 欧美一区二区视频在线| 国产伦久视频在线观看| 亚洲国产精品yw在线观看| 欧美极品视频在线观看| 韩国三级在线一区| 黄色www在线观看| 婷婷久久综合九色综合99蜜桃| 亚洲天堂av网| 欧美在线视频精品| 欧美韩日一区二区三区| 日本999视频| 欧美精品一区二区久久| 国产成人在线视频| 国产精品四虎| 欧美日韩另类国产亚洲欧美一级| 午夜时刻免费入口| 免费久久精品视频| 亚洲在线观看一区| 日韩欧国产精品一区综合无码| 色综合伊人色综合网站| 在线观看中文字幕码| 国产精品免费av| 亚洲一区二区中文字幕在线观看| 综合天天久久| 国产精品大全| 爱搞国产精品| 亚洲人成伊人成综合网久久久| 日韩一级片中文字幕| 国产三级三级三级精品8ⅰ区| 妞干网在线免费视频| 国产不卡一区| 成人黄色免费片| 国产桃色电影在线播放| 亚洲国产欧美一区二区三区同亚洲| 尤物视频在线观看国产| 久久久久久久免费视频了| 久久精品网站视频| 99久久www免费| 国产91亚洲精品一区二区三区| 免费h在线看| 在线观看国产精品91| 国产视频在线观看视频| 性做久久久久久| 亚洲国产天堂av| 激情六月婷婷久久| 免费看国产一级片| 青草国产精品| 成人18视频| 人人鲁人人莫人人爱精品| 中文字幕在线看视频国产欧美在线看完整 | 国产精品久久国产三级国电话系列| h片在线观看视频免费| 国产亚洲精品美女久久久| 国产又粗又猛又爽| 五月天一区二区| 四虎永久免费地址| 95精品视频在线| 手机在线国产视频| 亚洲巨乳在线| 永久免费在线看片视频| 欧美绝顶高潮抽搐喷水合集| 国产一区二区在线免费视频| 岛国毛片av在线| 色天天综合狠狠色| 日本高清视频免费看| 欧美综合欧美视频| 久久精品久久国产| 国产精品国产三级国产aⅴ入口| 精品人妻在线视频| 精品一区二区免费在线观看| 欧美日韩性生活片| 一区二区三区四区日韩| 日韩一区二区三区高清| 久久aimee| 亚洲xxxx视频| 黄色成人在线观看网站| 91精品国产777在线观看| 国产福利视频在线| 国产一区二区三区直播精品电影 | 久久丝袜美腿综合| 国产成人精品一区二区三区在线观看| 日韩国产欧美在线观看| 免费无码毛片一区二三区| 欧美高清在线| 日韩一区免费观看| 米奇777超碰欧美日韩亚洲| 豆国产97在线| 国产午夜亚洲精品一级在线| 国产精品亚洲欧美导航| 综合久久2023| 午夜精品久久久久久久久久久久久| 免费网站看v片在线a| 亚洲一区av在线播放| 视频一区二区三区国产| 精品国产sm最大网站免费看| 国产成人久久精品77777综合 | 国产成人一区二区| 在线天堂资源www在线污| 亚洲18私人小影院| 不卡av免费观看| 欧美高清视频在线| 天天干在线视频论坛| 久久高清视频免费| 粗大黑人巨茎大战欧美成人| www.xxxx精品| 免费av网站在线看| 久久久av网站| 麻豆tv入口在线看| 久久精品中文字幕电影| 美女免费久久| www.亚洲一区| 91黄色在线| 欧美日韩成人在线观看| 中文国产字幕在线观看| 久久91精品国产91久久跳| av网站免费在线观看| 久操成人在线视频| 欧美性受ⅹ╳╳╳黑人a性爽| 欧美黑人极品猛少妇色xxxxx| 日本在线观看高清完整版| 欧美激情精品久久久久久| 高清电影在线免费观看| 97欧美精品一区二区三区| 日韩伦理在线| 国产成人免费av| 激情中国色综合| 97netav| 成人在线视频你懂的| 久久精品日产第一区二区三区精品版| 免费福利视频一区| 免费在线观看一区二区| 欧美综合视频| 在线观看av的网址| 一区二区日本视频| 午夜激情在线观看视频| 国产资源在线一区| 中文字幕一区二区三区乱码不卡| 久久午夜国产精品| 欧美日韩色视频| 亚洲成人av一区| 精品一区二三区| 日韩一级黄色片| 艳母动漫在线看| 少妇激情综合网| 丰满诱人av在线播放| 日韩av快播网址| www.久久99| 精品乱码一区二区三区| 成人在线免费观看网站| 日本大胆人体视频| 久久国产精品久久久久久电车| 亚洲欧洲日本精品| 成人福利视频在线看| x88av在线| 亚洲.国产.中文慕字在线| 国产乱码77777777| 日韩精品在线一区二区| 黄网站在线观看| 欧美疯狂性受xxxxx另类| 亚洲精品动漫| 91手机在线视频| 久操国产精品| 青草视频在线观看视频| 免费在线观看视频一区| 国产xxxx视频| 亚洲欧美韩国综合色| 天天干天天干天天操| 欧美一区二区精美| 国产youjizz在线| 91干在线观看| 欧美激情精品| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 99国产精品私拍| 欧美熟妇另类久久久久久多毛| 国产亚洲一二三区| 国产午夜精品一区二区理论影院| 欧美日韩一级视频| 三级理论午夜在线观看| 久久99视频免费| 亚洲aⅴ网站| 日韩中文一区二区三区| 性色一区二区三区| 久久久久无码国产精品一区李宗瑞| 中文字幕乱码日本亚洲一区二区| 日本中文字幕在线| 亚洲成人网在线观看| 特级毛片在线| 91在线免费看片| 久久久久久久久丰满| youjizzxxxx18| 国产日韩欧美麻豆| 无码人妻精品一区二区蜜桃色欲| 亚洲大胆人体视频| 欧美一卡二卡| 国产精品一区二区三区四区五区 | 国产真人无码作爱视频免费| av成人免费在线| 日韩经典在线观看| 亚洲电影中文字幕| 美女精品视频| 国产91色在线|亚洲| 狠狠色狠狠色综合日日tαg| 四虎国产精品永久免费观看视频| 中文字幕人成不卡一区| 中文字幕人妻一区二区在线视频 | 国产成人精品一区二区三区视频| 欧美日韩精品免费观看视一区二区| a91a精品视频在线观看| 日本五十肥熟交尾| 精品人伦一区二区三区蜜桃免费| 欧美熟妇另类久久久久久不卡 | 成人性片免费| 亚洲国产精品毛片| 美腿丝袜亚洲色图| 情侣偷拍对白清晰饥渴难耐| 欧美高清激情brazzers| 黄色成人影院| 痴汉一区二区三区| 99国产精品久久久久久久成人热| 免费无码一区二区三区| 欧美视频裸体精品| 国产高清一区在线观看| 国产精品视频公开费视频| 久久久久国产精品| 国产在线观看免费播放| 欧美日韩国产影院| 成人高清在线| 91视频88av| 亚洲国产清纯| 九九九视频在线观看| 欧美高清激情brazzers| 国产盗摄精品一区二区酒店| 九九九九九精品| 免费成人你懂的| 一起操在线播放| 亚洲国产精品国自产拍av秋霞| 理论片午夜视频在线观看| 视频一区二区在线观看| 国产尤物一区二区| 日韩污视频在线观看| 伊人伊成久久人综合网小说| 99er精品视频| 国产老熟妇精品观看| 欧美韩日一区二区三区| 亚洲成人中文字幕在线| 青青久久aⅴ北条麻妃| 亚洲澳门在线| 国产白嫩美女无套久久| 欧美日韩亚洲丝袜制服| 国产丝袜精品丝袜| 污视频在线免费观看一区二区三区| 国产一区在线视频| 久久精品视频1| 久热精品视频在线观看| 天堂俺去俺来也www久久婷婷| 美女一区二区三区视频| 一区二区国产视频| 9191在线| 久久亚洲国产精品日日av夜夜| 久久精品国产久精国产| 国偷自拍第113页| 欧美成aaa人片免费看| 久久成人av| 精品国产免费久久久久久婷婷| 色av一区二区| hd国产人妖ts另类视频| 无码免费一区二区三区免费播放 | 天堂一区二区三区|