免杀
C
字符串隐藏
在静态免杀中,如果字符串使用const char* str = "Hello World";
方式,或者放在全局变量区初始化,会在文件中直接看到
对免杀要隐藏字符串,使用char str[] = {'h', 'e', 'l', 'l', 'o', 0};
初始化的字符串不会编译到文件里面,只有在程序开始运行的时候才会加载到栈中。
但是这种方法在exe中使用release版本编译还是可能被系统优化成一段完整的字符串,因此可以加入一些混淆代码,比如:
1 | int mian(void) |
这样打印数组a就是hello,并且使用release生成也不会显示在PE文件中。
命令行参数
1 |
|
argc是输入的参数的个数加一,第一个参数是当前进程名,如果是在cmd中执行这个exe: