摘要: 漫谈TLS_CallBack:原理、编程、手工感染及检测(这篇不错的文章结果在搜索引擎上找不到了,特贴出来共享一下)
原作者: :Hannibal509@gmail.com
一、TLS_CallBack原理
TLS是Thread Local Storage,即线程局部存储的意思。实际上线程局部存储有2种,动态的和静态的。动态线程局部存储使用TlsAlloc, TlsFree, TlsSetValue和TlsGetValue这些API,有很多编程的书都讲过这个问题,我就不多废话了。而静态线程局部存储,则是今天的主角。在 Windows的PE/COFF可执行文件格式中支持静态线程局部存储。TLS回调函数要执行经历下面3个步骤。
1、在链接(link)时,链接器要在PE文件中创建TLS目录(详见PE格式)。
2、 在创建线程时,加载器(loader)会从TEB(thread environment block,线程环境块,通过FS寄存器可以获取TEB的位置)中获取一个指向TLS回调函数数组的指针。
阅读全文