能力值:
( LV15,RANK:2473 )
2 楼
765432133333P3@
能力值:
(RANK:520 )
3 楼
厉害啊
算法很简单,估计ccfer几下就看出来了
key 可以有很多个,其中某些数字是固定的
希望有朋友能分析下 为什么使用错误的key时 执行AfxMessageBox() 却不弹出方框?
能力值:
(RANK:1130 )
4 楼
ccfer简直就是现代版的独孤求败
能力值:
( LV3,RANK:30 )
5 楼
每次都之抛个 KEY 出来,不来点教程,真是的
能力值:
( LV6,RANK:90 )
6 楼
X975311X
X为任意值
能力值:
( LV15,RANK:2473 )
7 楼
其实我是随便乱输的就过了,你试试这个都可以:76543210
能力值:
( LV3,RANK:30 )
8 楼
高
为什么我满键盘的乱输入都不正确呢?奇怪
能力值:
( LV4,RANK:50 )
9 楼
可怕
晕死
luck is the most important thing.
1234567 时AfxMessageBox ...不起作用
能力值:
(RANK:520 )
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
上传的附件:
能力值:
( LV4,RANK:50 )
12 楼
相連數字
偶该的传了楼上
能力值:
(RANK:520 )
13 楼
[QUOTE=lunglungyu;445522]看了下
可能是因为call AfxMessageBox 前的參數 錯誤
改好的
00401C2D . B9 88FE1200 mov ecx, 12FE88 《---就是这 本来是mov ecx,dword ptr [ebp-04] 运行时的运算使他有...[/QUOTE]
分析的对,就是这里被改掉了
为什么那个参数改了就没弹出方框了呢,那个参数的值与被改后的值有什么联系吗,他们是怎么来的?
希望写出破文啊 算法嘛,我中间加了点垃圾代码,来影响大家追算法的思路。
其实很简单的,就是在排序 呵呵!
另外有没觉得程序可能存在buffer overflow ?
原本设计思想利用bufferoverflow影响程序执行流程
后来想想还是先保留。
要出差了,等回来我把代码贴上来
能力值:
( 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]的值就是父对话框的句柄,你放错了值,当然弄不出对话框.
能力值:
( LV2,RANK:10 )
15 楼
有点意思!
呵呵
能力值:
(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 全都是无用的,只要某一处满足了前面自然满足.这是为了扰乱思路的.
等回家了把代码放上.
下次有空了来个难点的 ,主要在算法和代码跟踪上加难度.
难度主要加在迷惑跟踪者上面.
感谢大家的分析!
能力值:
( LV2,RANK:10 )
17 楼
看不懂
能力值:
( LV2,RANK:10 )
18 楼
[QUOTE=;]...[/QUOTE]
晕
在找7位数 AfxMessageBox错误注册信息 不弹出的规律.......
只要连续的数字 没几个有弹出MessageBox的
能力值:
(RANK:520 )
19 楼
是这样的,key必须正确才能弹消息,key不正确时messagebox 参数就被修改了
而key要正确 那里面的654321就不能动
能力值:
( LV15,RANK:2473 )
20 楼
你说的不对吧,745361不是也可以吗,并非一定654321
看6楼的
能力值:
(RANK:1060 )
21 楼
东方不败
能力值:
(RANK:520 )
22 楼
6楼的注册码是对的
我做算法时 也是按简单的思路做的
6楼的 的确给我了个提醒 我没考虑到
原本我以为就是654321的呵呵 我排序这样做的 比如key时654321 那么我就把要排序的串
这么处理 比如待排序的为gfedcb 那么我就把第6位与第1位交换 再把第5位与第2位交换 再把第4位与第3位交换
745361 不对哦
程序还有个bug当输入7个0时 程序会发生异常 退出 ,还好没报错,sorry.
能力值:
( LV15,RANK:2473 )
23 楼
那你的654321也不对哦...
能力值:
(RANK:520 )
24 楼
晕了 直接把745361填进去了,
x745361是对的 sorry
能力值:
( LV2,RANK:10 )
25 楼
算法是从哪里开始的?我怎么找不到啊,谁能告诉我啊