秋风四起 发表于 2008-9-9 23:32:10

求助这个问题。。。

00491B60|.55            PUSH EBP
00491B61|.68 C41C4900   PUSH ZKWG.00491CC4
00491B66|.64:FF30       PUSH DWORD PTR FS:
00491B69|.64:8920       MOV DWORD PTR FS:,ESP
00491B6C|.8D55 F8       LEA EDX,DWORD PTR SS:
00491B6F|.8B83 34030000 MOV EAX,DWORD PTR DS:
00491B75|.E8 9E13FBFF   CALL ZKWG.00442F18
00491B7A|.8D55 F4       LEA EDX,DWORD PTR SS:
00491B7D|.8B83 30030000 MOV EAX,DWORD PTR DS:
00491B83|.E8 9013FBFF   CALL ZKWG.00442F18
00491B88|.8D4D F0       LEA ECX,DWORD PTR SS:
00491B8B|.BA D81C4900   MOV EDX,ZKWG.00491CD8                  ;ASCII "fzcm"
00491B90|.8B45 F4       MOV EAX,DWORD PTR SS:
00491B93|.E8 60F7FFFF   CALL ZKWG.004912F8
00491B98|.8B45 F8       MOV EAX,DWORD PTR SS:
00491B9B|.8B55 F0       MOV EDX,DWORD PTR SS:
00491B9E|.E8 392DF7FF   CALL ZKWG.004048DC
00491BA3      74 2F         JE SHORT ZKWG.00491BD4
00491BA5|.8D45 FC       LEA EAX,DWORD PTR SS:
00491BA8|.BA E81C4900   MOV EDX,ZKWG.00491CE8
00491BAD|.E8 B629F7FF   CALL ZKWG.00404568
00491BB2|.6A 40         PUSH 40
00491BB4|.8B45 FC       MOV EAX,DWORD PTR SS:
00491BB7|.E8 D42DF7FF   CALL ZKWG.00404990
00491BBC|.8BD0          MOV EDX,EAX
00491BBE|.B9 041D4900   MOV ECX,ZKWG.00491D04
00491BC3|.A1 907A4900   MOV EAX,DWORD PTR DS:
00491BC8|.8B00          MOV EAX,DWORD PTR DS:
00491BCA|.E8 A50DFDFF   CALL ZKWG.00462974
00491BCF|.E9 C8000000   JMP ZKWG.00491C9C
00491BD4|>8D55 EC       LEA EDX,DWORD PTR SS:
00491BD7|.8B83 30030000 MOV EAX,DWORD PTR DS:
00491BDD|.E8 3613FBFF   CALL ZKWG.00442F18
00491BE2|.8B45 EC       MOV EAX,DWORD PTR SS:
00491BE5|.50            PUSH EAX
00491BE6|.8D55 E8       LEA EDX,DWORD PTR SS:
00491BE9|.8B83 2C030000 MOV EAX,DWORD PTR DS:
00491BEF|.E8 2413FBFF   CALL ZKWG.00442F18


当我把00491BA3      74 2F         JE SHORT ZKWG.00491BD4   修改为JMP SHORT ZKWG.00491BD4时,
无论我输入什么注册码。然后会弹出一个窗口提示注册成功,点确定后,就会关闭程序,再运行,还是要我注册~~!!
是不是找错了???

这个小工具,100大洋啊~!!用买回来的注册码在单位上用,就可以了,一输入注册码,提示注册成功,然后就确定关闭,再运行就正常了。。

却 限制在我单位那机子上用,不能拿回家来工作。。。。。。。

有什么好办法吗??????

惜雪 发表于 2008-9-9 23:37:43

明显的重启验证,你找的地方不对,可能是上面的call或其它地方,总之会被多个地方调用检测的一个call,在重启的时候检测仍然会为未注册

秋风四起 发表于 2008-9-9 23:53:39

那应该怎么找呢????


我在单位买了这个,在单位注册码是:

验证码:4B47535C
注册码:2650262527212751

在我家又特长的验证码:5026234B5F55225A4B47535C
感觉好奇怪的就是为什么我家中,会带有4B47535C在最后面???


请教下。。。

rxzcums 发表于 2008-9-10 01:25:09

一机一码啊!

如果能通用那么这个软件有可能只能卖出去一份了!

你的问题是没找到关键call
----------------------------------------------
当你停在这句的时候看看EAX和EDX,可能有真码。
00491B9E|.E8 392DF7FF   CALL ZKWG.004048DC

[ 本帖最后由 rxzcums 于 2008-9-10 01:26 编辑 ]

iamok 发表于 2008-9-10 07:43:36

要找对关键的验证算法的CALL才可以。。

秋风四起 发表于 2008-9-10 07:47:22

跟踪真码很闷的,我是想直接跳过注册那个界面~~~程序运行时,应该在哪一个地方检测注册码是否可用,可用就进入程序,不可用就提示注册。。。

就是找不着这个跳转点。。。。。。。。。

llh001 发表于 2008-9-10 08:26:17

还是重启验证问题,楼主发了两个帖子了,呵呵,教程论坛里可不少,找找看,细细研究一下,结合F12暂停法,应该可以解决,希望楼主早日成功。

傻人有傻福 发表于 2008-9-10 10:12:23

