首页
社区
课程
招聘
[原创]周末余庆节目 !
发表于: 2009-3-13 17:50 7690

[原创]周末余庆节目 !

2009-3-13 17:50
7690
很不容易才熬过了一周的忙碌工作时间!想必你的调试技术也生疏了不少了吧!发个KGME个大家练练手,是用Microsoft Visual Studio 2008 编写的,已经添加了独立运行库!无需VC 9.0运行环境以及.NET运行平台,大家尽可放心使用。算法是简单到不能再简单了,希望各位不要去爆破它。因为KGME的重点在于算法分析,所以没有做任何防破措施。还是那句老话“爆破KGME的人,那和欺负老弱妇孺没什么分别!”请尊重别人的劳动成果。本来用MFC编程就不容易了,况且编写KGME这些工作都等同于义务劳动(没有回报的)!最倒霉的是在VC 9里面画好界面写好代码,发个人家调试时才发现不能独立运行。在网上找了半天也没有找到解决的方法,后来又看到NOODBY发了个也是需要运行环境的。万不得已之下又到VC 6去重新写过一次,近日才重一位编程的牛人口中得知VC 9是可以完成独立编译的,几经转折才能完成这个作品。所以希望那些恐怖分子就不要下载了,免得浪费你的宝贵时间。一句 jmp xxx 就能搞定一切,实在太没意思了。 


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (21)
雪    币: 295
活跃值: (11)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
661-680-611-592
2009-3-13 20:29
0
雪    币: 201
活跃值: (269)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
3
800---520---432---712
2009-3-13 20:37
0
雪    币: 261
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
晕大了!这次编写失手了,算法存在漏洞!被楼上两位高手由漏洞跳穿过!
2009-3-13 21:01
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
5
我直接看到比较中出现明码了
2009-3-13 21:20
0
雪    币: 136
活跃值: (48)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
其实你就在VC2009 里面选择静态链接库编译方式 ,就可以生成独立运行的EXE,没那么复杂吧
2009-3-14 10:27
0
雪    币: 261
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
看来你也太神了吧!我这个根本就没你说的什么明码比较!它是一个方程来的你可把你看到的明码看那不能成功吗?真的可以那你真的神了!
2009-3-14 12:51
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
8
难道...天眼通练成了?
2009-3-14 12:53
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
9
嘿嘿,的确是看到明码了,不过不是一齐出现的,是一组一组分别出现的
2009-3-14 13:40
0
雪    币: 261
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
真的不知道你懂不懂啊!不懂就不要装懂,你看到的是比较的条件。如果只把条件写进去是不行的还要进行运算,你没看到发出注册码的人的最后一位都是用计算器算了算。什么明码你是有料的就发个图贴来看看,做人不要太想当然了!
2009-3-14 14:42
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
11
好吧,是我想的,OK-
2009-3-14 14:45
0
雪    币: 261
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
怎么了!要是你真的能拿出来我就向你道歉!要不我会觉的你只是瞎说!不要以为自己有几个精华就很了不起,雪上有太多没精华却是牛到不牛的人!你破的那些都只是一些很基础的而已,要是加了ANTI恐怕你连跑你都跑不起,世界的浩瀚不是你所能穹及的!要懂得什么是谦虚!
2009-3-14 15:28
0
雪    币: 295
活跃值: (11)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
13
我怎么没看到明码啊
反正我是算出来的
2009-3-14 15:28
0
雪    币: 347
活跃值: (30)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
14
本来还准备玩,一看方程俩字把我给吓回去了,无奈数学太烂,不敢玩
2009-3-14 15:30
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
15
下次不准说和算法有关的东西出来。。。。。。。
2009-3-14 16:07
0
雪    币: 423
活跃值: (11)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
16
楼主的防断组合很好,研究后收获很多,对我的断点体系的完善很有益。
我花了半小时才找到高效的断法:
0040D883  |.  56            push    esi                              ; /hWnd
0040D884  |.  FF15 A4434300 call    dword ptr [<&USER32.GetWindowTex>; \GetWindowTextLengthW
0040D88A  |.  8D48 01       lea     ecx, dword ptr [eax+1]
0040D88D  |.  51            push    ecx
0040D88E  |.  8B4D 10       mov     ecx, dword ptr [ebp+10]
0040D891  |.  50            push    eax
0040D892  |.  E8 3776FFFF   call    00404ECE
0040D897  |.  50            push    eax                              ; |Buffer
0040D898  |.  56            push    esi                              ; |hWnd
0040D899  |.  FF15 A8434300 call    dword ptr [<&USER32.GetWindowTex>; \GetWindowTextW

不问年少可能是研究下面的相似防断例子弄混了:

http://bbs.pediy.com/showthread.php?t=81522
【原创】一简单算法PbCrackME#1 

大家的目的都是交流提高技术,对程序有误解在所难免。
2009-3-15 20:19
0
雪    币: 261
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
17
其实也没有什么了,不过我到蛮好奇你的断是获取长度读吧!不过我这个代码里都没有什么要看长度的,除了开始的限制代码长读。这个在程序的整体中都没有出现?真的膜拜牛人!不过你也太看走眼了,能使控件消失又出现。那能是什么API呢?要不看看整体一般都会有SLEEP XX秒,还有如果你有了VC9.0 或是VC6.0环境,你就能连代码都看的清清楚楚。“不问”大概就看到代码吧!或许你从来都不看好编程学逆向,不过我可以说世事是双向的。编程久了你大概就知道编译器会把有用的代码放到那里,现在我基本都能找到大概的入口。其实我连一个断点的API都不回,要么F12,要么就看,不过是玩CM就F12 都不用了!
2009-3-15 22:02
0
雪    币: 295
活跃值: (11)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
18
你这个不太准确吧

真正消息处理函数在这啊

/*4016C0*/  PUSH EBP
/*4016C1*/  MOV EBP,ESP
/*4016C3*/  AND ESP,FFFFFFF8
/*4016C6*/  SUB ESP,20
/*4016C9*/  PUSH EBX
/*4016CA*/  PUSH EBP
/*4016CB*/  PUSH ESI
/*4016CC*/  PUSH EDI
/*4016CD*/  PUSH 1
/*4016CF*/  MOV EDI,ECX
/*4016D1*/  CALL cm2.0040876E
/*4016D6*/  LEA EBP,DWORD PTR DS:[EDI+120]
/*4016DC*/  MOV ESI,EBP
/*4016DE*/  CALL cm2.00401900
/*4016E3*/  TEST AL,AL
/*4016E5*/  JNZ cm2.00401839
/*4016EB*/  LEA ESI,DWORD PTR DS:[EDI+1CC]
/*4016F1*/  CALL cm2.00401900
/*4016F6*/  TEST AL,AL
/*4016F8*/  JNZ cm2.00401839
/*4016FE*/  LEA EBX,DWORD PTR DS:[EDI+224]
/*401704*/  MOV ESI,EBX
/*401706*/  CALL cm2.00401900
/*40170B*/  TEST AL,AL
/*40170D*/  JNZ cm2.00401839
/*401713*/  LEA ESI,DWORD PTR DS:[EDI+27C]
/*401719*/  CALL cm2.00401900
/*40171E*/  TEST AL,AL
/*401720*/  JNZ cm2.00401839
/*401726*/  MOV EBX,DWORD PTR DS:[EBX]
/*401728*/  PUSH EBX

另外 没看到什么防断体系啊?
2009-3-15 23:29
0
雪    币: 423
活跃值: (11)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
19
我是菜鸟一个,从没把自己当牛人。这题算法满复杂的,单用OD跟了三个多小时,感觉很吃力。
不过,隐约对动态调试有点感性认识了,但不是很清晰。

我用VC6.0。不过,编程这玩意,老不摸它就手生。只有需要写注册机时,才复习一下。不过自己编程确实很菜。现在忙着赚钱,更没有太多的精力和时间。

书呆彭的按钮方法我也看了,和小楼前辈的方法原理差不多。你想表达的意思我懂,和我说的意思差不多。
CRACK ME 只是练习而已,我做它总是假想不知道编程语言的情况下试图下断。道理我也不想多解释。研究过.NET的加密技术的人应该知道。这是为什么我练习动态调试的原因。
这处代码的功能是读取关键数据做全局变量。

我的下断好和坏,研究过.NET的加密技术的人最清楚。

cm2.0040D899
cm2.00401436                  
cm2.004087AF               
cm2.004016D1               

004016D1  |.  E8 98700000   call    0040876E
004016D6  |.  8DAF 20010000 lea     ebp, dword ptr [edi+120]
2009-3-16 10:42
0
雪    币: 1270
活跃值: (109)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
20
大家娱乐而已。
2009-3-16 15:57
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
21
有些人能看出明码也不是不可能的
就像三维立体图片,需要用特殊的方法才能看到效果
有些人也可以象看三维立体图片一样从二进制数据中看出特殊的视觉效果,这个难度比较大,不是谁都能做到的
2009-3-16 17:00
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
22
  呵呵,楼主说话太尖锐了,我承认我当时大意了,看到FPU里的数值时认为是明码比较。所以我的确是错了,我是初学者,说错话了很正常。我也没有因为拿了几个“精”就骄傲。
  科学是讲究实事求是,所以我会更谨慎,希望大家不要笑话。以下是这个CM的算法分析:
  设注册码为C1-C2-C3-C4(注册码应该为纯数字形式)
      则:
            1、 C1-208h应该小于FAh
            2、 480<C2<690
            3、 420<C3<612
            4、  C4<720
       比较条件为:
    C1*C1-C3*C3 == (C1-C3)*(C2+C4)
       简化后可得:
            C1+C3=C2+C4
      结合上面的限定条件,容易得出方程的解,我求的是正数,呵呵:
    800-685-600-715
2009-3-17 15:10
0
游客
登录 | 注册 方可回帖
返回
//