首页
社区
课程
招聘
[原创]09年第一个CRACKME
发表于: 2009-1-9 21:20 8893

[原创]09年第一个CRACKME

2009-1-9 21:20
8893
语言:VC2005
概述:无壳,无病毒,求CODE生成过程分析,不求爆破。

迟到的祝福:新年快乐!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (18)
雪    币: 2316
活跃值: (129)
能力值: (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);
2009-1-10 00:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
貌似有一定难度呢!!!!!!!!!!!!!!!!!!!!!!!!
2009-1-10 13:53
0
雪    币: 212
活跃值: (1252)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
Deleaker for Visual C++是一个非常优秀的内存漏洞发现的调试软件,我水平太差,请求有强人破解
2009-1-10 13:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
``````支持楼主!
2009-1-10 16:36
0
雪    币: 136
活跃值: (48)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
顶一下老大,你是我们榜样,分析正确。
(不足之处少了对sub_00401840  sub_00401840 简析)
敬礼!
2009-1-10 21:58
0
雪    币: 261
活跃值: (83)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
看不明白,整不清楚,再试
2009-1-11 14:17
0
雪    币: 216
活跃值: (57)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
正解,找到此处不难,
但有一疑问,为何按键上WM_LBU消息无法下断点?
2009-1-12 14:35
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
9
好像我也碰到此问题,不明原因。等高手指点。或等lz的源码来学习下。
我是试了几个断点(getdlgItem,setwindowstext,消息断点....)无效后,在IDA里乱翻,试到的这里。
2009-1-12 17:59
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
10
天啊。。我给爆破了。。。。
上传的附件:
2009-1-14 00:28
0
雪    币: 158
活跃值: (43)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
胡乱写了一下,不知道行不行..
keygen.rar
上传的附件:
2009-1-26 19:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我也是newbie
但似乎是
GetWindowTextW, SetWindowTextW
2009-1-27 07:40
0
雪    币: 1596
活跃值: (30)
能力值: ( 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都可以
2009-1-31 20:41
0
雪    币: 603
活跃值: (40)
能力值: ( 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
2009-2-1 11:14
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
LZ呢?为什么不能断啊?
2009-2-1 16:32
0
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
对噢。。断不了
2009-2-2 14:32
0
雪    币: 201
活跃值: (269)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
17
大家用SetWindowTextW试试
2009-2-2 15:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
我前面已提到过了,至少看一看再post
2009-2-2 19:36
0
雪    币: 136
活跃值: (48)
能力值: ( 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 ;
}
2009-2-6 22:58
0
游客
登录 | 注册 方可回帖
返回
//