如果找到了关键的算法CALL的话 尽量在算法CALL里面来爆破如果说这个软件用同一个算法验证了100次 楼主岂不是要修改100次跳转而如果在算法CALL里面来爆破的话 就算软件验证1000次(当然还是要用同一个算法CALL)也是可以解决的
至于算法CALL要如何爆破 要看算法CALL接着的跳转有的跳转是JZ有的是JNZ 还有的是
test al,al 之后再来一个跳转楼主要根据情况来判断
举个简单的例子
CALL **XX(算法CALL)
test al,al
jnz ****(这里跳的话就跳向注册成功)
那么我们就要使CALL出来之后 al不为0那么我们就可以把算法call改成这样
mov al,1
retn
这样CALL出来的时候 al肯定就不为0了 也就实现了算法的爆破了
当然这种类型是最简单 以后还会碰到其他不同的情况的

秋风四起 发表于 2008-9-10 13:39:29

00462595|. /EB 02         JMP SHORT ZKWG.00462599
00462597|> |B0 01         MOV AL,1
00462599|> \880424      MOV BYTE PTR SS:,AL
0046259C|.8A0424      MOV AL,BYTE PTR SS:
0046259F|.5A            POP EDX
004625A0|.5D            POP EBP
004625A1|.5F            POP EDI
004625A2|.5E            POP ESI
004625A3|.5B            POP EBX
004625A4\.C3            RETN
004625A5      8D40 00       LEA EAX,DWORD PTR DS:
004625A8/$53            PUSH EBX
004625A9|.56            PUSH ESI
004625AA|.57            PUSH EDI
004625AB|.51            PUSH ECX
004625AC|.8BFA          MOV EDI,EDX
004625AE|.8BF0          MOV ESI,EAX
004625B0|.33DB          XOR EBX,EBX
004625B2|.6A 01         PUSH 1                                 ; /RemoveMsg = PM_REMOVE
004625B4|.6A 00         PUSH 0                                 ; |MsgFilterMax = WM_NULL
004625B6|.6A 00         PUSH 0                                 ; |MsgFilterMin = WM_NULL
004625B8|.6A 00         PUSH 0                                 ; |hWnd = NULL
004625BA|.57            PUSH EDI                                 ; |pMsg
004625BB|.E8 A84EFAFF   CALL <JMP.&user32.PeekMessageA>          ; \PeekMessageA
004625C0|.85C0          TEST EAX,EAX
004625C2|.74 75         JE SHORT ZKWG.00462639
004625C4|.B3 01         MOV BL,1
004625C6|.837F 04 12    CMP DWORD PTR DS:,12
004625CA|.74 66         JE SHORT ZKWG.00462632
004625CC|.C60424 00   MOV BYTE PTR SS:,0
004625D0|.66:83BE DA000>CMP WORD PTR DS:,0
004625D8|.74 10         JE SHORT ZKWG.004625EA
004625DA|.8BCC          MOV ECX,ESP
004625DC|.8BD7          MOV EDX,EDI
004625DE|.8B86 DC000000 MOV EAX,DWORD PTR DS:
004625E4|.FF96 D8000000 CALL DWORD PTR DS:
004625EA|>8BD7          MOV EDX,EDI
004625EC|.8BC6          MOV EAX,ESI
004625EE|.E8 15FFFFFF   CALL ZKWG.00462508
004625F3|.84C0          TEST AL,AL
004625F5|.75 42         JNZ SHORT ZKWG.00462639
004625F7|.803C24 00   CMP BYTE PTR SS:,0
004625FB|.75 3C         JNZ SHORT ZKWG.00462639
004625FD|.8BD7          MOV EDX,EDI
004625FF|.8BC6          MOV EAX,ESI
00462601|.E8 FAFDFFFF   CALL ZKWG.00462400
00462606|.84C0          TEST AL,AL
00462608|.75 2F         JNZ SHORT ZKWG.00462639
0046260A|.8BD7          MOV EDX,EDI
0046260C|.8BC6          MOV EAX,ESI
0046260E|.E8 3DFEFFFF   CALL ZKWG.00462450
00462613|.84C0          TEST AL,AL
00462615|.75 22         JNZ SHORT ZKWG.00462639
00462617|.8BD7          MOV EDX,EDI
00462619|.8BC6          MOV EAX,ESI
0046261B|.E8 BCFDFFFF   CALL ZKWG.004623DC
00462620|.84C0          TEST AL,AL
00462622|.75 15         JNZ SHORT ZKWG.00462639
00462624|.57            PUSH EDI                                 ; /pMsg
00462625|.E8 8E4FFAFF   CALL <JMP.&user32.TranslateMessage>      ; \TranslateMessage
0046262A|.57            PUSH EDI                                 ; /pMsg
0046262B|.E8 784BFAFF   CALL <JMP.&user32.DispatchMessageA>      ; \DispatchMessageA
00462630|.EB 07         JMP SHORT ZKWG.00462639
00462632|>C686 9C000000>MOV BYTE PTR DS:,1
00462639|>8BC3          MOV EAX,EBX
0046263B|.5A            POP EDX
0046263C|.5F            POP EDI
0046263D|.5E            POP ESI
0046263E|.5B            POP EBX
0046263F\.C3            RETN
00462640/$53            PUSH EBX
00462641|.83C4 E4       ADD ESP,-1C


能帮我分析一下这段码是什么意思吗???

秋风四起 发表于 2008-9-10 13:49:55

我怎么也找不到程序启动时检查注册码和机器码校验时的跳转点

晕哦..找了三天了.
页: [1] 2
查看完整版本: 求助这个问题。。。