SMC加密技术

最近做了个关于SMC加密的题目,这里打算讲讲这个算法

首先什么是SMC加密它又能干什么呢?

SMC技术可以在一段代码执行之前对它进行修改,通过这一特性它就能实现将代码以加密的形式保存在可执行文件中,并在运行程序时动态解密。也就是说它是针对静态分析的。如果想要解开加密一般只能动态的跟踪或者用静态去找到加密部分进行解析。

分辨SMC的几个特点:

1.#pragma code_seg(“.XXXX”) 是一条预编译指令,作用是告诉链接器下面的代码放入 .XXXX代码段中,对敏感代码进行保护

2.遍历找区段名字,然后进行先进行解密操作

3.最后进行异或和移位加密算法

SMC加密的加密实现步骤:

1.首先对函数代码进行解密

2.调用这个函数

3.对代码进行再加密

PS:那么SMC就很容易去实现多层嵌套加密,也就是说需要解密第一个得到第二个函数再进行解密一直解密到最后一层
SMC解密方法:

1.首先找到被做为敏感代码保护的区段进行自解密

2.得到新的加密函数,再一次解密直到解完所有层的加密