GreenHandX1H angrdoc 閱讀筆記①

angrdoc 閱讀筆記①

記得當初剛接觸csdn blog的時候還不支持功能如此強大的Markdown,只是一些基礎的操作,現在摟了一眼發現已經加上了好多不錯的功能,比如說目錄、代碼段。下面這個系列將會記錄一下有關於angr這一平臺的閱讀筆記。將會以問題的形式記錄。

0x001 什麼是angr

angr是當下一款功能比較強大的開源的支持多平臺的(like windows,liux,etc.)基於二進制上的符號執行工具(like KLEE),同時搭配了基於二進制上的靜態分析。

0x002 angr的大體工作流程是什麼

Created with Raphaël 2.1.0開始將二進制程序讀入到分析程序當中將二進制碼轉換成可以被angr識別的中間表示中間表示再轉換成可以直接被angr處理的包含語義信息的中間表示進行一系列的分析工作(angr中包含很多很多組件用來完成不同的功能)結束

圖尚且並不完善,隨着進一步閱讀,會更加豐富

0x003 angr目前改進的方向有哪些

  • 目前angr只支持對c的二進制的分析因此我們希望讓他對更多的語言進行分析比如JAVA(引入對SOOT的支持)
  • 支持更多的架構比如PIC,AVR架構
  • 作者最希望能提供對LLVM IR的支持,angr將不再僅僅是一個二進制的分析框架,將會變成一個程序分析框架,大大的拓展了他的能力
  • 當然一些老生常談的問題,比如說路徑爆炸、多線程進程問題的處理等依然是angr需要再進一步的改進的問題

0x004 有關Top-level interfaces

在這裏我遇到以下幾個問題

  1. 一開始我打算在mac上搭載環境,失敗,具體原因查到有講mac上需要安裝作者要求的Z3的環境
  2. 於是我用VMware Fusion搭建了linux平臺,按照命令走,但是在 import angr出現了錯誤import angr出現的錯誤提示
  3. 出現錯誤之後查doc,師兄說要在虛擬環境下運行,於是通過 mkvirtualenv angr命令創建了虛擬環境,source bin/activate 開啓虛擬環境
  4. 在虛擬環境下pip install angr之後再import發生了同樣的錯誤
  5. 鑑於此再查doc,說capstone出現了問題,於是通過命令pip install -I –no-use-wheel capstone 重新安裝了capstone 至此,問題基本都已經解決。

arch :返回平臺信息 比如 arch AMD64 (LE)
filename :返回文件名包括路徑比如/bin/true
loader:CLEloader實例,返回地址信息(具體參數返回什麼參照loader.py)

0x005

歡迎使用Markdown編輯器寫博客

本Markdown編輯器使用StackEdit修改而來,用它寫博客,將會帶來全新的體驗哦:

  • Markdown和擴展Markdown簡潔的語法
  • 代碼塊高亮
  • 圖片鏈接和圖片上傳
  • LaTex數學公式
  • UML序列圖和流程圖
  • 離線寫博客
  • 導入導出Markdown文件
  • 豐富的快捷鍵

快捷鍵

  • 加粗 Ctrl + B
  • 斜體 Ctrl + I
  • 引用 Ctrl + Q
  • 插入鏈接 Ctrl + L
  • 插入代碼 Ctrl + K
  • 插入圖片 Ctrl + G
  • 提升標題 Ctrl + H
  • 有序列表 Ctrl + O
  • 無序列表 Ctrl + U
  • 橫線 Ctrl + R
  • 撤銷 Ctrl + Z
  • 重做 Ctrl + Y

Markdown及擴展

Markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文本格式編寫文檔,然後轉換成格式豐富的HTML頁面。 —— [ 維基百科 ]

使用簡單的符號標識不同的標題,將某些文字標記爲粗體或者斜體,創建一個鏈接等,詳細語法參考幫助?。

本編輯器支持 Markdown Extra ,  擴展了很多好用的功能。具體請參考Github.

表格

Markdown Extra 表格語法:

項目 價格
Computer $1600
Phone $12
Pipe $1

可以使用冒號來定義對齊方式:

項目 價格 數量
Computer 1600 元 5
Phone 12 元 12
Pipe 1 元 234

定義列表

Markdown Extra 定義列表語法:
項目1
項目2
定義 A
定義 B
項目3
定義 C

定義 D

定義D內容

代碼塊

代碼塊語法遵循標準markdown代碼,例如:

@requires_authorization
def somefunc(param1='', param2=0):
    '''A docstring'''
    if param1 > param2: # interesting
        print 'Greater'
    return (param2 - param1 + 1) or None
class SomeClass:
    pass
>>> message = '''interpreter
... prompt'''

腳註

生成一個腳註1.

目錄

[TOC]來生成目錄:

數學公式

使用MathJax渲染LaTex 數學公式,詳見math.stackexchange.com.

  • 行內公式,數學公式爲:Γ(n)=(n1)!n
  • 塊級公式:

x=b±b24ac2a

更多LaTex語法請參考 這兒.

UML 圖:

可以渲染序列圖:

Created with Raphaël 2.1.0張三張三李四李四嘿,小四兒, 寫博客了沒?李四愣了一下,說:忙得吐血,哪有時間寫。

或者流程圖:

Created with Raphaël 2.1.0開始我的操作確認?結束yesno
  • 關於 序列圖 語法,參考 這兒,
  • 關於 流程圖 語法,參考 這兒.

離線寫博客

即使用戶在沒有網絡的情況下,也可以通過本編輯器離線寫博客(直接在曾經使用過的瀏覽器中輸入write.blog.csdn.net/mdeditor即可。Markdown編輯器使用瀏覽器離線存儲將內容保存在本地。

用戶寫博客的過程中,內容實時保存在瀏覽器緩存中,在用戶關閉瀏覽器或者其它異常情況下,內容不會丟失。用戶再次打開瀏覽器時,會顯示上次用戶正在編輯的沒有發表的內容。

博客發表後,本地緩存將被刪除。 

用戶可以選擇 把正在寫的博客保存到服務器草稿箱,即使換瀏覽器或者清除緩存,內容也不會丟失。

注意:雖然瀏覽器存儲大部分時候都比較可靠,但爲了您的數據安全,在聯網後,請務必及時發表或者保存到服務器草稿箱

瀏覽器兼容

  1. 目前,本編輯器對Chrome瀏覽器支持最爲完整。建議大家使用較新版本的Chrome。
  2. IE9以下不支持
  3. IE9,10,11存在以下問題
    1. 不支持離線功能
    2. IE9不支持文件導入導出
    3. IE10不支持拖拽文件導入


  1. 這裏是 腳註內容.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章