去除控制流平坦化的工具deflat.py安装及使用
去除控制流平坦化的工具deflat.py安装及使用
仅作记录,貌似已经失效了。。。。。。太难了
安装相关配件
安装virtualenvwrapper
-
首先要安装
virtualenv
和virtualenvwrapper
:#安装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上折腾,最后一下午无果,我太难了)