能力值:
( LV2,RANK:10 )
|
-
-
2 楼
新手路过~!
我帮不了哦~!
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
用16进制编辑器搜索 740733C0 该成 90909090
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
但我觉得不是在这儿,这可能只是判断注册表是否打开成功。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
程序下载ing.....
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
回zipper的话~~
该程序是 绿色软件故, 个人觉得 打开注册表的可能性 不大~~~~
今天太忙~~ 晚上,或明天有时间俺再试试 用16进制写写~~
另~~ 用w32asm 上面有他的 物理地址~~ :) 大家试试, 看能不能爆了该程序!! :) 谢了!
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
VFP9R.DLL,VF写的。没破解过。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
* 文件名: SERVERINF.PRG <-- 本文件由 UnFoxAll 创建
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
DECLARE INTEGER GetSerialNumber IN DiskSerial.dll INTEGER , STRING @
DECLARE INTEGER GetModelNumber IN DiskSerial.dll INTEGER , STRING @
DECLARE INTEGER GetRevisionNumber IN DiskSerial.dll INTEGER , STRING @
DECLARE INTEGER GetBufferSize IN DiskSerial.dll INTEGER
DECLARE INTEGER GetDiskCylinders IN DiskSerial.dll INTEGER
DECLARE INTEGER GetDiskHeads IN DiskSerial.dll INTEGER
DECLARE INTEGER GetSectorsOfTrack IN DiskSerial.dll INTEGER
CMSG = ''
IF .NOT. FILE(GETDIR_SYS() + '\Smm.DLL')
MESSAGEBOX('配置文件不存在请联系开发商',6,'提示')
QUIT
RETURN
ENDIF
LNSERIALNUMBER = SPACE(40)
LNLENGTH = GETSERIALNUMBER(0,@LNSERIALNUMBER)
LNSERIALNUMBER = LEFT(LNSERIALNUMBER,LNLENGTH)
CMSG = CMSG + '注册号' + LNSERIALNUMBER + CHR(13) + CHR(10)
USE SHARED GETDIR_SYS() + '\SMM.DLL'
SET EXACT OFF
IF COPYRIGHTS = '博尔码'
WAIT WINDOW NOWAIT '博尔码'
USE IN SMM
RETURN .T.
ENDIF
SET EXACT ON
IF UPPER(ALLTRIM(LNSERIALNUMBER)) <> UPPER(ALLTRIM(HARDSN)) AND ;
.NOT. EMPTY(LNSERIALNUMBER)
MESSAGEBOX('请注册' + CMSG,6,'提示')
REPLACE HARDSN WITH LNSERIALNUMBER + '3'
IF FILE('REGEDIT.txt')
ERASE REGEDIT.txt
ENDIF
GNFILE = FCREATE('REGEDIT.txt')
FPUTS(GNFILE,'注册号' + LNSERIALNUMBER + '3')
FCLOSE(GNFILE)
USE IN SMM
QUIT
ENDIF
SET EXACT OFF
USE IN SMM
*
以上由UnFoxAll 反编译。懂点vf就好多了,楼主加油!
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
回lynns~~ :)
俺这用 unfoxall反编译过了`~ 但 以前在学校没接触过 VFP~~ 只学过 一丁点的汇编及 C语言~~ 算号的原理明白, 但真要 算起来~~ :(
能否把以上代码 加些个注释呢? ~~ :)
为感
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
我用game master在内存中查找YOUR CODE IS WRONG,我的在00A070B8,想在OD里进行内存读写的中断,然后发现00A07100 有串字符,为正确的注册码,00A07180为输入的错误的注册码。但不知如何得到的,还有待分析。
提示码:3JV8835B
注册号:81CBEECC176B5E61404895A297101C7D
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
终于被我发现了,我在两个机器上测试通过,算法如下:
假如提示码为3JV8835B,在字符串前加上ZS,后面加上提示码的第一个字母,然后是KALEN。形成新字符串ZS3JV8835B3KALEN,隔一个字符取一个,第一次为SJ83BKL,第二次为 SJ83BKLN,然后加在一起,形成字符串SJ83BKLSJ83BKLN,取MD5即可。
说不清楚,这是vf的代码:
DECLARE STRING getserial IN 'JUNWEI.DLL' INTEGER
DECLARE STRING MD5String IN 'JUNWEI.DLL' AS MD5JM STRING , INTEGER
DECLARE STRING GetCpuID IN 'JUNWEI.DLL'
LNSERIALNUMBER = '3JV8835B3'
LC_HARDSN = WORKJM(LNSERIALNUMBER,'ZS')
MESSAGEBOX(LC_HARDSN)
PROCEDURE WorkJm
PARAMETER YOURID , JMSTR
YOURID = JMSTR - UPPER(ALLTRIM(YOURID)) - 'KALEN'
LOCAL CURRENTID
CURRENTID = ''
FOR IDNAME = LEN(YOURID) TO 1 STEP -2
CURRENTID = CURRENTID + SUBSTR(YOURID,LEN(YOURID) - IDNAME,1)
ENDFOR
FOR IDNAME = LEN(YOURID) TO 0 STEP -2
CURRENTID = CURRENTID + SUBSTR(YOURID,LEN(YOURID) - IDNAME,1)
ENDFOR
CurrentId=MD5JM([&CurrentId.],Len(CurrentId))
RETURN (CURRENTID)
ENDPROC
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
谢Zipper~~~ :) 按楼上的方法 的确能算出注册码~~ :)
|
|
|