angr
文章平均质量分 85
N1ch0l4s
这个作者很懒,什么都没留下…
展开
-
angr理论笔记(三)program state
program state在之前几章中,主要学习的是simulate state也就是模拟状态的程序运行状态。接下来将要学习的是state object也就是状态这个对象的性质(包含但不限于simulate state),并且学习如何和这个对象进行交互。基本执行首先简单介绍一下simulator的一些性质,具体性质将在下一章介绍。这里简单介绍一些性质。state.step()执行符号执行的一步,并返回一个simsuccessors和一般程序流执行不同,符号执行的一步将会返回许多结果,可以分为多种类原创 2021-09-04 13:51:43 · 458 阅读 · 0 评论 -
angr理论笔记(二)solver engine
solver engine简介angr的威力不在于模拟执行,而在于将输入抽象为符号,通过将符号(也就是静态或者全局变量的名称,局部变量在编译过程中不具有符号)以及符号的运行过程抽象为语法树,判断输出结果。就像z3的工作一样。我们在这一章中需要解决的问题是:我知道输出XXX所需要的操作序列是ABCD,那么我的输入应该是多少bit vectorbit vector可以说是模拟了c语言中对于整数的解析方式。例如将int转换为32bit的储存形式。称作bit-vector当然32位不是必须的,任意位原创 2021-09-02 14:42:48 · 493 阅读 · 0 评论 -
angr理论笔记(一)loading a binary
angr——loading a binary主要学习一些api,以及angr的使用。源代码阅读暂时不做考虑加载器、映射加载器主要起到将binary加载到固定空间的作用proj = angr.Project('examples/fauxware/fauxware')loader有一些api可供调用,可以通过此查看相应libc,加载器等>>> proj.loader.all_objects[<ELF Object fauxware, maps [0x400000:0x60原创 2021-09-01 17:56:46 · 251 阅读 · 0 评论