能力值:
(RANK:760 )
|
-
-
2 楼
呵呵,还是个CrackMe.
先用PEiD的插件看看能不能识别出来什么算法,CrackMe就不好说了:P
这么多的call,再多花点时间分析清楚每一个call的意思算法就清楚了。
|
能力值:
( LV8,RANK:130 )
|
-
-
3 楼
00452961 |. 8945 D8 mov dword ptr ss:[ebp-28],eax ; 循环1运行eax次
00452964 |. C745 DC 000>mov dword ptr ss:[ebp-24],0 ;i
0045296B |> 8B45 F0 /mov eax,dword ptr ss:[ebp-10] ;数组a
0045296E |. 8B55 DC |mov edx,dword ptr ss:[ebp-24] ;n
00452971 |. 8A0C10 |mov cl,byte ptr ds:[eax+edx] ;a[n]-->cl
00452974 |. BE 0A000000 |mov esi,0A ;循环2运行10次
00452979 |. B8 C47B4500 |mov eax,CrackMe.00457BC4 ;L
0045297E |. 8D55 E6 |lea edx,dword ptr ss:[ebp-1A] ;数组b
00452981 |> 33DB |/xor ebx,ebx
00452983 |. 8AD9 ||mov bl,cl ;a[i]-->bl
00452985 |. 8D1C9B ||lea ebx,dword ptr ds:[ebx+ebx*4];ebx*5
00452988 |. 8A1C58 ||mov bl,byte ptr ds:[eax+ebx*2] ;L+ebx*2->bl
0045298B |. 301A ||xor byte ptr ds:[edx],bl ;b[k] xor bl(字节)
0045298D |. 42 ||inc edx ;k++
0045298E |. 40 ||inc eax ;L++
0045298F |. 4E ||dec esi
00452990 |.^ 75 EF |\jnz short CrackMe.00452981 ;循环2
00452992 |. FF45 DC |inc dword ptr ss:[ebp-24] ;i++
00452995 |. FF4D D8 |dec dword ptr ss:[ebp-28] ;n--
00452998 |.^ 75 D1 \jnz short CrackMe.0045296B ;循环1
看明白了吗?
n=eax;
i=0;
for(;n>0;)
{
L=[457bc6]; //^-^
k=0;
for(m=10;m>0;m--)
{
b[k]=b[k]^(L+a[i]*5*2);
k++;
L++;
}
i++;
n--;
}
此部分是改变 ss:[ebp-1A]指]地址向的数组的值
别的部分分析过程也类似,我也很菜,希望对你有帮助
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
十分感谢,谢谢 mirrormask 大概清楚了一些.
能不能帮分析下第一个算法,我看那个比较简单.
我想先从简单的开始.
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
mirrormask 能把你的这个原程序写成VB的吗?我C不好.
我VB很好的.
|
能力值:
( LV8,RANK:130 )
|
-
-
6 楼
vb我不会。也就是循环改变数组b[k]得值,自己耐心看一下吧
第一个:这段大概涉及到了某些计算
004891B5 |> B8 00010000 /mov eax,100
004891BA |. E8 F999F7FF |call CrackMe.00402BB8
004891BF |. 8B55 FC |mov edx,dword ptr ss:[ebp-4]
004891C2 |. 0FB6141A |movzx edx,byte ptr ds:[edx+ebx]
004891C6 |. 33C2 |xor eax,edx
004891C8 |. 50 |push eax
004891C9 |. 8D45 FC |lea eax,dword ptr ss:[ebp-4]
004891CC |. E8 E3ADF7FF |call CrackMe.00403FB4
004891D1 |. 5A |pop edx
004891D2 |. 881418 |mov byte ptr ds:[eax+ebx],dl
004891D5 |. 43 |inc ebx
004891D6 |. 4E |dec esi
004891D7 |.^ 75 DC \jnz short CrackMe.004891B5
,你可以看一看call CrackMe.00402BB8和
004891CC |. E8 E3ADF7FF |call CrackMe.00403FB4
是什么作用
做反汇编一定要有耐心
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
所有的CALL都在这里了
CrakMe.00402BB8
00402BB8 6915 44904900>imul edx,dword ptr ds:[499044],8088405
00402BC2 42 inc edx
00402BC3 8915 44904900 mov dword ptr ds:[499044],edx
00402BC9 F7E2 mul edx
00402BCB 89D0 mov eax,edx
00402BCD C3 retn
CrackMe.00403FB4
00403FB4 8B10 mov edx,dword ptr ds:[eax]
00403FB6 85D2 test edx,edx
00403FB8 74 2C je short CrakMe.00403FE6
00403FBA 8B4A F8 mov ecx,dword ptr ds:[edx-8]
00403FBD 49 dec ecx
00403FBE 74 26 je short CrakMe.00403FE6
00403FC0 53 push ebx
00403FC1 89C3 mov ebx,eax
00403FC3 8B42 FC mov eax,dword ptr ds:[edx-4]
00403FC6 E8 5DFCFFFF call CrakMe.00403C28
00403FCB 89C2 mov edx,eax
00403FCD 8B03 mov eax,dword ptr ds:[ebx]
00403FCF 8913 mov dword ptr ds:[ebx],edx
00403FD1 8B48 F8 mov ecx,dword ptr ds:[eax-8]
00403FD4 49 dec ecx
00403FD5 7C 04 jl short CrakMe.00403FDB
00403FD7 F0:FF48 F8 lock dec dword ptr ds:[eax-8]
00403FDB 8B48 FC mov ecx,dword ptr ds:[eax-4]
00403FDE E8 3DE9FFFF call CrakMe.00402920
00403FE3 8B13 mov edx,dword ptr ds:[ebx]
00403FE5 5B pop ebx
00403FE6 89D0 mov eax,edx
00403FE8 C3 retn
CrakMe.00403C28
00403C28 85C0 test eax,eax
00403C2A 7E 1C jle short CrakMe.00403C48
00403C2C 50 push eax
00403C2D 83C0 09 add eax,9
00403C30 E8 4FEBFFFF call CrakMe.00402784
00403C35 83C0 08 add eax,8
00403C38 5A pop edx
00403C39 8950 FC mov dword ptr ds:[eax-4],edx
00403C3C C740 F8 01000>mov dword ptr ds:[eax-8],1
00403C43 C60410 00 mov byte ptr ds:[eax+edx],0
00403C47 C3 retn
CrakMe.00402784
00402784 85C0 test eax,eax
00402786 74 0A je short CrakMe.00402792
00402788 FF15 24704900 call dword ptr ds:[497024] ; CrakMe.004021C4
这个call好象没有什么用
0040278E 09C0 or eax,eax
00402790 74 01 je short CrakMe.00402793
00402792 C3 retn
CrakMe.00402920
00402920 56 push esi
00402921 57 push edi
00402922 89C6 mov esi,eax
00402924 89D7 mov edi,edx
00402926 89C8 mov eax,ecx
00402928 39F7 cmp edi,esi
0040292A 77 13 ja short CrakMe.0040293F
0040292C 74 2F je short CrakMe.0040295D
0040292E C1F9 02 sar ecx,2
00402931 78 2A js short CrakMe.0040295D
00402933 F3:A5 rep movs dword ptr es:[edi],dword ptr ds:[>
00402935 89C1 mov ecx,eax
00402937 83E1 03 and ecx,3
0040293A F3:A4 rep movs byte ptr es:[edi],byte ptr ds:[es>
0040293C 5F pop edi
0040293D 5E pop esi
0040293E C3 retn
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
自已顶一下.
|