首页
社区
课程
招聘
[原创]再来一个简单的KEYGEN ME
发表于: 2010-3-13 21:10 10819

[原创]再来一个简单的KEYGEN ME

2010-3-13 21:10
10819
  一个简单的KEYGEN ME,从以前电脑报上一道题目做出来的,非常简单。懒人做出来的程序都是这种特性,啥事都让别人做,做好了通知我就行了!
  本KEYGEN ME用来提高信心,抚慰那些被打击过的人们……

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (30)
雪    币: 695
活跃值: (25)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
大牛的沙发,我又来坐啦~~ 如果我没看错的话,这个cm借尸还魂了啊~~
上传的附件:
2010-3-13 21:59
0
雪    币: 424
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
我开始开了hideOD居然就被anti掉了555= =
居然把数据往Explorer.exe里面写唉
2010-3-13 22:26
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
4
没有anti-
2010-3-13 22:48
0
雪    币: 424
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
hideOD劫持了进程的枚举那一段,于是就悲剧了= =
2010-3-13 22:59
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
6
那是,你不让别人帮忙干活了,哪能坐享其成呢
2010-3-13 23:09
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
    00401794   .  68 4C304000   push    0040304C                         ;  呵呵,厉害啊,你成功了!

          004017B4      68 64304000   push    00403064                         ;  加油,还得努力!

                                          把  第二个push  改为第一个!  

哈哈 开玩笑 !....  刚学 汇编 等等仔细研究!...
2010-3-14 00:21
0
雪    币: 65
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
不知道各位大侠是怎么在Explorer.exe里调试从程序启动的线程?是附加么?还是其他办法,我附加设断居然不行。。。
2010-3-14 07:25
0
雪    币: 424
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
9
不用调,直接把它注入进去的那段不长的代码用ida看看就行了
2010-3-14 11:18
0
雪    币: 287
活跃值: (102)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
381654729
2010-3-14 12:18
0
雪    币: 119
活跃值: (10)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
11
抚慰那些被打击过的人们
发现看了这个CM更受打击,亟待提高啊。。
2010-3-14 20:21
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
主要的部分都找全了,但还是弄不好呢。

这里openprocess一直失败,下面还建立了远程线程,但是我这里都失败了,是不是还有什么反调试的东西?

