能力值:
(RANK:410 )
|
-
-
2 楼
mac,cpu,hd生成的明码?
mac=sub_00401790;
cpu=sub_00401610;
hd=sub_004016C0;
code=sub_00401840(mac,cpu);
code=sub_00401840(code,hd);
code=sub_00401880(code);
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
貌似有一定难度呢!!!!!!!!!!!!!!!!!!!!!!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
Deleaker for Visual C++是一个非常优秀的内存漏洞发现的调试软件,我水平太差,请求有强人破解
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
``````支持楼主!
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
顶一下老大,你是我们榜样,分析正确。
(不足之处少了对sub_00401840 sub_00401840 简析)
敬礼!
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
看不明白,整不清楚,再试
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
正解,找到此处不难,
但有一疑问,为何按键上WM_LBU消息无法下断点?
|
能力值:
(RANK:410 )
|
-
-
9 楼
好像我也碰到此问题,不明原因。等高手指点。或等lz的源码来学习下。
我是试了几个断点(getdlgItem,setwindowstext,消息断点....)无效后,在IDA里乱翻,试到的这里。
|
能力值:
(RANK:860 )
|
-
-
10 楼
|
能力值:
( LV3,RANK:20 )
|
-
-
11 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
我也是newbie
但似乎是
GetWindowTextW, SetWindowTextW
|
能力值:
( LV7,RANK:110 )
|
-
-
13 楼
00401906 |. 3B43 78 cmp eax, dword ptr [ebx+78]<===断在这里为明码
00401909 |. 8D4B 7C lea ecx, dword ptr [ebx+7C]
0040190C |. 75 09 jnz short 00401917
0040190E |. 6A 02 push 2
00401910 |. 68 A88A4300 push 00438AA8 ; ok
00401915 |. EB 07 jmp short 0040191E
00401917 |> 6A 05 push 5
00401919 |. 68 B08A4300 push 00438AB0 ; error
0040191E |> E8 3D020000 call 00401B60
注册码:
4284477269和-10490027都可以
|
能力值:
( LV9,RANK:140 )
|
-
-
14 楼
0040190C |. /75 09 jnz short 00401917
0040190E |. |6A 02 push 2
00401910 |. |68 A88A4300 push 00438AA8 ; UNICODE "ok"
00401915 |. |EB 07 jmp short 0040191E
00401917 |> \6A 05 push 5
00401919 |. 68 B08A4300 push 00438AB0 ; UNICODE "error"
0040191E |> E8 3D020000 call 00401B60
00401923 |. 6A 00 push 0
00401925 |. 8BCB mov ecx, ebx
00401927 |. E8 A0760000 call 00408FCC
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
LZ呢?为什么不能断啊?
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
对噢。。断不了
|
能力值:
( LV10,RANK:160 )
|
-
-
17 楼
大家用SetWindowTextW试试
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
我前面已提到过了,至少看一看再post
|
能力值:
( LV4,RANK:50 )
|
-
-
19 楼
不好意思 ,最近忙项目,没来得及回复大家的问题,现在贴出关键代码:
UINT URET=0;//干扰
UINT Function_1(UINT u1,UINT u2)
{
UINT u11=u1;
UINT u22=u2;
BYTE *ptr1=(BYTE*)&u11;
BYTE *ptr2=(BYTE*)&u22;
for(int i=0;i<4;i++)
*(ptr1+i)+=*(ptr2+i);
u11 =(~u11)+1;
URET=u11;
return u11;
}
UINT Funciont_2(UINT rr,UINT hh)
{
UINT uRet= (rr | hh | 0xaa55aa55);
return uRet;
}
typedef UINT (*fpp)(UINT a,UINT b);
void CCrackMeDlg::OnBnClickedOk()
{
this->UpdateData();
try{
DZ dz;
fpp ff;
UINT iFirstVaule=0;
UINT iSecondVaule=0;
UINT iRet=0;
UINT uDz=GetDZ(dz);
//GetDZ是取得网卡物理地址
UINT uid=Getid();
//GETID是取CPU ID
UINT uYPID=GetYpID();
//GetYpID是取得硬盘CPU ID
ff=Function_1;
iFirstVaule=ff(uDz,uid);
iSecondVaule=ff(uid,uYPID);
ff=Funciont_2;
iRet=ff(iFirstVaule,iSecondVaule);
if(iRet==this->m_code)
{
m_strtip=_T("ok");
}
else
{
m_strtip=_T("error");
}
this->UpdateData(FALSE);
}
catch(...)
{
}
return ;
}
|
|
|