能力值:
( LV9,RANK:200 )
|
-
-
2 楼
eax <- name 1-4字节
xor eax,key 1-4字节
and eax,7f3f1f0f
ebx <- name 5-8字节
xor ebx,key 5-8字节
and ebx,07030100
for ecx 从0到7
------循环体开始-------
esi <- eax
shl esi,cl
edi <- ebx
shl edi,cl
edx : dl 高四位等于esi四个字节的最高比特位,
dl 低四位等于edi四个字节的最高比特位,
其他位等于0。
if ecx>3
{
qq=ecx*8+8
rol eax,tt
xor eax,edx
ror eax,tt
}
else
{
qq=(ecx-3)*8
rol ebx,tt
xor ebx,edx
ror ebx,tt
}
------循环体结束-------
至于这种运算的意义我就不懂了。
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
这个Cycle的Crackme我也在看
这个call里只是计算,貌似下面的一个call才是关键call
|
能力值:
(RANK:260 )
|
-
-
4 楼
这些不知所云的常数,实际通常是“编译器魔数”(也可能是程序员手动使用的算法技巧),实际上是用一些数学上等价的形式去替换效率不太高的算法。
自己反汇编一下VC优化编译器生成的求字符串长度的函数,你就会看到类似的代码。
有兴趣深入了解的,推荐一本书:《Hacker's Delight》
|
|
|