能力值:
( LV2,RANK:10 )
|
-
-
2 楼
好像没什么反应哪!
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
。2个zf
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
user:tddsoft
key: *"#(%!)dahaione
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
呵呵,,,这么快啊,,ddsoft之前的,我也看过了哦。。下了GetDlgItemTextA,断不下来,还是拖到IDA里面去,直接找到地址下断的。
其实我本想在加点反调试的手段的,苦于技术不到家,怕被笑话。所以不了了之,希望达人多指点啊
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
因为注册失败了嘛,呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
poss很是爽快
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
ddsoft的符合我的想法,呵呵
|
能力值:
( LV3,RANK:20 )
|
-
-
9 楼
注册机:
CString name;
GetDlgItem(IDC_EDIT1)->GetWindowText(name);
if (name[0]!='t')
{
MessageBox(L"name必须以t开头!",L"提示",0x20);
return;
}
TCHAR key[MAX_PATH]={0};
for (int i=0;i<name.GetLength();i++)
{
key[i]=((name[i]-0x20) ^ i)>>1;
}
CString reg=key+CString(L"dahaione");
GetDlgItem(IDC_EDIT2)->SetWindowText(reg);
|
能力值:
( LV3,RANK:20 )
|
-
-
10 楼
我用的是Unicode,ANSI的话去掉前面的L就行。。
Crackme就是对name的简单变换,然后加后一个固定字符串。
|
能力值:
( LV3,RANK:20 )
|
-
-
11 楼
再说一句: 这个Crackme的反汇编代码怎么这么啰嗦啊。。。是debug的吗?
|
能力值:
( LV9,RANK:610 )
|
-
-
12 楼
问下下面这俩 strlen 和 strcpy 在作者自己写的么?
004014B0 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4] ; ecx是参数
004014B4 33C0 XOR EAX,EAX
004014B6 |. 85C9 TEST ECX,ECX
004014B8 |. 75 03 JNZ SHORT CrackMe0.004014BD ; 如果ecx = 0 就返回了
004014BA |. C2 0400 RETN 4
004014BD |> 8039 00 CMP BYTE PTR DS:[ECX],0
004014C0 |. 74 09 JE SHORT CrackMe0.004014CB ; 如果 [ecx] = 0就返回了
004014C2 |> 8A51 01 /MOV DL,BYTE PTR DS:[ECX+1]
004014C5 |. 41 |INC ECX
004014C6 |. 40 |INC EAX
004014C7 |. 84D2 |TEST DL,DL
004014C9 |.^ 75 F7 \JNZ SHORT CrackMe0.004014C2
004014CB \> C2 0400 RETN 4
004014CE 90 NOP
004014CF 90 NOP
004014D0 /$ 8B5424 08 MOV EDX,DWORD PTR SS:[ESP+8] ; 此函数相当于strcpy
004014D4 |. 85D2 TEST EDX,EDX
004014D6 |. 74 18 JE SHORT CrackMe0.004014F0
004014D8 |. 8A0A MOV CL,BYTE PTR DS:[EDX]
004014DA |. 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4]
004014DE |. 84C9 TEST CL,CL
004014E0 |. 74 12 JE SHORT CrackMe0.004014F4
004014E2 |> 8808 /MOV BYTE PTR DS:[EAX],CL
004014E4 |. 8A4A 01 |MOV CL,BYTE PTR DS:[EDX+1]
004014E7 |. 40 |INC EAX
004014E8 |. 42 |INC EDX
004014E9 |. 84C9 |TEST CL,CL
004014EB |.^ 75 F5 \JNZ SHORT CrackMe0.004014E2
004014ED |. C2 0800 RETN 8
004014F0 |> 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4]
004014F4 \> C2 0800 RETN 8
|
能力值:
( LV4,RANK:50 )
|
-
-
13 楼
#include "stdio.h"
#include "string.h"
void main()
{
char szUserName[260];
char szPassword[260];
char szKeyBytes[]="dahaione";
szUserName[0]='t';
printf("请输入用户名:t");
scanf("%s",&(szUserName[1]));
__asm
{
lea esi,szUserName
lea edi,szPassword
xor ecx,ecx
_GO:
lodsb
or al,al
je _End
sub al,20h
xor al,cl
sar al,1
stosb
inc ecx
jmp _GO
_End:
stosb
}
strcat(szPassword,szKeyBytes);
printf("密码:\n%s\n",szPassword);
}
|
能力值:
( LV13,RANK:260 )
|
-
-
14 楼
T,T变小写 ,xor 位序,》》1,加dahaione
|
能力值:
( LV3,RANK:20 )
|
-
-
15 楼
Sub 0x20 并不是变大写的意思。。。比如:我用我的注册机算的。。。。
name: t!@#$%
code : *dahaione
---------
Crackme采用的是ANSI,不支持中文的用户名注册。。。
|
能力值:
( LV13,RANK:260 )
|
-
-
16 楼
仅限于俺这里的T 呵呵。。如果 本身 是非字母字符 那就 可定没有 这个变换了。。
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
004015E1 E8 EAFEFFFF call CrackMe0.004014D0
004015E6 80BD FCFEFFFF 7>cmp byte ptr [ebp-104], 74
004015ED 0F85 C2000000 jnz CrackMe0.004016B5 /nop
0040167F E8 7CFEFFFF call CrackMe0.00401500
00401684 85C0 test eax, eax
00401686 74 2D je short CrackMe0.004016B5 /nop
一直对算法无能。。
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
[QUOTE=blueapplez;898350]问下下面这俩 strlen 和 strcpy 在作者自己写的么?
004014B0 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4] ; ecx是参数
004014B4 33C0 XOR EA...[/QUOTE]
额,是的,我的原意是不显示的调用strcmp这样的函数,但是写完后发现这简直是脱了裤子放屁,对Cracker来说,根本不能构成任何阻碍。以后得想点其他办法。
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
是的,连我自己都不知道输入了用户名过后,会出现什么样的注册码,也许会出现无法输入的也不一定。呵呵,水平有限啊,希望各位达人 多指点啊啊
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
是release版本的,只是我的过程太啰嗦了。
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
想不到有这么多人看,这个CM是我的第一个CM,水平很菜,希望各位不要见笑啊,你们的回复是我的动力,第二个CM,也许没有这么容易了哈。
自己给自己期待下
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
[QUOTE=zxiso;898689]004015E1 E8 EAFEFFFF call CrackMe0.004014D0
004015E6 80BD FCFEFFFF 7>cmp byte ptr [ebp-104], 74
004015ED 0F85 C2000000 jnz C...[/QUOTE] 这个挺好的
|
能力值:
( LV13,RANK:388 )
|
-
-
23 楼
str*类的函数算法本来就简单,所以即使自己实现对破解影响不会很大,但是如果自己实现一些复杂的而且和算法相关的,会明显增加破解难度
退一步讲,即使自己实现api没能对破解造成阻碍,也没关系,因为调用这些函数只会给破解者更多的线索
|
能力值:
( LV13,RANK:260 )
|
-
-
24 楼
这个 随便 呵呵 看到了对应的符号 以后 用alt+(十进制数) 就是你要的符号 呵呵。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
唉。。只会爆破。。注册很久了。。但是一直没入门。。。。没学到精髓啊 。。。
|
|
|