004012A4  |.  8B8D CCFEFFFF mov     ecx, dword ptr [ebp-134]
004012AA  |.  51            push    ecx                              ; /ProcessId
004012AB  |.  6A 00         push    0                                ; |Inheritable = FALSE
004012AD  |.  68 FF0F1F00   push    1F0FFF                           ; |Access = PROCESS_ALL_ACCESS
004012B2  |.  FF15 18204000 call    dword ptr [<&KERNEL32.OpenProces>;

然后,下面先对输入数据进行初步检查,之后应该又把数据传给远程线程了吧?这里看出了两种错误跳转 1.长度限制;2.只能是数字串。然后如果输入数字段在这里在F9运行时不会出现错误提示的,但是不加调试器运行输入数字会出现错误提示。所以猜测在远程线程里应该也有发回来的消息,并且openprocess不成功是有反调试吧!

00401956   .  E8 09030000   call    <jmp.&MFC42.#CWnd::UpdateData_63>;  获取数据
0040195B   .  8B7E 60       mov     edi, dword ptr [esi+60]          ;  字符串
0040195E   .  8B57 F8       mov     edx, dword ptr [edi-8]           ;  长度
00401961   .  83FA 03       cmp     edx, 3
00401964   .  0F8C B2000000 jl      00401A1C                         ;  小于3个跳转
0040196A   .  83FA 31       cmp     edx, 31
0040196D   .  0F8F A9000000 jg      00401A1C                         ;  大于31个跳转
00401973   .  33C9          xor     ecx, ecx
00401975   .  85D2          test    edx, edx                         ;  为0跳转
00401977   .  7E 14         jle     short 0040198D
00401979   >  8A040F        mov     al, byte ptr [edi+ecx]           ;  do
0040197C   .  3C 30         cmp     al, 30
0040197E   .  0F8C 82000000 jl      00401A06                         ;  小于‘0’跳转
00401984   .  3C 39         cmp     al, 39
00401986   .  7F 7E         jg      short 00401A06                   ;  大于‘9’跳转
00401988   .  41            inc     ecx
00401989   .  3BCA          cmp     ecx, edx
0040198B   .^ 7C EC         jl      short 00401979                   ;  while 只能是数字
0040198D   >  53            push    ebx
0040198E   .  55            push    ebp
0040198F   .  E8 94020000   call    <jmp.&MFC42.#AfxGetModuleState_1>;  获得模块版本?
00401994   .  8B50 04       mov     edx, dword ptr [eax+4]
00401997   .  83C9 FF       or      ecx, FFFFFFFF
0040199A   .  33C0          xor     eax, eax
0040199C   .  F2:AE         repne   scas byte ptr es:[edi]
0040199E   .  F7D1          not     ecx                              ;  取字符串长+1
004019A0   .  2BF9          sub     edi, ecx
004019A2   .  8BC1          mov     eax, ecx
004019A4   .  8BF7          mov     esi, edi
004019A6   .  8BBA D8000000 mov     edi, dword ptr [edx+D8]          ;  取上次字符串
004019AC   .  C1E9 02       shr     ecx, 2
004019AF   .  F3:A5         rep     movs dword ptr es:[edi], dword p>;  这次字符+\0写入
…………………………………………
004019D5   .  8B8E C8000000 mov     ecx, dword ptr [esi+C8]          ;  ecx参数
004019DB   .  8B97 CC000000 mov     edx, dword ptr [edi+CC]          ;  edx函数
004019E1   .  8B68 04       mov     ebp, dword ptr [eax+4]
004019E4   .  8B83 DC000000 mov     eax, dword ptr [ebx+DC]          ;  eax进程

根据openprocess那里找到了写入远程线程的buffer,第一句的push指令在OD里面只有刚跳转过去时能看到,如果查看上面的代码,这句就变成了别的代码,这是花指令么? 这里的代码还没看完,静态分析还有不太明白的,这个远程线程开始启动之后寄存器的状态是什么样的? 他用到了ebx,esi,edi作为变量在下面通过他们的寻址找到了一些函数。这里不太明白呢。
003B38B0    55              push    ebp
003B38B1    8BEC            mov     ebp, esp
003B38B3    83EC 18         sub     esp, 18                         分配DWORD*6
003B38B6    53              push    ebx
003B38B7    56              push    esi
003B38B8    57              push    edi                                push*3
003B38B9    C745 FC 0000000>mov     dword ptr [ebp-4], 0
003B38C0    C745 F8 0000000>mov     dword ptr [ebp-8], 0
003B38C7    C745 F4 0000000>mov     dword ptr [ebp-C], 0
003B38CE    C745 F0 0000000>mov     dword ptr [ebp-10], 0
003B38D5    C745 E8 0000000>mov     dword ptr [ebp-18], 0
003B38DC    8B45 08         mov     eax, dword ptr [ebp+8]
003B38DF    8945 EC         mov     dword ptr [ebp-14], eax
003B38E2    8B4D EC         mov     ecx, dword ptr [ebp-14]
003B38E5    C741 04 0000000>mov     dword ptr [ecx+4], 0
003B38EC    8B55 EC         mov     edx, dword ptr [ebp-14]
003B38EF    8B02            mov     eax, dword ptr [edx]
003B38F1    50              push    eax
003B38F2    6A 00           push    0
003B38F4    6A 04           push    4
003B38F6    8B4D EC         mov     ecx, dword ptr [ebp-14]
003B38F9    FF51 0C         call    dword ptr [ecx+C]
………………………………
003B3A3F    8B55 EC         mov     edx, dword ptr [ebp-14]
003B3A42    8B42 08         mov     eax, dword ptr [edx+8]
003B3A45    50              push    eax
003B3A46    8B4D EC         mov     ecx, dword ptr [ebp-14]
003B3A49    FF51 18         call    dword ptr [ecx+18]
003B3A4C    33C0            xor     eax, eax
003B3A4E    5F              pop     edi
003B3A4F    5E              pop     esi
003B3A50    5B              pop     ebx
003B3A51    8BE5            mov     esp, ebp
003B3A53    5D              pop     ebp
003B3A54    C2 0400         retn    4

最后这里是失败与成功的两个对话框,把失败那里的push改成跳转到成功就…… 这算是暴力破解吧
00401790   .  6A 00         push    0                                ;  成功
00401792   .  6A 00         push    0
00401794   .  68 4C304000   push    0040304C
00401799   .  E8 A8040000   call    <jmp.&MFC42.#CWnd::MessageBoxA_4>
…………………………
004017B0      6A 00         push    0                                ;  失败
004017B2   .  6A 00         push    0
004017B4   .  68 64304000   push    00403064
004017B9   .  E8 88040000   call    <jmp.&MFC42.#CWnd::MessageBoxA_4>



最后总结:通过这些天的努力,又晋升正式会员后第一次分析crackme,感觉这个还是很有难度,还有很多不懂得东西,要努力学习啊!
上传的附件:
2010-3-14 22:22
0
雪    币: 78
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
每次都来试每次都过不去 努力中!
2010-3-15 00:16
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
14
ccfer说他饿了
2010-3-15 00:27
0
雪    币: 210
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
不太懂,不过胡乱动了一下,还是可以爆的
2010-3-15 00:58
0
雪    币: 119
活跃值: (10)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
16
最后这里是失败与成功的两个对话框,把失败那里的push改成跳转到成功就…… 这算是暴力破解吧

我觉得不算!只是让现实“成功”的字符了,但其实没有找到关键的位置
和把这句004017B4   .  68 64304000   push    00403064改成push    0040304C的效果一样。。现实成功的失败而已。

ccfer说他饿了

sessiondiy大总喜欢来点冷笑话.. 也不给我们小菜点播一二。。
2010-3-15 11:51
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
17
注入IE的Crackme, 没记错的话LZ以前有在这里玩过(不是写)
可以找找他的帖子. 看有没有帮助.
很久了....
2010-3-15 12:09
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
18
呵~S大侠记性果然好啊~原本想注入到WINLOGON中的,考虑到通用性,还是注入到EXPLORER中算了。
2010-3-15 12:24
0
雪    币: 261
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
19
坐下来看好戏!
2010-3-15 15:16
0
雪    币: 211
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
004019A6   .  8BBA D8000000 mov     edi, dword ptr [edx+D8]

就发现这里,也没发现什么跳转啊
2010-3-15 15:37
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
21
你进步太快了
那时你真正自己下海追踪一次
现在都自己写了.
2010-3-15 17:01
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
22
呵呵,进步也离不开大侠的关心与指点啊,以前什么也不知道,现在其实不知道的更多,像某个名人讲的话:圆圈变大的时候,就是无知被扩大的时候……
2010-3-15 17:35
0
雪    币: 119
活跃值: (10)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
23
圆圈变大的时候,就是无知被扩大的时候……


很经典......
2010-3-15 18:23
0
雪    币: 136
活跃值: (1480)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
24
那位大大破解了,可以详细讲一下算法吗?这个crackme有难度。。
2010-3-15 18:59
0
雪    币: 262
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
25
膜拜各位牛人



10楼有答案
2010-3-15 19:43
0
游客
登录 | 注册 方可回帖
返回
//