首页
社区
课程
招聘
[原创]发个1K多的crackme
发表于: 2009-4-3 13:28 8420

[原创]发个1K多的crackme

2009-4-3 13:28
8420
收藏
免费 7
支持
分享
最新回复 (17)
雪    币: 148
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
期待贴主的第一个源码CrackMe出现
2009-4-3 13:35
0
雪    币: 219
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
实在太菜了……
2009-4-3 15:18
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4


我发现我越来越坏了!

主要是我快下班了,没时间了就这样吧,哈哈```反正我是国家免检菜鸟
上传的附件:
2009-4-3 17:58
0
雪    币: 295
活跃值: (11)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
这么小的 东东  你也暴??
2009-4-3 18:22
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
哈哈。对吗?

我只是把 字符串改成 TRUE 而以哈哈。。。

和上次那个CRACKME真像。马上要下班了没办法哎。

所以说我越来越坏了```
2009-4-3 18:26
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
7
正确的结果是显示OK!!
这个结果是经过加密了的,如果正确的话即会显示。目前我已经把算法搞明白了,不过楼主给出的算法好像是无解的。
    004003D6  |> /385C0D DC     |/cmp     byte ptr [ebp+ecx-24], bl
004003DA  |. |74 4F         ||je      short 0040042B                 
004003DC  |. |41            ||inc     ecx
004003DD  |. |3BC8          ||cmp     ecx, eax
004003DF  |.^\7E F5         |\jle     short 004003D6
004003E1      305C15 DC     xor     byte ptr [ebp+edx-24], bl

这一句相当于将余数对于的数组下标+1位取反,而前面的判断是此位对应的数字必须不能为1,
那么如果前面是 0 0 0 1
                而取反对应的是 0001X
               最后比较长度为10,这已经出现数组越界的情况了:
          004003F0  |> /385C05 DC     /cmp     byte ptr [ebp+eax-24], bl
              个人认为FindLakes女士可能把这两句写错了,造成无解的情况,正确情况应该是
          cmp     byte ptr [ebp+eax-25], bl
             而上面的异或也应该是
        004003E1      305C15 DC     xor     byte ptr [ebp+edx-25], bl
             这样的话,才有可能将数组中所有为1位全部清零,从而走向正确的分支,如果按Findlakes女士原来的代码走,将永远也不可能实现所想要的结果,也就是说,永远也得不到正确的答案。
2009-4-3 18:47
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
8
[QUOTE=不问年少;601183]正确的结果是显示OK!!
这个结果是经过加密了的,如果正确的话即会显示。目前我已经把算法搞明白了,不过楼主给出的算法好像是无解的。
    004003D6  |> /385C0D DC     |/cmp     byte ptr [ebp+ecx-24], bl
004003DA  ...[/QUOTE]

请再想仔细一点.
2009-4-3 21:42
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
为什么用OD载入后Ctrl+N 看不到GetDialogText?但是在入口的上面我却找到了以下代码
0040049C  |.  6A 10         push    10                               ; /Count = 10 (16.)
0040049E  |.  50            push    eax                              ; |Buffer
0040049F  |.  68 E9030000   push    3E9                              ; |ControlID = 3E9 (1001.)
004004A4  |.  FF75 08       push    dword ptr [ebp+8]                ; |hWnd
004004A7  |.  FFD6          call    esi                              ; \GetDlgItemTextA
004004A9  |.  85C0          test    eax, eax
004004AB  |.  74 6C         je      short 00400519
004004AD  |.  8D85 E8EFFFFF lea     eax, dword ptr [ebp-1018]
004004B3  |.  68 00100000   push    1000                             ; /Count = 1000 (4096.)
004004B8  |.  50            push    eax                              ; |Buffer
004004B9  |.  68 EA030000   push    3EA                              ; |ControlID = 3EA (1002.)
004004BE  |.  FF75 08       push    dword ptr [ebp+8]                ; |hWnd
004004C1  |.  FFD6          call    esi                              ; \GetDlgItemTextA

