去除控制流平坦化的工具deflat.py安装及使用

去除控制流平坦化的工具deflat.py安装及使用

仅作记录,貌似已经失效了。。。。。。太难了

安装相关配件

安装virtualenvwrapper

  • 首先要安装virtualenvvirtualenvwrapper

    #安装virtualenv
    pip install virtualenv
    
    #安装virtualenvwrapper
    pip install virtualenvwrapper
    
  • 安装好后,配置环境变量

    export WORKON_HOME=$HOME/Python-workhome
    

    其中的$HOME/Python-workhome就是接下来准备存放虚拟环境的地址

  • 启动脚本

    source /usr/local/bin/virtualenvwrapper.sh
    
  • virtualenvwrapper相关操作命令

    # 创建环境
    mkvirtualenv NewEnvName
    
    # 显示当前已有环境
    workon
    
    # 切换环境
    workon EnvName
    
    # 退出环境
    deactivate
    
    # 删除环境
    rmvirtualenv EnvName
    

    举例来说(图中是在mac上安装的演示,但angr死活安装不上,弄了很久,最后改成了在ubuntu16.04中安装):)

  • 在这里,我们使用命令创建名为angrenv的虚拟环境来完成剩下的操作

    mkvirtualenv deflatEnv
    

在deflatEnv中安装angr

  • 在macOS上安装,会疯狂报错,主要就是什么unicorn的问题,折腾了好久,最后转战Ubuntu,一下子就安装成功了。。。。。。

  • 安装angr

    pip install angr
    

    十分流畅:)

在deflatEnv中安装BARF

  • BARF在github的仓库中,找到了安装教程,使用如下命令进行安装

    mkdir barf
    cd ./barf
    git clone https://github.com/programa-stic/barf-project
    cd ./barf-project
    sudo python setup.py install
    
  • README.md中提到了,需要安装Z3和CVC4,但没安装也顺利把BARF安装完了。。有问题再说

安装deflat

  • 使用如下命令,安装deflat

    mkdir deflat
    cd ./deflat
    git clone https://github.com/SnowGirls/deflat.git
    cd ./deflat
    

使用deflat

  • 根据deflat的github中的内容,可以使用如下命令来执行去除控制流平坦化的工作

    python deflat.py check_passwd_flat 0x400530
    

    其中,0x400530是IDA中相关函数的地址

  • 但是,我执行以后却会报错,再次查找,根据修复去除控制流平坦化工具deflat.py中的描述,进行了修改

  • 再次执行,还是报错,后来看到了issue中的内容,应该是因为版本不匹配导致的问题,最后一下午无果。。。(本来是做逆向,发现找不到main函数,随便翻翻,看到了控制流平坦化,网上都是同一种解决办法——使用deflat,先在mac上折腾,又在ubuntu上折腾,最后一下午无果,我太难了)

参考

posted @ 2019-11-10 23:31  月如霜  阅读(2478)  评论(0编辑  收藏  举报