首页
社区
课程
招聘
[原创]趣味crackme try it!
发表于: 2008-4-25 00:24 46056

[原创]趣味crackme try it!

2008-4-25 00:24
46056

This is my first crackme.
It is an interesting cm.
The Algorithm is very simple.
You can easily to execut AfxMessageBox("congratulations!you win"),
but why AfxMessageBox doesn't work for you sometimes?
Is there any bug with this cm?

good luck for you ,try please!

If there has any errols with this cm , sorry for it ,message me please,I will modify it soon .


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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (56)
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
2
765432133333P3@
2008-4-25 12:36
0
雪    币: 10885
活跃值: (3288)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
3
厉害啊
算法很简单,估计ccfer几下就看出来了

key 可以有很多个,其中某些数字是固定的

希望有朋友能分析下 为什么使用错误的key时 执行AfxMessageBox()  却不弹出方框?
2008-4-25 13:26
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
4
ccfer简直就是现代版的独孤求败
2008-4-25 13:28
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
每次都之抛个 KEY 出来,不来点教程,真是的
2008-4-25 13:35
0
雪    币: 246
活跃值: (23)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
X975311X
X为任意值
2008-4-25 13:40
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
7
其实我是随便乱输的就过了,你试试这个都可以:76543210
2008-4-25 13:52
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
  为什么我满键盘的乱输入都不正确呢?奇怪
2008-4-25 14:47
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
可怕

晕死
luck is the most important thing.

1234567 时AfxMessageBox ...不起作用
2008-4-25 15:22
0
雪    币: 10885
活跃值: (3288)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
10
算法简单啊
你们比较下你们输入的正确注册码
看看 有什么规律
2008-4-25 15:30
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
看了下
可能是因为call AfxMessageBox 前的參數 錯誤
改好的
00401C2D   .  B9 88FE1200  mov     ecx, 12FE88              《---就是这 本来是mov ecx,dword ptr [ebp-04] 运行时的运算使他有所更改
00401C32      E8 6B050000  call    <jmp.&MFC42.#1200_AfxMessageBox>
00401C37   .  5F           pop     edi
00401C38   .  5E           pop     esi
00401C39   .  5B           pop     ebx
00401C3A   .  8BE5         mov     esp, ebp
00401C3C   .  5D           pop     ebp
00401C3D   .  C3           retn

偶查看了下
在我机子上改成这样正常了

不保证通用性

B9 88 FE 12 00 E8 6B 05 00 00 5F 5E 5B 8B E5 5D C3
上传的附件:
2008-4-25 15:33
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
相連數字

偶该的传了楼上
2008-4-25 15:34
0
雪    币: 10885
活跃值: (3288)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
13
[QUOTE=lunglungyu;445522]看了下
可能是因为call AfxMessageBox 前的參數 錯誤
改好的
00401C2D   .  B9 88FE1200  mov     ecx, 12FE88              《---就是这 本来是mov ecx,dword ptr [ebp-04] 运行时的运算使他有...[/QUOTE]

分析的对,就是这里被改掉了
为什么那个参数改了就没弹出方框了呢,那个参数的值与被改后的值有什么联系吗,他们是怎么来的?
希望写出破文啊

算法嘛,我中间加了点垃圾代码,来影响大家追算法的思路。
其实很简单的,就是在排序 呵呵!
另外有没觉得程序可能存在buffer overflow ?
原本设计思想利用bufferoverflow影响程序执行流程
后来想想还是先保留。

要出差了,等回来我把代码贴上来
2008-4-25 16:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
稍微勤劳点,跟进AfxMessageBoxA就发现了...

