能力值:
( LV2,RANK:10 )
2 楼
我想问下这个Crackme是什么壳啊?
能力值:
( LV2,RANK:10 )
3 楼
PEID查不出来,但却能脱下来。。。
能力值:
( LV8,RANK:130 )
4 楼
用条件断点,当文本为"注册码错误"时断,或是lstrlen中字符为你输入的注册码时下断
返回地址: 0045F4BD 函数名称: lstrlen(KERNEL32.dll)
lstrlen: 获取字符串的长度
lpString="7979797979"
lstrlen返回值: 0x0000000A
返回地址: 0046338E 函数名称: SetWindowTextA(USER32.dll)
SetWindowTextA: 设置窗口的标题文字或控件的内容
hwnd=0x002803C4
lpString="注册码错误!"
SetWindowTextA返回值: 0x00000001(NULL表示失败) 返回地址: 00404317 函数名称: SysAllocString(OLEAUT32.dll)
SysAllocString: 创建一个BSTR字符串
lpString="VBScript"
SysAllocString返回值: 0x00159ECC
返回地址: 00404317 函数名称: SysAllocString(OLEAUT32.dll)
SysAllocString: 创建一个BSTR字符串
lpString="
Function Getcpuid()
Dim cpuSet,cpu
Set cpuSet = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_Processor")
For Each cpu In cpuSet
getcpuid=cpu.ProcessorId
exit for
Next
end Function"
SysAllocString返回值: 0x0015B274
能力值:
( LV2,RANK:10 )
5 楼
用条件断点,当文本为"注册码错误"时断,或是lstrlen中字符为你输入的注册码时下断
怎么断的?????????????
能力值:
( LV2,RANK:10 )
6 楼
断不下~~~~~~~~~~ 头疼./././.
能力值:
( LV2,RANK:10 )
7 楼
只能爆破
上传的附件:
能力值:
( LV2,RANK:10 )
8 楼
楼上厉害啊,能告诉下咋弄的不
能力值:
( LV2,RANK:10 )
9 楼
兄弟能透露点吗》
能力值:
(RANK:215 )
10 楼
用softsnop0.3跑,跟死循环似的,看不到机器码,任意输入注册码提示成功.
0.4跑注册码错误.
能力值:
( LV8,RANK:130 )
11 楼
这个crackme比较特殊的地方,是它用标签SetWindowTextA提示信息,但它在程序内部又不停的调用SetWindowTextA来显示"机器码:","注册码:"字符,所以与一般的crackme有点不一样。
不过,用OD条件断点应该没有什么问题,晚上有空试一下。
能力值:
(RANK:215 )
12 楼
是这样,是不是用了皮肤,感觉象E语言结果不是.
回头学习下条件断点的用法.
softsnoop,好东西啊.
能力值:
( LV9,RANK:180 )
13 楼
算法应该是E写的
序号字符串比对处 :
00401D00 50 push eax
00401D01 90 nop
00401D02 90 nop
00401D03 90 nop
00401D04 FF75 F0 push dword ptr [ebp-10]
00401D07 E8 C2FDFFFF call 00401ACE
00401D0C 83C4 08 add esp, 8
00401D0F 83F8 00 cmp eax, 0
LZ的'3FEBF9FF00000F12'
试打 0V2e2L2I2e0f2e2e0W0W0W0W0W2e0X0U
能力值:
( LV8,RANK:130 )
14 楼
大牛出手,不用再试了
能力值:
( LV2,RANK:10 )
15 楼
到低应该怎么来破呢。。谁能把过程说清楚些
能力值:
( LV2,RANK:10 )
16 楼
不知道从何下手 给点提示吧.........
能力值:
( LV9,RANK:180 )
17 楼
00401C88 B8 E1FE4600 mov eax, 0046FEE1 ; ASCII "01234....
00401C8D 8945 F8 mov [ebp-8], eax
00401C90 8D45 F8 lea eax, [ebp-8]
00401C93 50 push eax
00401C97 8D45 FC lea eax, [ebp-4]
00401C9A 50 push eax
00401C9F E8 47F5FFFF call 004011EB ;算法
00401CA4 8945 F4 mov [ebp-C], eax ;eax指向算得的结果
上面算得的结果需等于机器码字符串
00401D00 50 push eax
00401D04 FF75 F0 push dword ptr [ebp-10]
00401D07 E8 C2FDFFFF call 00401ACE ;比对字符串
00401D0C 83C4 08 add esp, 8
00401D0F 83F8 00 cmp eax, 0
算法有兴趣的自己跟入
算法:
注册码字符串每2byte为一组
idxA = IdxOfTable(Char[0])
idxB = IdxOfTable(Char[1])
x:= idxB mod 8
y:= idxB div 8
Value:= x xor (idxA+TableLen*y) = x xor (idxA+3E*y)
Value:= byte(Value)