Angr配置方法

极客

Angr配置方法:从零开始搭建你的符号执行环境,其实没那么难!

大家好呀!今天咱们来聊聊 Angr配置方法 这个话题,说实话,我第一次接触 Angr 的时候,整个人都是懵的——这玩意儿安装起来怎么这么多坑啊?依赖一堆、Python 版本还挑三拣四的,简直让人头大,不过别慌,折腾了几次之后,我总算摸清了门道,今天就把这套 Angr配置方法 完完整整地分享给你们,希望能帮大家少走点弯路。

Angr配置方法

为什么 Angr 的配置这么让人头疼?

先吐个槽哈,Angr 作为一个基于 Python 的二进制分析框架,功能确实强大得离谱——符号执行、控制流分析、漏洞挖掘,样样都行,但它的依赖关系也是真的复杂,尤其是涉及到 capstone、unicorn、claripy 这些底层库的时候,版本稍有不兼容,直接给你报一堆红字错误,那叫一个崩溃。

所以啊,掌握正确的 Angr配置方法,真的能帮你省下大把时间,下面我就按步骤来,手把手带你搞定。

Angr配置方法第一步:环境准备

我个人强烈建议使用 虚拟环境,别问我为什么,问就是被坑过,你直接在系统 Python 里装 Angr,很容易和你原来的包冲突,到时候哭都来不及。

python3 -m venv angr-env
source angr-env/bin/activate  # Linux/Mac
# Windows 下用 angr-env\Scripts\activate

创建好虚拟环境之后,记得先升级一下 pip:

pip install --upgrade pip

这一步千万别偷懒哦,老版本的 pip 在安装 Angr 的时候可能会出各种幺蛾子。

核心步骤:安装 Angr

接下来就是重头戏了,Angr 官方推荐的 Angr配置方法 特别简单,一条命令搞定:

pip install angr

是的,就这么一句,Angr 团队已经把大部分依赖都打包好了,正常情况下会自动帮你装好 capstone、unicorn、claripy 等等,如果你网络不太好,或者遇到某个包编译失败,那就得手动处理了。

我上次在 Ubuntu 上装的时候,就卡在了 unicorn 的编译上,后来发现是缺少 build-essential 和一些开发库,所以如果你也遇到类似问题,可以先装一下系统依赖:

sudo apt-get install build-essential python3-dev libffi-dev

Windows 用户的话,建议直接装个预编译好的 wheel,或者用 conda 来配置,会省心很多。

验证你的 Angr配置方法是否成功

装完之后,别急着写脚本,先验证一下,打开 Python 交互界面:

import angr
print(angr.__version__)

如果能正常打印出版本号,恭喜你,Angr配置方法 基本成功了!如果报错说找不到某个模块,那大概率是依赖没装全,可以试试:

pip install angr --upgrade --force-reinstall

暴力重装有时候反而最管用,哈哈。

Angr配置方法中的常见坑点

说几个我踩过的雷吧:

  1. Python 版本问题:Angr 现在主要支持 Python 3.8 以上,别再用 Python 2 了,真的。
  2. 虚拟环境没激活:装到了系统环境里,结果项目里 import 不到,这种低级错误我也犯过……
  3. 网络代理问题:国内下载某些包会超时,可以换个源,比如清华 TUNA。
  4. 依赖冲突:如果你之前装过 pwntools 之类的工具,可能会有版本冲突,虚拟环境再次救场。

进阶:自定义 Angr配置方法

如果你想让 Angr 跑得更顺手,还可以做一些自定义配置,比如设置符号执行的最大步数、调整内存限制等等,这些在写脚本的时候通过 angr.Project 的参数就能搞定,后面我会专门写一篇文章来聊。

呢,Angr配置方法 本身并不难,难的是遇到问题时不慌,按照上面的步骤来,基本上都能顺利装好,如果你在配置过程中遇到什么奇葩问题,欢迎在评论区留言,咱们一起交流!

希望这篇 Angr配置方法 的分享能帮到你,记得点赞收藏哦,下次找起来方便~

文章版权声明:除非注明,否则均为极客网安-咸鱼原创文章,转载或复制请以超链接形式并注明出处。

目录[+]