目录
  1. 1. build.sh
  2. 2. 使用方法
批量下载并编译glibc

build.sh

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#!/bin/sh

# install som lib
echo "install som lib"
sudo apt-get install gawk -y
sudo apt-get install bison -y
sudo apt-get install gcc-multilib -y
sudo apt-get install g++-multizlib -y

cd /
sudo mkdir -p /glibc
cd /glibc
sudo mkdir -p source
cd source


# get the source of glibc
Get_Glibc_Source(){
if [ ! -d "/glibc/source/glibc-"$1 ]; then
sudo wget http://mirrors.ustc.edu.cn/gnu/libc/glibc-$1.tar.gz
sudo tar xf glibc-$1.tar.gz
else
echo "[*] /glibc/source/glibc-"$1" already exists..."
fi

}
Install_Glibc_x64(){

if [ -f "/glibc/"$1"/64/lib/libc-"$1".so" ];then
echo "x64 glibc "$1" already installed!"
return
fi

#echo $1
#echo "/glibc/64/"$1"/lib/libc-"$1".so"
sudo mkdir -p /glibc/$1/64/
#wget http://mirrors.ustc.edu.cn/gnu/libc/glibc-$1.tar.gz
#tar xf glibc-$1.tar.gz
cd glibc-$1
sudo mkdir build
cd build
sudo ../configure --prefix=/glibc/$1/64/ --disable-werror --enable-debug=yes
sudo make -j4
sudo make install
cd ../../
#sudo rm glibc-$1.tar.gz
sudo rm -rf ./glibc-$1/build

}


Install_Glibc_x86(){

if [ -f "/glibc/"$1"/lib/libc-"$1".so" ];then
echo "x86 glibc "$1" already installed!"
return
fi

#echo $1
#echo "/glibc/64/"$1"/lib/libc-"$1".so"
sudo mkdir -p /glibc/$1/32/
#wget http://mirrors.ustc.edu.cn/gnu/libc/glibc-$1.tar.gz
#tar xf glibc-$1.tar.gz
#cd x86
cd glibc-$1
sudo mkdir build
cd build
sudo ../configure --prefix=/glibc/$1/32/ --disable-werror --enable-debug=yes --host=i686-linux-gnu --build=i686-linux-gnu CC="gcc -m32" CXX="g++ -m32"
sudo make
sudo make install
cd ../../
#sudo rm glibc-$1.tar.gz
sudo rm -rf ./glibc-$1/build

}

#delte the tar of glibc
Delete_Glibc_Tar() {
sudo rm glibc-$1.tar.gz
}

GLIBC_VERSION=$1
#echo ${GLIBC_VERSION}
if [ -n "$GLIBC_VERSION" ]; then
#echo 1
#cd x64
Get_Glibc_Source $GLIBC_VERSION
Install_Glibc_x64 $GLIBC_VERSION
#cd ..
#cd x86
Install_Glibc_x86 $GLIBC_VERSION
Delete_Glibc_Tar $GLIBC_VERSION
#cd ..
else
for GLIBC_VERSION in '2.19' '2.23' '2.24' '2.25' '2.26' '2.27' '2.28' '2.29'
do
#echo 2
#cd x64
Get_Glibc_Source $GLIBC_VERSION
Install_Glibc_x64 $GLIBC_VERSION
#cd ../32
Install_Glibc_x86 $GLIBC_VERSION
Delete_Glibc_Tar $GLIBC_VERSION
#cd ..
done
fi

使用方法

下载并编译 glibc-2.23 ,放在了 /glibc 目录下 ,里面包括源码,x86x64下的带符号的 libc-2.23.so, ld-2.23.so

1
./build 2.23

编译所有版本(没有参数意味着编译所有版本)

1
./build

参考项目 : https://github.com/ray-cp/pwn_debug/blob/master/build.sh

文章作者: nocbtm
文章链接: https://nocbtm.github.io/2019/12/12/批量下载并编译glibc/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 nocbtm's Blog
打赏
  • 微信
  • 支付宝