最近刚开始学习二进制代码分析,需要一些软件来实验。为了避免发行版软件中的各种混淆,加壳的问题,先拿开源软件试试。
1. 下载源码
这里一步可谓是耗费精力。尝试过从github上下载源码,各软件官网上下载源码,各种软件商店下载,但是能够编译通的软件寥寥无几,因为总有各种电脑环境问题,版本问题,编译器问题,于是在这里卡了一周。
起初编译有bug时我还想解决,后面发现一层又一层的环境不对,一层又一层的包依赖,各种错误递归式的爆发。后来出现有bug的编译就直接放弃这个软件了。最终的解决办法是,看博客上的人是否有编译通过的案例,这样下载下来的源码问题少很多。
源码采用静态编译安装,这是为了更好地用IDA分析。对于最终静态编译出来的软件,用IDA反编译后显示的函数名是源代码中的命名,不再是地址。
2.静态编译
用命令行编译的时候,静态编译选项主要查看源码中的README, INSTALL这类文件,还有查看configure的帮助手册(./configure --help)。
下面是静态编译一些类库和软件时用的命令:
libevent, memcached, zlib, libcurl, git, aria2(aria2没有编译通,猜测编译器可能哪里不对)
* libevent
sudo ./configure -prefix='/home/a057/Desktop/libevent-{$version$}-c' --disable-shared
* memcached-1.4.29
sudo CFLAGS=-static ./configure -