能力值:
( LV2,RANK:10 )
|
-
-
26 楼
看看我有没有太阳
|
能力值:
( LV13,RANK:388 )
|
-
-
27 楼
[QUOTE=uing;1007461]果然你也被程序绕进去了 O(∩_∩)O哈哈~
类似这样的KEY,都不是正确的[/QUOTE]
lz你是对的 要加参数VERYEASY
不过这提示不够明确啊,而且容易看漏
我再找找还有没别的合法的key
|
能力值:
( LV13,RANK:388 )
|
-
-
28 楼
pcayhyly
这次能穷举出来的都不多了,都没什么意义 看起来
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
我在OD中尝试在“确定”按钮上设置消息断点,但是却出现了下面的情况,麻烦各位牛人们看看是怎么回事!
“无法读取调试进程的内存,位于FFFF0619的断点已被删除”
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
有看出具体的算法么?我是没看出算法什么的...
|
能力值:
( LV2,RANK:10 )
|
-
-
31 楼
你说的是破解1还是破解2?
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
是破解1,你知道这是怎么回事吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
33 楼
我记得这个程序要处理一点东西,不然会跳飞...而且一开始就F2下断的话,会断不下来的说...
|
能力值:
( LV2,RANK:10 )
|
-
-
34 楼
楼主是用的什么方法? 我用的是硬件断点
|
能力值:
( 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......
|
能力值:
( LV9,RANK:250 )
|
-
-
36 楼
大s 有三个太阳了 哦也看一下
|
能力值:
( LV13,RANK:388 )
|
-
-
37 楼
CreateThread开了一个线程做内存校验 发现断点 就会退出
把这个线程挂起 或者直接结束掉就行
|
能力值:
( LV2,RANK:10 )
|
-
-
38 楼
这说的是http://bbs.pediy.com/showthread.php?t=131936&page=2么?
|
能力值:
( 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,成功
|
能力值:
( LV13,RANK:388 )
|
-
-
40 楼
还以为是新的 原来是半年前的了 哎
|
能力值:
( 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了.
|
能力值:
( LV3,RANK:20 )
|
-
-
42 楼
我是来看太阳地
|
能力值:
( LV7,RANK:100 )
|
-
-
43 楼
学习了,看看太阳
|
能力值:
( LV2,RANK:10 )
|
-
-
44 楼
hah ,这太阳要多久才能升上去
|
能力值:
( 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
|
能力值:
( LV2,RANK:10 )
|
-
-
46 楼
感谢,又学习了...居然没发现维吉尼亚密码
|
能力值:
( LV2,RANK:10 )
|
-
-
47 楼
嗯,今天突然发现17853前面最多只能有4个0,0000017853就不能成功
|
能力值:
( LV13,RANK:388 )
|
-
-
48 楼
getwindowtexta的参数count是10,算上结束符,有效字符数就是9,所以只要保证前九位合法,你可以在后面随便加。比如00001785300000
|
能力值:
( LV2,RANK:10 )
|
-
-
49 楼
听说S大出现了,特来膜拜。
|
能力值:
( LV2,RANK:10 )
|
-
-
50 楼
我是来看太阳的
|
|
|