demovfuscator ,反混淆movfuscator 生成的混淆二进制程序。
网上相关资料比较少,环境也不是很好搭建,所以我制作了这个docker镜像。
这两天刚开始学docker的镜像制作,所以镜像会有些臃肿,不过用还是能够用的。
写给会docker的大佬的一句话:demovfuscator
程序在/root/demovfuscator
,./demov -h
查看使用方法。然后文章后面的内容无需看下去了。
安装docker 1 2 3 4 5 6 7 8 9 10 11 rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum update -y yum -y install docker-io service docker start chkconfig docker on curl -sSL https://get.docker.com/ | sh systemctl start docker systemctl enable docker
启动 1 docker run --name demov -it iyzyi/demovfuscator /bin/bash
进入docker后
1 2 3 4 sudo su root cd /root/demovfuscator/./demov -h
向容器中导入文件 我们使用demovfuscator肯定是为了反混淆二进制文件,所以肯定要把目标文件导入到容器中。
1 docker cp /root/FILE CONTAINER_ID:/root/demovfuscator/FILE
给个例子:
1 2 3 4 [root@izwdpnodbapihwz ~]# docker container ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3b3d7e1e7f21 iyzyi/demovfuscator "/bin/bash" 46 seconds ago Up 44 seconds demov [root@izwdpnodbapihwz ~]# docker cp /root/mov 3b3d7e1e7f21:/root/demovfuscator/mov
容器ID和宿主机中文件路径请换成你的。
进入容器 1 docker exec -it 3b3d7e1e7f21 /bin/bash
容器ID请换成你的。
退出容器 ctrl+P+Q
使用 1 2 3 sudo su root cd /root/demovfuscator/ ./demov -o 输出文件 目标文件
给个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 root@3b3d7e1e7f21:~ root@3b3d7e1e7f21:~/demovfuscator LICENSE.txt asmhlp.cpp ctlelem.cpp ctlhlp.cpp demov demov.o dishlp.o elfhlp.o memhlp.hpp node.cpp stackMachine.hpp test.cpp utils.cpp Makefile asmhlp.hpp ctlelem.hpp ctlhlp.hpp demov.cpp dishlp.cpp elfhlp.cpp hashes.h memhlp.o node.hpp tainthlp.cpp test.o utils.hpp README.md asmhlp.o ctlelem.o ctlhlp.o demov.hpp dishlp.hpp elfhlp.hpp memhlp.cpp mov node.o tainthlp.hpp test.txt utils.o root@3b3d7e1e7f21:~/demovfuscator The demovfuscator supports the following parameters: ./demov [-h] [-i symbols.idc] [-o patched_bin] [-g cfg.dot] obfuscated_input -h Use for a description of the options -i Derive symbols from the input bin and store them into symbols.idc -o Generate a UNIX dot compatible file containing the control flow graph (might be easier to read than IDA's graph view) Convert the .dot file to something usable by cat cfg.dot | dot -Tpng > cfg.png root@3b3d7e1e7f21:~/demovfuscator# ./demov -o mov.b mov
Dockerfile 本脚本还没有检验正确性,放到这里只是为了提醒我过两天回到城里后要记得检验。
有需要的小伙伴请直接拉取镜像,不要通过本Dockerfile构建镜像。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 FROM ubuntu:16.04 USER root RUN apt-get update \ && apt-get -y install vim \ && apt-get -y install python-pip \ && apt-get -y install git \ && apt-get -y install clang \ && apt-get -y install cmake \ && apt-get -y install make RUN apt-get -y install libcapstone-dev RUN git clone https://github.com/Z3Prover/z3 \ && cd z3 \ && python scripts/mk_make.py \ && cd build \ && make \ && make install \ && cd .. \ && CXX=clang++ CC=clang python scripts/mk_make.py RUN cd ~ \ && git clone https://github.com/keystone-engine/keystone \ && cd keystone \ && mkdir build \ && cd build \ && ../make-share.sh \ && make install \ && echo '/usr/local/lib' >> /etc/ld.so.conf.d/usr-local.conf \ && ldconfig RUN cd ~ \ && git clone https://github.com/kirschju/demovfuscator \ && cd demovfuscator \ && apt-get -y install openssl \ && apt-get -y install libssl-dev \ && make