刚开始见到这个思路是看到周大师用这个东西做的免杀,当时感觉这个想法很好,但是由于当时对PE结构了解的少,看到二进制的东西就打怵,所以当时也没能成功的去实现这个思路,只是简单的记录了一下TLS的特性,直到最近在看核心编程的某一章,里面又提到了TLS,让我想起了当时没有成功实现的那个思路,所以就又尝试了一次,用了一下午实现了这个TEXT代码段加密的思路。
功能就是把PE文件的TEXT段进行加密,隐藏他的静态代码段特性,在运行的时候抢在main函数执行之前把代码段直接在内存里面解密(不然就崩溃了),从而达到静态代码隐藏功能。
先说下TLS(线程本地存储),这个东西平时用的并不多,分为静态TLS和动态TLS,主要是为了给程序做预处理以及实现存储隔离的思路,就是比如一个全局变量,N个线程同时访问,可以不上锁,大家通过TLS自己每人有一个自己的备份等等.然而今天用的不是这方面,今天要用的是静态TLS,静态TLS也有很多特性和功能,这里不废话,需要的可以自行搜索,就用到一点,TLS可以在main函数执行之前加载并且调用,也就是在干活之前先执行TLS