首页
社区
课程
招聘
[转帖]貌似西电某比赛中的两个破解程序
发表于: 2011-10-8 19:15 40778

[转帖]貌似西电某比赛中的两个破解程序

2011-10-8 19:15
40778
收藏
免费 6
支持
分享
最新回复 (64)
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
看看我有没有太阳
2011-10-9 10:47
0
雪    币: 435
活跃值: (1282)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
27
[QUOTE=uing;1007461]果然你也被程序绕进去了 O(∩_∩)O哈哈~

类似这样的KEY,都不是正确的[/QUOTE]

lz你是对的 要加参数VERYEASY
不过这提示不够明确啊,而且容易看漏
我再找找还有没别的合法的key
2011-10-9 10:47
0
雪    币: 435
活跃值: (1282)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
28
pcayhyly
这次能穷举出来的都不多了,都没什么意义 看起来
2011-10-9 11:08
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
我在OD中尝试在“确定”按钮上设置消息断点,但是却出现了下面的情况,麻烦各位牛人们看看是怎么回事!
“无法读取调试进程的内存,位于FFFF0619的断点已被删除”
2011-10-9 12:47
0
雪    币: 85
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
有看出具体的算法么?我是没看出算法什么的...
2011-10-11 13:13
0
雪    币: 85
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
你说的是破解1还是破解2?
2011-10-11 13:13
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
是破解1,你知道这是怎么回事吗?
2011-10-11 13:27
0
雪    币: 85
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
我记得这个程序要处理一点东西,不然会跳飞...而且一开始就F2下断的话,会断不下来的说...
2011-10-11 13:40
0
雪    币: 403
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
楼主是用的什么方法?  我用的是硬件断点
2011-10-11 13:51
0
雪    币: 85
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
OD加载后直接F9,在4013EF,F7进去,到401000,在40100C处看到push 00401170,在401170下个F2,重新载入,一路F9,记住按了几次F9后跳飞,然后重载F9到跳飞前那停下,F8到4011B9,call 4011E0,在4011E0下断,然后nop掉401201~401215,然后重载就不会飞了,按钮在401230,401289有个比较,401281 call 401140,进去,到40115D......
2011-10-11 14:25
0
雪    币: 167
活跃值: (1574)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
36
大s 有三个太阳了 哦也看一下
2011-10-11 15:11
0
雪    币: 435
活跃值: (1282)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
37
CreateThread开了一个线程做内存校验 发现断点 就会退出
把这个线程挂起 或者直接结束掉就行
2011-10-11 19:33
0
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
这说的是http://bbs.pediy.com/showthread.php?t=131936&page=2么?
2011-10-12 00:09
0
雪    币: 435
活跃值: (1282)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
39
.text:00401238                 mov     dl, [eax]
.text:0040123A                 mov     bl, [esi]
.text:0040123C                 mov     cl, dl
.text:0040123E                 cmp     dl, bl
.text:00401240                 jnz     short loc_401260
.text:00401242                 test    cl, cl
.text:00401244                 jz      short loc_40125C
.text:00401246                 mov     dl, [eax+1]
.text:00401249                 mov     bl, [esi+1]
.text:0040124C                 mov     cl, dl
.text:0040124E                 cmp     dl, bl
.text:00401250                 jnz     short loc_401260
.text:00401252                 add     eax, 2
.text:00401255                 add     esi, 2
.text:00401258                 test    cl, cl
.text:0040125A                 jnz     short loc_401238