明明显示是GetDlgItemTextA为什么OD不显示有呢 ?楼主用的什么方法 而且我也没有查出是用的什么壳?希望哪位大牛能帮忙解释下?
2009-4-3 22:25
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
10
想到了没 ?

这东西有点类似河内塔, 不完全像.
CM规则: 欲 not 的那个的前面需为 1 , 再前面需全为 0

username 你打 sessiondiy
序号你打 2678161590 , 在OllyDbg内观察可由 111110011排成000010011

   1 2   3 4 5 6 7 8 9

   1 1   1 1 1 0 0 1 1  <- sessiondiy 初值
   1 0   1 1 1 0 0 1 1
   0 0   1 1 1 0 0 1 1
   0 0   1 0 1 0 0 1 1
   1 0   1 0 1 0 0 1 1
   1 1   1 0 1 0 0 1 1
   0 1   1 0 1 0 0 1 1
   0 1   0 0 1 0 0 1 1
   1 1   0 0 1 0 0 1 1
   1 0   0 0 1 0 0 1 1
   0 0   0 0 1 0 0 1 1
/--接下来的变换,序号我就不抓了--\
   1 0   0 0 1 0 0 1 1
   1 1   0 0 1 0 0 1 1
   0 1   0 0 1 0 0 1 1
   0 1   1 0 1 0 0 1 1
   1 1   1 0 1 0 0 1 1
   1 0   1 0 1 0 0 1 1
   0 0   1 0 1 0 0 1 1
   0 0   1 1 1 0 0 1 1
   1 0   1 1 1 0 0 1 1
   1 1   1 1 1 0 0 1 1
   0 1   1 1 1 0 0 1 1
   0 1   0 1 1 0 0 1 1
   1 1   0 1 1 0 0 1 1
   1 0   0 1 1 0 0 1 1
   0 0   0 1 1 0 0 1 1
   0 0   0 1 0 0 0 1 1
   1 0   0 1 0 0 0 1 1
   1 1   0 1 0 0 0 1 1
   0 1   0 1 0 0 0 1 1
   0 1   1 1 0 0 0 1 1
   1 1   1 1 0 0 0 1 1
   1 0   1 1 0 0 0 1 1
   0 0   1 1 0 0 0 1 1
   0 0   1 0 0 0 0 1 1
   1 0   1 0 0 0 0 1 1
   1 1   1 0 0 0 0 1 1
   0 1   1 0 0 0 0 1 1
   0 1   0 0 0 0 0 1 1
   1 1   0 0 0 0 0 1 1
   1 0   0 0 0 0 0 1 0
   0 0   0 0 0 0 0 1 0
/--再来就非人肉在做的了, 这是电脑在做的事--\
   
到0 0   0 0 0 0 0 0 0 就成功了
2009-4-3 23:09
0
雪    币: 101
活跃值: (12)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
11
又见九连环123456
上传的附件:
2009-4-4 01:10
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
12
强人,我是有这种感觉,没想到解,或者是我自己认为无解,没想到居然有答案呢。
2009-4-4 07:02
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
13
  谢谢sessiondiy大侠的指点,我对这种数学问题的确是不大在行啊。我认为每次将余数对应位的数字取反而要保证前一位必须为1,再前面必须为0,这样的话什么时候才能将前面的1变为0呢,呵呵,要将数组全部置0才能过关,但是每次老是将后一位取反,这算法怪厉害的,挺复杂,我昨天还认为是findlakes女士写错了呢。 实在是汗颜
  我想的是将前一位取反,这样的话问题就简单多了,呵呵,最坏的情况也不超过9位注册码。
2009-4-4 10:52
0
雪    币: 156
活跃值: (27)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
我也得到了OK.直接把里面几个跳转直接NOP就得到了.汗
2009-4-6 15:48
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
15
这跟比赛那题一样
2009-4-6 16:50
0
雪    币: 280
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
啊? 一k多就那么厉害
2009-4-6 16:59
0
雪    币: 280
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
再问一下 为什么我写一个很简单的程序也要一百多k??
2009-4-6 17:02
0
雪    币: 244
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
look 找到的东西

