首页
社区
课程
招聘
Please Find Valid Serial
发表于: 2009-1-23 18:15 5889

Please Find Valid Serial

2009-1-23 18:15
5889
Please Find Valid Serial Thank All PEDIY USER

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
shellwolf
770C-0CF6-B0CA-1155
2009-1-23 21:33
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
3
慢了,呵呵。



补个keygen,请测试。有问题请反馈。
上传的附件:
2009-1-23 22:06
0
雪    币: 15
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
Thank you For Very Nice Keygen  and Thank shellwolf
2009-1-24 06:38
0
雪    币: 2575
活跃值: (502)
能力值: ( LV2,RANK:85 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=书呆彭;569109]慢了,呵呵。



补个keygen,请测试。有问题请反馈。[/QUOTE]

keygen都出来了,干脆来篇教学
2009-1-24 09:12
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
6
要书呆写教学?
他怕他精华会太多.
2009-1-24 11:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
shellwolf 这个也没有太多 algo 阿

我来一篇:

algo 很容易找到,来个 string search:
00401405   /$  55                PUSH EBP
00401406   |.  8BEC              MOV EBP,ESP
00401408   |.  56                PUSH ESI
00401409   |.  57                PUSH EDI                                                    ;  ntdll.7C910208
0040140A   |.  53                PUSH EBX
0040140B   |.  8B75 0C           MOV ESI,[ARG.2]
0040140E   |.  33DB              XOR EBX,EBX
00401410   |.  B9 23560000       MOV ECX,5623
00401415   |>  AC                /LODS BYTE PTR DS:[ESI]
00401416   |.  84C0              |TEST AL,AL
00401418   |.  75 04             |JNZ SHORT Find_Val.0040141E
0040141A   |.  FEC3              |INC BL
0040141C   |.  FECD              |DEC CH
0040141E   |>  FECD              |DEC CH
00401420   |.  FEC9              |DEC CL
00401422   |.^ 75 F1             \JNZ SHORT Find_Val.00401415
00401424   |.  8B75 0C           MOV ESI,[ARG.2]                                             ;  bl=23-pass.len
00401427   |.  66:33C0           XOR AX,AX                                                   ;  ch=pass.len*3
0040142A   |.  66:33D2           XOR DX,DX
0040142D   |.  2AEB              SUB CH,BL                                                   ;  ch=pass.len*4-23
0040142F   |>  8A16              /MOV DL,BYTE PTR DS:[ESI]
00401431   |.  66:0FBDC2         |BSR AX,DX                                                  ;  (bit scan right)(most significant bit)
00401435   |.  66:83F8 06        |CMP AX,6                                                   ;  chars which inc:
00401439   |.  75 17             |JNZ SHORT Find_Val.00401452
0040143B   |.  66:81E2 BF00      |AND DX,0BF                                                 ;   20~2F
00401440   |.  66:0FBDC2         |BSR AX,DX                                                  ;   3A~40
00401444   |.  66:83F8 03        |CMP AX,3                                                   ;   47~7E
00401448   |.  77 2E             |JA SHORT Find_Val.00401478
0040144A   |.  66:83FA 06        |CMP DX,6                                                   ;  available chars: 30~39, 41~46 (0-9,A-F)
0040144E   |.  77 28             |JA SHORT Find_Val.00401478
00401450   |.  EB 28             |JMP SHORT Find_Val.0040147A
00401452   |>  66:0FBDC2         |BSR AX,DX
00401456   |.  66:83F8 05        |CMP AX,5
0040145A   |.  75 1C             |JNZ SHORT Find_Val.00401478
0040145C   |.  66:81E2 DF00      |AND DX,0DF
00401461   |.  66:0FBDC2         |BSR AX,DX
00401465   |.  66:83F8 04        |CMP AX,4
00401469   |.  75 0D             |JNZ SHORT Find_Val.00401478
0040146B   |.  66:81E2 EF00      |AND DX,0EF
00401470   |.  66:83FA 09        |CMP DX,9
00401474   |.  77 02             |JA SHORT Find_Val.00401478
00401476   |.  EB 02             |JMP SHORT Find_Val.0040147A
00401478   |>  FEC7              |INC BH
0040147A   |>  46                |INC ESI
0040147B   |.  FECD              |DEC CH
0040147D   |.^ 75 B0             \JNZ SHORT Find_Val.0040142F

第一个loop看似很长,其实只不过算一算 pass.len 而已
第二个: valid/invalid:
available chars: 30~39, 41~46 (0-9,A-F)

之后:
0040148A   |> /AD                /LODS DWORD PTR DS:[ESI]
0040148B   |. |AC                |LODS BYTE PTR DS:[ESI]
0040148C   |. |8A56 FF           |MOV DL,BYTE PTR DS:[ESI-1]
0040148F   |. |C1E2 08           |SHL EDX,8
00401492   |. \67:E2 F5          \LOOPW SHORT Find_Val.0040148A
把每5个一轮取出char,
00401495   |.  C1C2 18           ROL EDX,18                                                  ;  rol(edx,18)^50615^ebx=282828
00401498   |.  81F2 15060500     XOR EDX,50615                                               ;  edx=2D2D2D00
0040149E   |.  33D3              XOR EDX,EBX                                                 ;  format: xxxx-xxxx-xxxx-xxxx
004014A0   |.  81F2 28282800     XOR EDX,282828
004014A6   |.  0F85 EF000000     JNZ Find_Val.0040159B                                       ;  include chars: 3
004014AC   |.  66:81EB 1003      SUB BX,310                                                  ;  bx=310 (pass.len=13)
004014B1   |.  0F85 E4000000     JNZ Find_Val.0040159B
004014B7   |.  33C0              XOR EAX,EAX
edx=ror(282828^310^50615,18)=2D2D2D00

xxxx-xxxx-xxxx-xxxx

然后一个对name的hash
(与密码无关,这里就不再多说了,书呆彭写得很详细)

最后compare:
用两个TABLE, 分别取出pass, name.hash index:
index table:
pass:
00403274  05 0C 12 00 03 07 0F 02 0B 01 06 0A 10 08 0D 11  ....
user.hash:
00403284  13 07 0C 1D 0A 15 1E 03 1B 0E 06 12 19 0B 09 14  ...
套一下便keygen
2009-1-24 11:56
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
8
我帖子里什么都没写啊?

你???

我???
2009-1-24 12:54
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
你的keygen...
原来没有 source ????????
反正也不难,我还是认为用不着了
2009-1-24 13:05
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
10
source???

写得太丑,没好意思放。

我怎么觉得你看过我的source???

奇怪的感觉。
2009-1-24 14:27
0
游客
登录 | 注册 方可回帖
返回
//