更换libc丝滑小连招 主要参考大佬的一篇文章
★pwn 更改pwn题libc保姆级教程★
主要记录一下clibc的脚本
大佬给的脚本不是很符合自己的习惯
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 #!/bin/bash FILE_NAME=$1 LIBC_VERSION=$2 WORKDIR=$(pwd ) EBIT=$(file "$FILE_NAME " | awk '{print $3}' | cut -c 1-2)if [ "$EBIT " -eq "32" ]; then LIBC_DIR=/usr/lib/freelibs/i386elif [ "$EBIT " -eq "64" ]; then LIBC_DIR=/usr/lib/freelibs/amd64else echo "It's not an ELF file." exit 1fi libc_dir=$(find "$LIBC_DIR " -name "$LIBC_VERSION *" )if [ -z "$libc_dir " ]; then echo "Not supported version or your $LIBC_DIR doesn't have libc." exit 1fi LIBC_VERSION_CLEAN=$(echo "$LIBC_VERSION " | cut -d '-' -f 1) LIBC_VERSION_MAJOR=$(echo "$LIBC_VERSION_CLEAN " | cut -d '.' -f 1) LIBC_VERSION_MINOR=$(echo "$LIBC_VERSION_CLEAN " | cut -d '.' -f 2) LIBC_VERSION_SHORT="$LIBC_VERSION_MAJOR .$LIBC_VERSION_MINOR " if [ "$3 " ]; then if [[ "$LIBC_VERSION_MAJOR " -gt 2 || \ ("$LIBC_VERSION_MAJOR " -eq 2 && "$LIBC_VERSION_MINOR " -gt 33) ]]; then if [ "$EBIT " -eq "32" ]; then patchelf --set-interpreter "$libc_dir /ld-linux.so.2" --set-rpath "$WORKDIR /" "$FILE_NAME " else patchelf --set-interpreter "$libc_dir /ld-linux-x86-64.so.2" --set-rpath "$WORKDIR /" "$FILE_NAME " fi else patchelf --set-interpreter "$libc_dir /ld-$LIBC_VERSION_SHORT .so" --set-rpath "$libc_dir /" "$FILE_NAME " fi else if [[ "$LIBC_VERSION_MAJOR " -gt 2 || \ ("$LIBC_VERSION_MAJOR " -eq 2 && "$LIBC_VERSION_MINOR " -gt 33) ]]; then if [ "$EBIT " -eq "32" ]; then patchelf --set-interpreter "$libc_dir /ld-linux.so.2" --set-rpath "$libc_dir /" "$FILE_NAME " else patchelf --set-interpreter "$libc_dir /ld-linux-x86-64.so.2" --set-rpath "$libc_dir /" "$FILE_NAME " fi else patchelf --set-interpreter "$libc_dir /ld-$LIBC_VERSION_SHORT .so" --set-rpath "$libc_dir /" "$FILE_NAME " fi fi echo "success!!!"
使用教程 1 2 clibc xxx <完整版本号>#clibc ret 2 .27 -3 ubuntu1 .6 _amd64
这样就可以丝滑切换任何小版本了
关于下载glibc-all-in-one中没有的小版本 1 https://launchpad.net/ubuntu/+source /glibc/<libc版本>
进入网站后点击想要的版本
在Built中下载相应的文件
然后拖进glibc-all-in-one中的debs
执行命令
1 2 ./extract debs/libc6_2.31-0ubuntu9.9_i386.deb libs/2.31-0ubuntu9.9_i386 ./extract debs/libc6-dbg_2.31-0ubuntu9.9_i386.deb libs/2.31-0ubuntu9.9_i386/.debug