Linux Ubuntu下一些软件源代码的静态编译

在学习二进制代码分析时,为避免发行版软件的混淆和加壳问题,作者选择静态编译开源软件。面临源码下载、环境配置、编译错误等挑战,作者从博客找到已成功编译的源码,并分享了静态编译libevent, memcached, zlib, libcurl, git等软件的命令行步骤,以实现更好的IDA分析体验。" 124723436,9113597,时空AI:城市数字化转型的关键驱动力,"['人工智能', '大数据', '智慧城市', '智能交通', '时空建模']
摘要由CSDN通过智能技术生成

    最近刚开始学习二进制代码分析,需要一些软件来实验。为了避免发行版软件中的各种混淆,加壳的问题,先拿开源软件试试。    

    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 -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值