GNU工具链里的漏洞利用缓解技术.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《GNU工具链里的漏洞利用缓解技术.pptx》由用户(无敌的果实)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GNU 工具 漏洞 利用 缓解 技术
- 资源描述:
-
1、A A traveltravel throughthrough exploitexploitmitigationsmitigations inin GNUGNU toolchainstoolchains#ls#ls -l-l00whoami01GCC/ld/Glibcdlinternals0100GCCinternals0101ldinternals0102Glibcdlinternals02smashingthestack03implementationofclassicalmitigations0300stackcanary0301NX(NoeXecutable)0302PIC/PIE&A
2、SLR0303relro04returnorientedprogramming05CFI&implementationinGCC06introtoRAPofPaX/Grsecurity0000 whoamiwhoamicoderwholemylifeworkedonSDCC/gputils,GCC/binutils,LLVMsecurityengineer&memberofhardenedlinux/h4rdenedzer0writeaC89compilerfromscratchonlyforfun(20092012)0101 GCC/ld/GlibcGCC/ld/Glibcdynamic-l
3、inkerdynamic-linker internalsinternals0100GCCinternals0101ldinternals0102Glibcdlinternals01000100 GCCGCC internals/sourceinternals/source directorydirectory overviewoverviewzetfuck-GFW/dust/gcc/gcc-6.2.0$ls-lFABOUT-NLS/*gettext*/boehm-gc/*java gc*/compile*config/*script call gcc by user*/*lots of m4
4、 script*/config.guess*config-ml.inconfig.rpath*config.sub*configure*configure.accontrib/*download prerequest/generate man pages*/*call compiler generate dependency*/depcomp*fixincludes/*fix(macro)system header to work with gcc*/gnattools/gotools/include/INSTALL/*Ada*/*golang*/*getopt.h,sha1.h,etc*/*
5、html install files*/01000100 GCCGCC internals/sourceinternals/source directorydirectory overviewoverviewzetfuck-GFW/dust/gcc/gcc-6.2.0$ls-lFinstall-sh*intl/*called by make install*/*gettext*/libada/libatomic/libbacktrace/libcc1/libcilkrts/libcpp/*_sync/_atomic*/*output like gdb backtrace*/*gdb evalu
6、te code on current context*/*intel cilk runtime*/*C preprocessor*/libdecnumber/libffi/libgcc/*decimal float library*/*part of java runtime*/*GCC runtime library:crt,vtv*/libgfortran/libgo/libgomp/libiberty/libitm/*OpenMP*/*vfork/md5*/*transaction memory*/libjava/libmpx/*Intel Memory Protection Exten
7、sions*/01000100 GCCGCC internals/sourceinternals/source directorydirectory overviewoverviewzetfuck-GFW/dust/gcc/gcc-6.2.0$ls-lFlibobjc/liboffloadmic/libquadmath/libsanitizer/libssp/libstdc+-v3/libvtv/*intel MIC runtime offload library*/*quad-precious math operations*/*leak/use after free/overflow,et
8、c*/*stack smash protection*/*C+runtime*/*after*/lto-plugin/zlib/gcc/*link time optimization*/*part of java runtime*/*frontend,middleend,backend*/01000100 GCCGCC internals/overviewinternals/overview ofof toolchainstoolchainssourceprogramcc1cppgccaslinkerlibctargetprogram01000100 GCCGCC internals/driv
9、erinternals/drivermain /*in file gcc-main.c*/driver:main /*gcc.c*/decode_argv set_up_specs /*for cc1/as/ld*/do_spec_on_infiles /*for(n_infiles)*/lookup_compiler /*find compiler from suffix*/do_spec do_spec_2 do_spec_1 execute pex_init/*piped execute*/pex_run pex_run_in_environment obj-funcs-exec_chi
10、ld/*call cc1*/maybe_run_linker /*collect2*/01000100 GCCGCC internals/driverinternals/drivermain /*in file gcc-main.c*/driver:main /*gcc.c*/decode_argv set_up_specs /*for cc1/as/ld*/do_spec_on_infiles /*for(n_infiles)*/lookup_compiler /*find compiler from suffix*/do_spec do_spec_2 do_spec_1 execute p
11、ex_init/*piped execute*/pex_run pex_run_in_environment obj-funcs-exec_child/*call cc1*/maybe_run_linker /*collect2*/01000100 GCCGCC internals/driverinternals/drivermain /*in file gcc-main.c*/driver:main /*gcc.c*/decode_argv set_up_specs /*for cc1/as/ld*/do_spec_on_infiles /*for(n_infiles)*/lookup_co
12、mpiler /*find compiler from suffix*/do_spec do_spec_2 do_spec_1 execute pex_init/*piped execute*/pex_run pex_run_in_environment obj-funcs-exec_child/*call cc1*/maybe_run_linker /*collect2*/01000100 GCCGCC internals/driverinternals/drivermain /*in file gcc-main.c*/driver:main /*gcc.c*/decode_argv set
13、_up_specs /*for cc1/as/ld*/do_spec_on_infiles /*for(n_infiles)*/lookup_compiler /*find compiler from suffix*/do_spec do_spec_2 do_spec_1 execute pex_init/*piped execute*/pex_run pex_run_in_environment obj-funcs-exec_child/*call cc1*/maybe_run_linker /*collect2*/01000100 GCCGCC internals/driverintern
14、als/drivermain /*in file gcc-main.c*/driver:main /*gcc.c*/decode_argv set_up_specs /*for cc1/as/ld*/do_spec_on_infiles /*for(n_infiles)*/lookup_compiler /*find compiler from suffix*/do_spec do_spec_2 do_spec_1 execute pex_init/*piped execute*/pex_run pex_run_in_environment obj-funcs-exec_child/*call
15、 cc1*/maybe_run_linker /*collect2*/01000100 GCCGCC internals/driverinternals/drivermain /*in file gcc-main.c*/driver:main /*gcc.c*/decode_argv set_up_specs /*for cc1/as/ld*/do_spec_on_infiles /*for(n_infiles)*/lookup_compiler /*find compiler from suffix*/do_spec do_spec_2 do_spec_1 execute pex_init/
16、*piped execute*/pex_run pex_run_in_environment obj-funcs-exec_child/*call cc1*/maybe_run_linker /*collect2*/01000100 GCCGCC internals/whatinternals/what doesdoes specsspecs filefile dodozetfuck-GFW/bin/gcc-6.2.0/bin$./g+-#main.cc-fvtable-verify=std-o main verified_lib.so Using built-in specs.COLLECT
17、_GCC=./g+COLLECT_LTO_WRAPPER=/home/zet/bin/gcc-6.2.0/libexec/gcc/x86_64-pc-linux-gnu/6.2.0/lto-wrapperTarget:x86_64-pc-linux-gnuConfigured with:./configure-disable-checking enable-languages=c,c+-enable-libstdcxx-threads enable-vtable-verify=yes-prefix=/home/zet/bin/gcc-6.2.0Thread model:posixgcc ver
18、sion 6.2.0(GCC)COLLECT_GCC_OPTIONS=-fvtable-verify=std-o main-shared-libgcc-mtune=generic-march=x86-64/home/zet/bin/gcc-6.2.0/libexec/gcc/x86_64-pc-linux-gnu/6.2.0/cc1plus-quiet-imultiarch x86_64-linux-gnu-D_GNU_SOURCE main.cc-quiet-dumpbase main.cc-mtune=generic-march=x86-64-auxbase main-fvtable-ve
19、rify=std-o/tmp/ccVN0GoS.sCOLLECT_GCC_OPTIONS=-fvtable-verify=std-o main-shared-libgcc-mtune=generic-march=x86-64 as-64-o/tmp/ccUBFg31.o/tmp/ccVN0GoS.sCOMPILER_PATH=/home/zet/bin/gcc-6.2.0/libexec/gcc/x86_64-pc-linux-gnu/6.2.0/:/home/zet/bin/gcc-6.2.0/libexec/gcc/x86_64-pc-linux-gnu/6.2.0/:/home/zet/
20、bin/gcc-6.2.0/libexec/gcc/x86_64-pc-linux-gnu/:/home/zet/bin/gcc-6.2.0/lib/gcc/x86_64-pc-linux-gnu/6.2.0/:/home/zet/bin/gcc-6.2.0/lib/gcc/x86_64-pc-linux-gnu/LIBRARY_PATH=/home/zet/bin/gcc-6.2.0/lib/gcc/x86_64-pc-linux-gnu/6.2.0/:/home/zet/bin/gcc-6.2.0/lib/gcc/x86_64-pc-linux-gnu/6.2.0/././././lib6
21、4/:/lib/x86_64-linux-gnu/:/lib/./lib64/:/usr/lib/x86_64-linux-gnu/:/home/zet/bin/gcc-6.2.0/lib/gcc/x86_64-pc-linux-gnu/6.2.0/./././:/lib/:/usr/lib/COLLECT_GCC_OPTIONS=-fvtable-verify=std-o main-shared-libgcc-mtune=generic-march=x86-64/home/zet/bin/gcc-6.2.0/libexec/gcc/x86_64-pc-linux-gnu/6.2.0/coll
22、ect2-plugin/home/zet/bin/gcc-6.2.0/libexec/gcc/x86_64-pc-linux-gnu/6.2.0/liblto_plugin.so-plugin-opt=/home/zet/bin/gcc-6.2.0/libexec/gcc/x86_64-pc-linux-gnu/6.2.0/lto-wrapper-plugin-opt=-fresolution=/tmp/cc9F8SHb.res-plugin-opt=-pass-through=-lgcc_s-plugin-opt=-pass-through=-lgcc-plugin-opt=-pass-th
23、rough=-lc-plugin-opt=-pass-through=-lgcc_s-plugin-opt=-pass-through=-lgcc-eh-frame-hdr-m elf_x86_64-dynamic-linker/lib64/ld-linux-x86-64.so.2-o main/usr/lib/x86_64-linux-gnu/crt1.o/usr/lib/x86_64-linux-gnu/crti.o/home/zet/bin/gcc-6.2.0/lib/gcc/x86_64-pc-linux-gnu/6.2.0/crtbegin.o/home/zet/bin/gcc-6.
24、2.0/lib/gcc/x86_64-pc-linux-gnu/6.2.0/vtv_start.o-L/home/zet/bin/gcc-6.2.0/lib/gcc/x86_64-pc-linux-gnu/6.2.0-L/home/zet/bin/gcc-6.2.0/lib/gcc/x86_64-pc-linux-gnu/6.2.0/././././lib64-L/lib/x86_64-linux-gnu-L/lib/./lib64-L/usr/lib/x86_64-linux-gnu-L/home/zet/bin/gcc-6.2.0/lib/gcc/x86_64-pc-linux-gnu/6
25、.2.0/././.-lvtv-u_vtable_map_vars_start-u_vtable_map_vars_end/tmp/ccUBFg31.o verified_lib.so-lstdc+-lm-lgcc_s-lgcc-lc-lgcc_s-lgcc/home/zet/bin/gcc-6.2.0/lib/gcc/x86_64-pc-linux-gnu/6.2.0/vtv_end.o/home/zet/bin/gcc-6.2.0/lib/gcc/x86_64-pc-linux-gnu/6.2.0/crtend.o/usr/lib/x86_64-linux-gnu/crtn.oCOLLEC
展开阅读全文