判断参数 是不是 VERYEASY
.text:00401289                 mov     ecx, [esp+4Ch+arg_4]
.text:0040128D                 lea     esi, [esp+ebx+4Ch+var_34]
.text:00401291                 movsx   eax, byte ptr [esi+ebp]
.text:00401295                 movsx   edx, byte ptr [ecx]
.text:00401298                 sub     eax, edx
.text:0040129A                 mov     ecx, 1Ah
.text:0040129F                 add     eax, 1Ah
.text:004012A2                 cdq
.text:004012A3                 idiv    ecx
.text:004012A5                 push    edx
.text:004012A6                 call    sub_401360
.text:004012AB                 mov     cl, [esi]
.text:004012AD                 add     esp, 4
.text:004012B0                 cmp     al, cl
.text:004012B2                 jnz     short loc_401304
.text:004012B4                 lea     edi, [esp+4Ch+var_34]
.text:004012B8                 or      ecx, 0FFFFFFFFh
.text:004012BB                 xor     eax, eax
.text:004012BD                 inc     ebx
.text:004012BE                 repne scasb
.text:004012C0                 not     ecx
.text:004012C2                 dec     ecx
.text:004012C3                 cmp     ebx, ecx
.text:004012C5                 jl      short loc_401289


key8字节,逐字节减去参数首字节V,加26(防止负数)再对26取模,再加A,结果等于ANLJSJWJ,成功
2011-10-12 00:54
0
雪    币: 435
活跃值: (1282)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
40
还以为是新的 原来是半年前的了 哎
2011-10-12 01:02
0
雪    币: 85
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41
感谢算法...程序大致是大半年前的吧,某群的某人也是在参加什么比赛中的CM程序,当时我用IDA的时候就看到在40104D有个cmp eax,2;然后当初我的思路就是把40101E的mov eax, [esp+1008h+arg_0]改成mov eax,2;然后跟出一个key应付比赛....
KG不是很会写,大致描述下:
0 1 2 3 4 5 6 7
< I G E N E R E
V c a _ h _ l _
p } { y   y   y

每位取一个字符进行排列组合就是key了.
2011-10-12 07:55
0
雪    币: 243
活跃值: (27)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
42
我是来看太阳地
2011-10-12 09:32
0
雪    币: 72
活跃值: (60)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
43
学习了,看看太阳
2011-10-12 10:14
0
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
hah ,这太阳要多久才能升上去
2011-10-12 14:02
0
雪    币: 242
活跃值: (473)
能力值: ( LV11,RANK:188 )
在线值:
发帖
回帖
粉丝
45
:S 被分析了这么多了,我只在末尾偷偷献个丑:
程序1的效验是从内存中读取PE头得到第一个区段的地址和大小作CRC的,正确CRC的值保存在NT_header的前4个字节。
程序2只判断了base64后的字符串前12个字节,所以可以在后面一直添东西还是正确的。

程序3分成带一个参数和不带参数二种运行方式
想要让程序给你说 Right和Wrong的话,就不要带参数运行时输入:
ILOVESYC
49 4c 4f 56 45 53 59 43
其是和一个字符串比较的
for i=0~8, 需要=="ADGNWKQU"
(((str[i]- 0x2f)% 0x1a)+ 'A'
所以可以输入的字符串是要按照ADGNWKQU减去0x2f后的值,加上0x2f以及0x1a的几倍来得到的。也就是说可以变化的地方是0x1a的倍数,当然也可以是0倍,在字母和数字的结果中试几下后就找到这个有意思的彩蛋了。

在有二个参数时,判断参数不是VERYEASY直接输出Wrong!。
for Input[i]== "ANLJSJWJ"
((Input[i]- 0x56)% 0x1a)+ 'A'
对照上面那个全大写的字符串,把它们都用在大写字母间的表示出来是VIGENERE。google后瞧瞧我们得到了什么!它的加密算法的名字,Vigenère cipher :P
2011-10-12 23:33
0
雪    币: 85
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
感谢,又学习了...居然没发现维吉尼亚密码
2011-10-13 08:16
0
雪    币: 85
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
嗯,今天突然发现17853前面最多只能有4个0,0000017853就不能成功
2011-10-15 09:32
0
雪    币: 435
活跃值: (1282)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
48
getwindowtexta的参数count是10,算上结束符,有效字符数就是9,所以只要保证前九位合法,你可以在后面随便加。比如00001785300000
2011-10-15 17:14
0
雪    币: 221
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
49
听说S大出现了,特来膜拜。
2011-10-19 20:43
0
雪    币: 184
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
50
我是来看太阳的
2011-10-19 23:29
0
游客
登录 | 注册 方可回帖
返回
//