73D8DDF5 >  8B4424 08       mov     eax, dword ptr [esp+8]
73D8DDF9    85C0            test    eax, eax
73D8DDFB    56              push    esi
73D8DDFC    8BF1            mov     esi, ecx    <=====ECX放到了ESI
73D8DDFE    75 08           jnz     short 73D8DE08
73D8DE00    E8 D1A40300     call    #1168_AfxGetModuleState
73D8DE05    8B40 10         mov     eax, dword ptr [eax+10]
73D8DE08    85F6            test    esi, esi
73D8DE0A    75 04           jnz     short 73D8DE10
73D8DE0C    33C9            xor     ecx, ecx
73D8DE0E    EB 03           jmp     short 73D8DE13
73D8DE10    8B4E 20         mov     ecx, dword ptr [esi+20]  <====这个值处理后返回给ECX
73D8DE13    FF7424 10       push    dword ptr [esp+10]
73D8DE17    50              push    eax
73D8DE18    FF7424 10       push    dword ptr [esp+10]
73D8DE1C    51              push    ecx    <===ECX入栈
73D8DE1D    FF15 B065DD73   call    dword ptr [<&USER32.MessageBoxA>]     ; USER32.MessageBoxA
73D8DE23    5E              pop     esi
73D8DE24    C2 0C00         retn    0C

那个放到ecx的值X  其实[x + 20]的值就是父对话框的句柄,你放错了值,当然弄不出对话框.
2008-4-25 17:21
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
有点意思!
呵呵
2008-4-28 11:08
0
雪    币: 10885
活跃值: (3288)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
16
[QUOTE=faintaaaa;445570]稍微勤劳点,跟进AfxMessageBoxA就发现了...

73D8DDF5 >  8B4424 08       mov     eax, dword ptr [esp+8]
73D8DDF9    85C0            test    eax, eax
73D8DDFB...[/QUOTE]

分析的很好!感谢!

算法:ABCDEFGH->AGFEDCBH->GFEDCB
从小到大排列,给出的key为交换的序号(这中间为了扰乱视听,我把这些字符无规律的排列了下)

messagebox前的参数是被子函数fun2的地址覆盖了,本来想覆盖fun1的返回地址的.

fu2里本来想写带代码给程序自身加密的,后来就写了个demo.

算法里有几处判断wrong key 全都是无用的,只要某一处满足了前面自然满足.这是为了扰乱思路的.

等回家了把代码放上.

下次有空了来个难点的 ,主要在算法和代码跟踪上加难度.
难度主要加在迷惑跟踪者上面.

感谢大家的分析!
2008-4-28 13:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
看不懂
2008-4-28 21:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
[QUOTE=;]...[/QUOTE]

在找7位数 AfxMessageBox错误注册信息  不弹出的规律.......

只要连续的数字 没几个有弹出MessageBox的
2008-4-29 11:23
0
雪    币: 10885
活跃值: (3288)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
19
是这样的,key必须正确才能弹消息,key不正确时messagebox 参数就被修改了

而key要正确 那里面的654321就不能动
2008-4-29 15:31
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
20
你说的不对吧,745361不是也可以吗,并非一定654321
看6楼的
2008-4-29 15:47
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
21
东方不败
2008-4-29 15:52
0
雪    币: 10885
活跃值: (3288)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
22
6楼的注册码是对的

我做算法时 也是按简单的思路做的

6楼的 的确给我了个提醒 我没考虑到

原本我以为就是654321的呵呵

我排序这样做的 比如key时654321 那么我就把要排序的串
这么处理 比如待排序的为gfedcb 那么我就把第6位与第1位交换 再把第5位与第2位交换 再把第4位与第3位交换

745361 不对哦

程序还有个bug当输入7个0时 程序会发生异常 退出 ,还好没报错,sorry.
2008-4-29 16:09
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
23
那你的654321也不对哦...
2008-4-29 16:49
0
雪    币: 10885
活跃值: (3288)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
24
晕了 直接把745361填进去了,
x745361是对的 sorry
2008-4-29 16:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
算法是从哪里开始的?我怎么找不到啊,谁能告诉我啊
2008-5-3 17:54
0
游客
登录 | 注册 方可回帖
返回
//