GreenHandX1H angrdoc 阅读笔记①

原创 2017年01月04日 00:39:06

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. 这里是 脚注内容.
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

angr:基于python的二进制分析框架 安装与使用

1.安装教程请参考http://blog.csdn.net/xiaosatianyu/article/details/51586498简单列举下命令:sudo pip install virtuale...

《STL源码剖析》---stl_deque.h阅读笔记(1)

双端队列deque是容器的一种,借助《STL源代码剖析》讲解双端队列的内存结构以及基本操作。...

H3CNE学习笔记_v6[1].0

  • 2012年06月21日 12:57
  • 59KB
  • 下载

JM阅读笔记(学习H264)

  • 2010年09月17日 09:47
  • 132KB
  • 下载

live555学习笔记9-h264 RTP传输详解(1)

九 h264 RTP传输详解(1) 前几章对Server端的介绍中有个比较重要的问题没有仔细探究:如何打开文件并获得其SDP信息。我们就从这里入手吧。 当RTSPServer收到对...
  • nkmnkm
  • nkmnkm
  • 2011年11月03日 11:21
  • 18445

enote笔记语言(4)(ver0.2)——“5w1h2k”分析法

章节:“5w1h2k”分析法 what:我想知道某个“关键词(keyword)”(即,词汇、词语,或称单词,可以是概念|专业术语|.......)的定义。 why:我想知道事物发生的原因。...

H264学习笔记(1):视频压缩编码的基本原理

陆陆续续学习H264有一段时间了,曾经以为自己可以在这方面大有作为,但是越是学习越发现,根本不存在能够大幅度提升H264性能的方案,对于我这种水平的人来讲。初次学习,概念的理解仍然很困难。在这里我只是...

enote笔记语言(4)(ver0.4)——“5w1h2k”分析法

章节:“5w1h2k”分析法 what:我想知道某个“关键词(keyword)”(即,词汇、词语,或称单词,可以是概念|专业术语|.......)的定义。 why:我想分析and搞清楚弄明...

OpenCV源码阅读(1)---matx.h---mat类与vec类

matx.h matx类是opencv中的一个基础类,其位于core模块中,所执行的操作时opencv矩阵和向量的运算。如果熟悉基于matlab的图像处理,那么很容易想到,所有对图像的操作归根结底都...
  • Dluffu
  • Dluffu
  • 2015年05月12日 15:01
  • 1447

《STL源码剖析》---stl_multimap.h阅读笔记

multimap和map的关系和multiset和set关系一样,multimap允许有重复的键值,它在使用底层数据结构红黑树用,插入操作用的是insert_equal,而不是insert_uniqu...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GreenHandX1H angrdoc 阅读笔记①
举报原因:
原因补充:

(最多只允许输入30个字)