源代码加密:加密/弄乱C源代码

的前发表了6个变态C语言Hello World[酷壳链接] [CSDN链接]主要是是像大家展示了些C语言变态玩法也向大家展示了是可以写得让人看不懂在那篇文章中可以看到很多人留言很多人都觉得很好玩那本来是用来供朋友们“消遣作乐”供娱乐娱东而已不必太过认真



不过通过这种极端写法大家可以看到源代码都可以写得那么复杂难懂大家也许在赞叹的余笑了的而我则希望大家能够在娱乐以后认真研究你不要以为咱们自己不会把代码搞得那么复杂只不过没有像那6个Hello World样那么极端不过说句老实话咱们每个都有把清晰搞得团混乱潜能只不过程度不样罢了我并不是在这里危言耸听大家好自为的



下面是个Step by Step教程教你如何把个清晰代码变得复杂难懂当然这只是个“简明教程”了还是那句话——“本文仅供朋友们“消遣作乐”如果你要觉得有意思顶个贴如果你觉得没什么意思笑了的仅供娱乐而已不必太过认真

正常
下面是个找出素数:

void primes( cap)
{
i, j, composite;

for(i = 2; i < cap; i) {
composite = 0;
for(j = 2; j * j < i; j) {
composite !(i % j);
}
(!composite){
prf("%d\t", i);
}
}
}


{
primes(100);
}
下面我们来看看如何把上面这段代码搞得复杂难懂

步、把for变成while
通常来说for循坏要以while循坏简单上面有 2重for循环我们不但要把其变成while循环而且还要把 2重循环变成循环然后使用大量-语句来判断

void primes( cap)
{
i, j, composite, t = 0;

while(t < cap * cap) {
i = t / cap;
j = t % cap;
(i <= 1);
(!j)
composite = j;
(j i && !composite)
prf("%d\t",i);
(j > 1 && j < i)
composite !(i % j);
}
}


{
primes(100);
}
第 2步把循坏变成递归
递归在某些时候是可以把代码变得简单但大多数情况下是把代码变得复杂而且很没有效率下面是把上面while循环变成了递归变成了递归后参数都变成3个了

void primes( cap, t, composite)
{
i,j;
i = t / cap;
j = t % cap;
(i <= 1)
primes(cap,t+1,composite);
(!j)
primes(cap,t+1,j);
(j i && !composite)
(prf("%d\t",i), primes(cap,t+1,composite));
(j > 1 && j < i)
primes(cap,t+1, composite + !(i % j));
(t < cap * cap)
primes(cap,t+1,composite);
}


{
primes(100,0,0);
}
第 3步弄乱代码结构/使用没有含义变量名
有关如何弄乱代码结构其中个小窍门技巧是使用“?”表达式代替-语句

void primes( m, t, c)
{
i,j;
i = t / m;
j = t % m;
(i <= 1) ? primes(m,t+1,c) : (!j) ? primes(m,t+1,j) : (j i && !c) ?
(prf("%d\t",i), primes(m,t+1,c)) : (j > 1 && j < i) ?
primes(m,t+1,c + !(i % j)) : (t < m * m) ? primes(m,t+1,c) : 0;
}


{
primes(100,0,0);
}
第 4步取消临时变量
临时变量般用来保存反复使用个表达式使用大量重复表达式来取消这些临时变量也可以让代码复杂起来

void primes( m, t, c)
{
((t / m) <= 1) ? primes(m,t+1,c) : !(t % m) ? primes(m,t+1, t % m) :
((t % m)(t / m) && !c) ? (prf("%d\t",(t / m)), primes(m,t+1,c)) :
((t % m)> 1 && (t % m) < (t / m)) ? primes(m,t+1,c + !((t / m) % (t % m))) :
(t < m * m) ? primes(m,t+1,c) : 0;
}



{
primes(100,0,0);
}
第 5步继续弄乱变量名
我们知道下划线是合法变量名所以我们不妨用_________来代替mtc名也可以使用下划线来代替让我们来看看求素数能变成什么

void _( __, ___, ____)
{
((___ / __) <= 1) ? _(__,___+1,____) : !(___ % __) ? _(__,___+1,___ % __) :
((___ % __)(___ / __) && !____) ? (prf("%d\t",(___ / __)),
_(__,___+1,____)) : ((___ % __) > 1 && (___ % __) < (___ / __)) ?
_(__,___+1,____ + !((___ / __) % (___ % __))) : (___ < __ * __) ?
_(__,___+1,____) : 0;
}


{
_(100,0,0);
}
第 6步移除常量
在上面还有些常量你可以通过增加个宏定义或是增加形参来取代这常量

void _( __, ___, ____, _____)
{
((___ / __) <= _____) ? _(__,___+_____,____,_____) : !(___ % __) ? _(__,___+_____,___ % __, _____) :
((___ % __)(___ / __) && !____) ? (prf("%d\t",(___ / __)),
_(__,___+_____,____,_____)) : ((___ % __) > _____ && (___ % __) < (___ / __)) ?
_(__,___+_____,____,_____ + !((___ / __) % (___ % __))) : (___ < __ * __) ?
_(__,___+_____,____,_____) : 0;
}

{
_(100,0,0,1);
}
到这里应该差不多了还是那句话——“每员都有把源代码弄复杂潜质”大家好自为的
Tags:  c源代码 c语言源代码 asp源代码加密 源代码加密

延伸阅读

最新评论

发表评论