首页
社区
课程
招聘
[原创]好久没来了 发一个好玩的:)
发表于: 2008-6-26 17:25 11900

[原创]好久没来了 发一个好玩的:)

2008-6-26 17:25
11900
收藏
免费 0
支持
分享
最新回复 (41)
雪    币: 295
活跃值: (11)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
26
findlakes
BFC186709E2D7DC9
2008-7-2 11:52
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
27
还是直接diy个成品代码吧,大家可以专心搞算法了:
00402720   8B5424 08        MOV     EDX,DWORD PTR SS:[ESP+8]
00402724   8D42 08          LEA     EAX,DWORD PTR DS:[EDX+8]
00402727   50               PUSH    EAX
00402728   52               PUSH    EDX
00402729   E8 823A0000      CALL    004061B0
0040272E   8B5424 08        MOV     EDX,DWORD PTR SS:[ESP+8]
00402732   8B4C24 0C        MOV     ECX,DWORD PTR SS:[ESP+C]
00402736   8B02             MOV     EAX,DWORD PTR DS:[EDX]
00402738   8901             MOV     DWORD PTR DS:[ECX],EAX
0040273A   8B42 04          MOV     EAX,DWORD PTR DS:[EDX+4]
0040273D   8941 04          MOV     DWORD PTR DS:[ECX+4],EAX
00402740   B8 01000000      MOV     EAX,1
00402745   C2 1000          RETN    10
2008-7-2 11:59
0
雪    币: 423
活跃值: (11)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
28
中午休息时,跟了半小时,没发现你的问题。

考虑到我的OD没用反调试插件(做CRACK ME的习惯),调试选项里异常都没选。
推测是你的反调试没到位。

一次调试,如注册失败,必须将CRACK ME 完全退出,重新打开,重新调试。推测
内存中有一个变量控制,结果是50时,进行假注册码处理;为-1时,就会发生你说的
情况。

这个CRACK ME 的重点应该是反调试,而不是算法,这是
我中午跟的体会。我偷懒设个内存断点,就当机了。由于我是纯手工反调试的,所以
又重启了几回,不想跟了。在我的机器上,对假注册码的处理结果存入12F848,后赋值
到12F808,最后赋值给ESI,与EDI的值比邻而居。
2008-7-2 14:54
0
雪    币: 926
活跃值: (397)
能力值: (RANK:500 )
在线值:
发帖
回帖
粉丝
29
奇怪 , 我没有加没有任何反调试啊。纯算法
2008-7-2 15:19
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
30
多谢几位热心指点。晚上有时间的话去跟一下。
2008-7-2 15:43
0
雪    币: 423
活跃值: (11)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
31
使用反调试插件时,正常运行。但那个变量为-1,不是50。

去除反调试插件,手工绕过几处,为50,就会跟进入MSCRT的领空。特别是刚载入时,
OD自动退出。
2008-7-2 15:48
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
32
没有任何anti,原版od不用任何插件可以正常调试
2008-7-2 15:54
0
雪    币: 423
活跃值: (11)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
33
是吗?我晚上回去查查我的电脑。会不会是驱动的缘故?真奇怪了。

咨询了一位朋友,他认为是驱动的原因。他那两台运行正常,一台有类似反调试的现象。

我这在WIN2000下的机器根本进不了处理假码的地方,一台WIN XP不正常。似乎需要一定的运行环境。

和朋友讨论了一会,应该是驱动的原因。
因为类似反调试的情况发生在两个地方:一个是CRACK ME刚运行时,一个是跟进驱动领空时。刚才在同事电脑上测试了一下,这种现象很明显。直接附加,没有类似反调试的现象。估计驱动的载入及运行需要一定的条件。
2008-7-2 16:00
0
雪    币: 423
活跃值: (11)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
34
昨夜研究了一下我机子遇到的问题,证实是驱动的原因。
理由:
1.运行CRACE ME,出现驱动安装失败。这时,就会出现我遇到的问题。
  询问朋友,他感觉是有这个印象。
  没有出现驱动安装失败的提示的机子,没有问题。
2.查看我的破解记录,ESI的值记录都是零。也就是说,没有经过驱动的处理。
3.用你的方法,一切正常。但关机后重新开机,问题又会出现。

