能力值:
( LV2,RANK:10 )
|
-
-
2 楼
听起来好像不错 也玩玩
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
var1和var2并非是恒定的,一个是真注册码,一个是你输入的伪注册码。
004026EF . 8D85 64FFFFFF lea eax, dword ptr [ebp-9C]
004026F5 . 50 push eax ; /var18
004026F6 . 8D4D C8 lea ecx, dword ptr [ebp-38] ; |
004026F9 . 51 push ecx ; |var28
004026FA . FF15 9C104000 call dword ptr [<&MSVBVM60.__vbaVarTs>; \__vbaVarTstNe
此处为关键比较
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
[QUOTE=zapline;483813]var1和var2并非是恒定的,一个是真注册码,一个是你输入的伪注册码。
004026EF . 8D85 64FFFFFF lea eax, dword ptr [ebp-9C]
004026F5 . 50 push eax ...[/QUOTE]
这个我是知道,也知道这里就是真假码对比的地方,可是
dword ptr [ebp-9C]和dword ptr [ebp-38]两处的值不是唯一的吗?望指教
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
dword ptr [ebp-9C]处的值是根据用户名计算出的注册码
dword ptr [ebp-38] 处的值是你输入的注册码
|
能力值:
( LV8,RANK:130 )
|
-
-
6 楼
[QUOTE=逍定;483848]这个我是知道,也知道这里就是真假码对比的地方,可是
dword ptr [ebp-9C]和dword ptr [ebp-38]两处的值不是唯一的吗?望指教[/QUOTE]
当然不是,给你的错觉可能与VB变量的特点有关系,例如:
004026DF > 89BD 6CFFFFFF mov dword ptr [ebp-94], edi
004026E5 . C785 64FFFFFF>mov dword ptr [ebp-9C], 8003
004026EF . 8D85 64FFFFFF lea eax, dword ptr [ebp-9C]
dword ptr [ebp-9C], 8003
vb变量存放在内存中时只少要用12个字节(即3个DWORD,有时会更长,如float),前一个DWORD说明变量的类型,像dword ptr [ebp-9C], 8003,说明这个变量是长整型,后面第8个字符后(即第3个DWORD)中才是具体的数值。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
[QUOTE=zapline;483855]dword ptr [ebp-9C]处的值是根据用户名计算出的注册码
dword ptr [ebp-38] 处的值是你输入的注册码[/QUOTE]
我跟踪过好几次了 应该没错的
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
这个我知道了,可是我菜鸟一个,找不到真码存在哪里...
能贴出真码的位置吗?
[QUOTE=红尘岁月;483856]当然不是,给你的错觉可能与VB变量的特点有关系,例如:
004026DF > 89BD 6CFFFFFF mov dword ptr [ebp-94], edi
004026E5 . C785 64FFFFFF>mov dword ptr [ebp-9C], 8003
004026EF . 8D85 64FFFFFF lea eax, dword ptr [ebp-9C]
dword ptr [ebp-9C], 8003
vb变量存放在内存中时只少要用12个字节(即3个DWORD,有时会更长,如float),前一个DWORD说明变量的类型,像dword ptr [ebp-9C], 8003,说明这个变量是长整型,后面第8个字符后(即第3个DWORD)中才是具体的数值。[/QUOTE]
这个,大大可以举个具体的例子吗?我还是不太懂...
PS:为什么dword ptr [ebp-9C], 8003就说明这个变量是长整型?
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
00401225 |. 68 80000000 push 80 ; /Count = 80 (128.)
0040122A |. 68 04314000 push CrackMe_.00403104 ; |Buffer = CrackMe_.00403104
0040122F |. 68 EC030000 push 3EC ; |ControlID = 3EC (1004.)
00401234 |. FF75 08 push [arg.1] ; |hWnd = 00270744 ('Coded by [HappyTown]',class='#32770')
00401237 |. E8 FC000000 call <jmp.&user32.GetDlgItemTextA> ; \GetDlgItemTextA
0040123C |. 8945 F4 mov [local.3], eax
0040123F |. 837D F4 04 cmp [local.3], 4
00401243 |. 73 04 jnb short CrackMe_.00401249
00401245 |. C9 leave
00401246 |. C2 1000 retn 10
00401249 |> 68 04314000 push CrackMe_.00403104 ; ASCII "2131243"
0040124E |. E8 E3FDFFFF call CrackMe_.00401036
00401253 |. 6A 01 push 1
00401255 |. 50 push eax
00401256 |. E8 26FEFFFF call CrackMe_.00401081
0040125B |. 0B45 F0 or eax, [local.4]
0040125E |. 25 FFFFFF0F and eax, 0FFFFFFF
00401263 |. 8945 EC mov [local.5], eax
00401266 |. 33C9 xor ecx, ecx ; user32.77D3218C
00401268 |. 33D2 xor edx, edx
0040126A |. 8D35 00304000 lea esi, dword ptr ds:[403000]
00401270 |. 8B45 EC mov eax, [local.5]
00401273 |> 8945 EC /mov [local.5], eax
00401276 |. 6A 10 |push 10
00401278 |. 50 |push eax
00401279 |. E8 82FDFFFF |call CrackMe_.00401000
0040127E |. 8BC8 |mov ecx, eax
00401280 |. 8D3D 73204000 |lea edi, dword ptr ds:[402073]
00401286 |. 8A0439 |mov al, byte ptr ds:[ecx+edi]
00401289 |. 8806 |mov byte ptr ds:[esi], al
0040128B |. 8B45 EC |mov eax, [local.5]
0040128E |. 6A 04 |push 4
00401290 |. 50 |push eax
00401291 |. E8 86FDFFFF |call CrackMe_.0040101C
00401296 |. 8945 EC |mov [local.5], eax
00401299 |. 0BC0 |or eax, eax
0040129B |. 74 04 |je short CrackMe_.004012A1
0040129D |. 46 |inc esi ; CrackMe_.00401139
0040129E |. 47 |inc edi
0040129F |.^ EB D2 \jmp short CrackMe_.00401273
004012A1 |> 68 00010000 push 100 ; /Count = 100 (256.)
004012A6 |. 8D85 ECFEFFFF lea eax, [local.69] ; |
004012AC |. 50 push eax ; |Buffer = 00000007
004012AD |. 68 ED030000 push 3ED ; |ControlID = 3ED (1005.)
004012B2 |. FF75 08 push [arg.1] ; |hWnd = 00270744 ('Coded by [HappyTown]',class='#32770')
004012B5 |. E8 7E000000 call <jmp.&user32.GetDlgItemTextA> ; \GetDlgItemTextA
004012BA |. 0BC0 or eax, eax
004012BC |. 75 04 jnz short CrackMe_.004012C2
004012BE |. C9 leave
004012BF |. C2 1000 retn 10
004012C2 |> 68 00304000 push CrackMe_.00403000 ; /String2 = ""
004012C7 |. 8D85 ECFEFFFF lea eax, [local.69] ; |
004012CD |. 50 push eax ; |String1 = 00000007 ???
004012CE |. E8 53000000 call <jmp.&kernel32.lstrcmpA> ; \lstrcmpA
004012D3 |. 0BC0 or eax, eax
004012D5 |. 75 18 jnz short CrackMe_.004012EF
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
00401270 |. 8B45 EC mov eax, [local.5]
00401273 |> 8945 EC /mov [local.5], eax
00401276 |. 6A 10 |push 10
00401278 |. 50 |push eax
00401279 |. E8 82FDFFFF |call CrackMe_.00401000
0040127E |. 8BC8 |mov ecx, eax
00401280 |. 8D3D 73204000 |lea edi, dword ptr ds:[402073]
00401286 |. 8A0439 |mov al, byte ptr ds:[ecx+edi]
00401289 |. 8806 |mov byte ptr ds:[esi], al
0040128B |. 8B45 EC |mov eax, [local.5]
0040128E |. 6A 04 |push 4
00401290 |. 50 |push eax
00401291 |. E8 86FDFFFF |call CrackMe_.0040101C
00401296 |. 8945 EC |mov [local.5], eax
00401299 |. 0BC0 |or eax, eax
0040129B |. 74 04 |je short CrackMe_.004012A1
0040129D |. 46 |inc esi ; CrackMe_.00403003
0040129E |. 47 |inc edi ; CrackMe_.00402073
0040129F |.^ EB D2 \jmp short CrackMe_.00401273
在这里计算
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
我又看了篇你发的,地方可能错了
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
[QUOTE=zapline;483868]00401270 |. 8B45 EC mov eax, [local.5]
00401273 |> 8945 EC /mov [local.5], eax
00401276 |. 6A 10 |push 10
00401278 |. 50 |push eax
00401279 |. E8 82FDFFFF |call CrackMe_.00401000
0040127E |. 8BC8 |mov ecx, eax
00401280 |. 8D3D 73204000 |lea edi, dword ptr ds:[402073]
00401286 |. 8A0439 |mov al, byte ptr ds:[ecx+edi]
00401289 |. 8806 |mov byte ptr ds:[esi], al
0040128B |. 8B45 EC |mov eax, [local.5]
0040128E |. 6A 04 |push 4
00401290 |. 50 |push eax
00401291 |. E8 86FDFFFF |call CrackMe_.0040101C
00401296 |. 8945 EC |mov [local.5], eax
00401299 |. 0BC0 |or eax, eax
0040129B |. 74 04 |je short CrackMe_.004012A1
0040129D |. 46 |inc esi ; CrackMe_.00403003
0040129E |. 47 |inc edi ; CrackMe_.00402073
0040129F |.^ EB D2 \jmp short CrackMe_.00401273[/QUOTE]
怪了,我找不到这段代码的说
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
查找字符串 GOOD往上就是了
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
004026F5 . 50 push eax ; /var18
004026F6 . 8D4D C8 lea ecx, dword ptr [ebp-38] ; |
004026F9 . 51 push ecx ; |var28
004026FA . FF15 9C104000 call dword ptr [<&MSVBVM60.__vbaVarTs>; \__vbaVarTstNe
00402700 . 66:85C0 test ax, ax
00402703 . 0F85 92000000 jnz 0040279B
00402709 . B9 04000280 mov ecx, 80020004
0040270E . 898D 7CFFFFFF mov dword ptr [ebp-84], ecx
00402714 . B8 0A000000 mov eax, 0A
00402719 . 8985 74FFFFFF mov dword ptr [ebp-8C], eax
0040271F . 894D 8C mov dword ptr [ebp-74], ecx
00402722 . 8945 84 mov dword ptr [ebp-7C], eax
00402725 . C785 5CFFFFFF>mov dword ptr [ebp-A4], 00401C9C ; congratulations
0040272F . BF 08000000 mov edi, 8
00402734 . 89BD 54FFFFFF mov dword ptr [ebp-AC], edi
0040273A . 8D95 54FFFFFF lea edx, dword ptr [ebp-AC]
00402740 . 8D4D 94 lea ecx, dword ptr [ebp-6C]
00402743 . 8B35 A4104000 mov esi, dword ptr [<&MSVBVM60.__vba>; MSVBVM60.__vbaVarDup
00402749 . FFD6 call esi ; <&MSVBVM60.__vbaVarDup>
0040274B . C785 6CFFFFFF>mov dword ptr [ebp-94], 00401C7C ; good job,man!
指的是这个?不对啊
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
你的那个是第六个吗?我看了 我没搞错呀
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
是第六个啊,我把自己手上的上传下
http://bbs.pediy.com/showthread.php?t=33853&page=3
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
呀呀呀 好像我错了
没想到后面还有
真不好意思
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
晕啊,我们下的竟然不是同一个...
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
我麻烦你的才对
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
试试真的KM6
|
能力值:
( LV8,RANK:130 )
|
-
-
22 楼
[QUOTE=逍定;483863]这个我知道了,可是我菜鸟一个,找不到真码存在哪里...
能贴出真码的位置吗? 这个,大大可以举个具体的例子吗?我还是不太懂...
PS:为什么dword ptr [ebp-9C], 8003就说明这个变量是长整型?[/QUOTE]
这个程序本身不就是一个很好的例子吗,仔细观察一下数据的存储格式体会一下
8003就说明这个变量是长整型?
这是vb程序变量存储的特点,其它格式如下:
符号常量 值 内部表示 字节数
V_EMPTY 0 Empty
V_NULL 1 Null
V_INTEGER 2 Interger 2
V_LONG 3 Long 4
V_SINGLE 4 Single 4
V_DOUBLE 5 Double 8
V_CURRENCY 6 Currency 8
V_DATE 7 Date 8
V_STRING 8 String
V_OLE 9 OLE Automation Object
V_ERROR 10 Error
V_BOOLEAN 11 Boolean 2
V_VARIANT 12 Variant(仅用于变体数组) 16(22)
V_OBJECT 13 Object(非OLE自动化对象) 4
V_BYTE 17 Byte 1
V_ARRAY 8192 Array
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
谢谢红尘岁月指点迷津
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
如何计算出注册码这点已经搞定了,正在写注册机....
但是算法的分析还不是非常的清晰,有哪位兄弟写出破文来就好了
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
支持一下
不清晰都能写注册机 兄弟强
|
|
|