zoukankan      html  css  js  c++  java
  • 从零开始配置Ubuntu20.04 amd64 virtualenvwarapper angr环境 并做ais3_crackme的CFG图

    一.首先安装虚拟机ubuntu20.04

    在VirtualBOX安装ubuntu20.04(amd64,这里最好用amd64版的linux),并安装增强功能。

    并更换下载源为阿里云(在settings->about->software update) <--------------解决Unable to locate package 的问题。

    磁盘分配要大些,比如64/128GB

    参考 https://blog.csdn.net/qq_36340642/article/details/109253664

    二.配置virtualenvwarapper

    2.1 安装pip、git

    可以通过apt安装。

    2.2 安装virtualenv

    2.2.1

    首先pip install virtualenv,然后尝试新建虚拟环境  virtualenv venv1.

    若报错

    ModuleNotFoundError: No module named 'virtualenv.seed.embed.via_app_data'

    则python3 -m pip uninstall virtualenv,然后sudo apt-get install python3-virtualenv。此处参考https://www.jianshu.com/p/4f215dfc11fb

    之后可以尝试下生成一个虚拟环境。最好为所有虚拟环境先建一个文件夹,便于管理。

    mkdir venv
    cd venv
    virtualenv venv1
    source venv1/bin/activate 

     2.2.2

    并修改python为python3

    通过更改/usr/bin/python的指向就能实现更改python默认版本,由于软链接文件不支持修改,所以先删除,再重新指向。

    删除python软链接文件: rm -rf python

    重新创建新指向 python:ln -s /usr/bin/python3 python、

    root@jack-virtual-machine:/usr/bin#
    root@jack-virtual-machine:/usr/bin# rm -rf python
    root@jack-virtual-machine:/usr/bin# python --version
    bash: /usr/bin/python: 没有那个文件或目录
    root@jack-virtual-machine:/usr/bin# ln -s /usr/bin/python3 python
    root@jack-virtual-machine:/usr/bin#

    2.3 安装virtualenvwrapper并修改bashsrc

    pip install virtualenvwrapper

    之后在~/.bashrc写入以下内容。(~/.bashrc在home下,可以按ctrl+H显示)

    export WORKON_HOME=$HOME/.virtualenvs
    source ~/.local/bin/virtualenvwrapper.sh

    这里的文件位置可能需要根据具体位置更改。

    然后

    source ~/.bashrc    #读入配置文件,立即生效

    然后在terminal 运行virtualenvwrapper。这里最好还是先新建一个文件夹,便于管理。

    mkdir venvdir
    cd venvdir
    
    创建虚拟环境
    mkvirtualenv venv   
    查看当前的虚拟环境目录
    workon
    py2
    py3
    切换到虚拟环境
    workon py3
    退出虚拟环境
    deactivate
    删除虚拟环境
    rmvirtualenv venv

    参考 https://www.cnblogs.com/cwp-bg/p/python.html

    三.在虚拟环境安装angr

    使用virtualenvwrapper创建环境angrvenv,然后安装angr

    workon angr。
    
    pip install angr
    
    //安装angr-utils
    git clone https://github.com/axt/bingraphvis
    pip install -e ./bingraphvis
    git clone https://github.com/axt/angr-utils
    pip install -e ./angr-utils

    python import angr成功,说明安装成功。

    可能有error,比如某个库networkx需要xxx的版本在4.3-5.0之间,那么pip install xxx==4.4.0 即可

    参考 https://blog.csdn.net/z2664836046/article/details/97683626 https://blog.csdn.net/weixin_45055269/article/details/105176185

    四.生成样例二进制程序ais3.crackme的CFG图(控制流图)

    文件在 https://github.com/axt/angr-utils。

    sudo apt-get install graphviz

    不然会报错 FileNotFoundError: [Errno 2] "dot" not found in path.

    然后python代码

    import angr
    from angrutils import *
    proj = angr.Project("<...>/ais3_crackme", load_options={'auto_load_libs':False})
    main = proj.loader.main_object.get_symbol("main")
    start_state = proj.factory.blank_state(addr=main.rebased_addr)
    cfg = proj.analyses.CFGEmulated(fail_fast=True, starts=[main.rebased_addr], initial_state=start_state)
    plot_cfg(cfg, "ais3_cfg", asminst=True, remove_imports=True, remove_path_terminator=True)  

    运行即可。

    还可以参考官方文档,做些程序入口识别之类的事。https://docs.angr.io/

    五.angr的学习资料

    https://github.com/axt/angr-utils

    https://github.com/angr/angr

    http://angr.io/api-doc/angr.html?highlight=cfg#module-angr.analysis

    https://docs.angr.io/built-in-analyses/cfg

  • 相关阅读:
    class 关键字
    自适应Web主页
    前端跨域解决
    HTML5新增特性
    HTTP知识点【总结篇】
    针对Web应用的【攻击模式篇】
    HTTPS和HTTP
    HTTP状态码之【整理篇】
    SpringCloud配制eureka
    maven连接国内仓库
  • 原文地址:https://www.cnblogs.com/lqerio/p/15021158.html
Copyright © 2011-2022 走看看