感谢各位大侠的帮助,以后好好研究驱动的问题。
2008-7-3 08:18
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
35
是什么算法?搞不懂。
f5改了改,是这样的吗?
int __stdcall sub_402E00(int *RegcodeHex, int *Para)
{
  unsigned int rcint[0]; // [sp+24h] [bp-8h]@1
  unsigned int rcint[1]; // [sp+14h] [bp-18h]@1
  unsigned int keyconst; // [sp+8h] [bp-24h]@1
  unsigned int key1; // [sp+18h] [bp-14h]@1
  int para[0]; // [sp+28h] [bp-4h]@1
  int para[1]; // [sp+1Ch] [bp-10h]@1
  int para[2]; // [sp+Ch] [bp-20h]@1
  int para[3]; // [sp+10h] [bp-1Ch]@1
  unsigned int tmpi; // [sp+20h] [bp-Ch]@1
  int keyB1; // [sp+4h] [bp-28h]@3
  int keyB2; // [sp+0h] [bp-2Ch]@10

  rcint[0] = *RegcodeHex;
  rcint[1] = *(RegcodeHex + 1);
  keyconst = 0x6D3579A9;
  key1 = 0;
  para[0] = *Para;
  para[1] = *(Para + 1);
  para[2] = *(Para + 2);
  para[3] = *(Para + 3);
  tmpi = 0;
  for(tmpi=0;tmpi<32;tmpi++)
  {
    keyB1 = key1 & 0x00000011;
    switch (keyB1)
    {
    	case 0:
    		rcint[0] += para[0] + ((rcint[1] >> 5) ^ (rcint[1]<<4)) + (rcint[1] ^ key1);
    		break;
    	case 1:
    		rcint[0] += para[1] + ((rcint[1] >> 5) ^ (rcint[1]<<4))  + (rcint[1] ^ key1);
    		break;
    	case 2:
    		rcint[0] += para[2] + ((rcint[1] >> 5) ^ (rcint[1]<<4))  + (rcint[1] ^ key1);
    		break;
    	case 3:
    		rcint[0] += para[3] + ((rcint[1] >> 5) ^ (rcint[1]<<4))  + (rcint[1] ^ key1);
    		break;
    }
    key1 += keyconst;
    keyB2 = (key1 >> 11) & 0x00000011;
    switch (keyB2)
    {
    	case 0:
    		rcint[1] += para[0] + ((rcint[0] >> 5) ^ (rcint[0]<<4))  + (rcint[0] ^ key1);
    		break;
    	case 1:
    		rcint[1] += para[1] + ((rcint[0] >> 5) ^ (rcint[0]<<4)) + (rcint[0] ^ key1);
    		break;
    	case 2:
    		rcint[1] += para[2] + ((rcint[0] >> 5) ^ (rcint[0]<<4))+ (rcint[0] ^ key1);
    		break;
    	case 3:
    		rcint[1] += para[3] + ((rcint[0] >> 5) ^ (rcint[0]<<4))+ (rcint[0] ^ key1);
    		break;
    }
  }
  *RegcodeHex = rcint[0];
  *(RegcodeHex + 1) = rcint[1];
  return RegcodeHex;
}

2008-7-3 18:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
36
以前xikug有一篇windbg双机调试的驱动的程序
不知道单机如何动态调试??
2008-7-3 18:32
0
雪    币: 229
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
37
不知道是什么东东..
2008-7-9 20:05
0
雪    币: 317
活跃值: (93)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
38
不会追码只有爆破啦!
上传的附件:
2008-7-9 23:59
0
雪    币: 347
活跃值: (30)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
39
继续关注
2008-7-12 12:10
0
雪    币: 926
活跃值: (397)
能力值: (RANK:500 )
在线值:
发帖
回帖
粉丝
40
26 楼已经给出一组正确的注册码了
2008-7-12 18:30
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
41
26只给出了注册码。
看不懂算法。。。。
2008-7-12 20:34
0
雪    币: 347
活跃值: (30)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
42
同意楼上意见~

挺喜欢humourkyo写的CM的,虽然我不会玩
2008-7-12 20:48
0
游客
登录 | 注册 方可回帖
返回
//