00400240  /$  57            PUSH EDI
00400241  |.  8B7C24 08     MOV EDI,DWORD PTR SS:[ESP+8]
00400245  |.  803F FF       CMP BYTE PTR DS:[EDI],0FF
00400248      74 5F         JNE SHORT CrackMe.004002A9
0040024A  |.  8A4F 01       MOV CL,BYTE PTR DS:[EDI+1]
0040024D  |.  8B4424 0C     MOV EAX,DWORD PTR SS:[ESP+C]
00400251  |.  80F1 25       XOR CL,25
00400254  |.  8808          MOV BYTE PTR DS:[EAX],CL
00400256  |.  8A4F 02       MOV CL,BYTE PTR DS:[EDI+2]
00400259  |.  80F1 9A       XOR CL,9A
0040025C  |.  8848 01       MOV BYTE PTR DS:[EAX+1],CL
0040025F  |.  8A4F 03       MOV CL,BYTE PTR DS:[EDI+3]
00400262  |.  80F1 F3       XOR CL,0F3
00400265  |.  8848 02       MOV BYTE PTR DS:[EAX+2],CL
00400268  |.  8A4F 04       MOV CL,BYTE PTR DS:[EDI+4]
0040026B  |.  80F1 6F       XOR CL,6F
0040026E  |.  8848 03       MOV BYTE PTR DS:[EAX+3],CL
00400271  |.  8A4F 05       MOV CL,BYTE PTR DS:[EDI+5]
00400274  |.  80F1 82       XOR CL,82
00400277  |.  8848 04       MOV BYTE PTR DS:[EAX+4],CL
0040027A  |.  8A4F 06       MOV CL,BYTE PTR DS:[EDI+6]
0040027D  |.  80F1 DA       XOR CL,0DA
00400280  |.  8848 05       MOV BYTE PTR DS:[EAX+5],CL
00400283  |.  8A4F 07       MOV CL,BYTE PTR DS:[EDI+7]
00400286  |.  80F1 72       XOR CL,72
00400289  |.  8848 06       MOV BYTE PTR DS:[EAX+6],CL
0040028C  |.  8A4F 08       MOV CL,BYTE PTR DS:[EDI+8]
0040028F  |.  80F1 FE       XOR CL,0FE
00400292  |.  8848 07       MOV BYTE PTR DS:[EAX+7],CL
00400295  |.  8A4F 09       MOV CL,BYTE PTR DS:[EDI+9]
00400298  |.  80F1 C9       XOR CL,0C9
0040029B  |.  8848 08       MOV BYTE PTR DS:[EAX+8],CL
0040029E  |.  8A4F 0A       MOV CL,BYTE PTR DS:[EDI+A]
004002A1  |.  80F1 B7       XOR CL,0B7
004002A4  |.  5F            POP EDI
004002A5  |.  8848 09       MOV BYTE PTR DS:[EAX+9],CL
004002A8  |.  C3            RETN
004002A9  |>  83C9 FF       OR ECX,FFFFFFFF
004002AC  |.  33C0          XOR EAX,EAX
004002AE  |.  F2:AE         REPNE SCAS BYTE PTR ES:[EDI]
004002B0  |.  F7D1          NOT ECX
004002B2  |.  2BF9          SUB EDI,ECX
004002B4  |.  56            PUSH ESI
004002B5  |.  8BC1          MOV EAX,ECX
004002B7  |.  8BF7          MOV ESI,EDI
004002B9  |.  8B7C24 10     MOV EDI,DWORD PTR SS:[ESP+10]
004002BD  |.  C1E9 02       SHR ECX,2
004002C0  |.  F3:A5         REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
004002C2  |.  8BC8          MOV ECX,EAX
004002C4  |.  83E1 03       AND ECX,3
004002C7  |.  F3:A4         REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
004002C9  |.  5E            POP ESI
004002CA  |.  5F            POP EDI
004002CB  \.  C3            RETN
2009-4-10 10:49
0
游客
登录 | 注册 方可回帖
返回
//