某软件疑是vfp加密了内存代码,求助
软件名称:省略(国产)大小:7M
地址:http://www.skycn.com/soft/35856.html
简介:是国内最大的租书店连锁公司北京123开发的。 本软件是一款适合对图书、光盘、软件等出音像制品进行出租与销售管理使用的软件。软件功能强大,界面美观,容易上手。系统管理主要包括销售商品资料管理、租赁商品资料管理、会员资料管理、会员卡充值和会员卡挂失。基本操作为:零售、会员售、零租、会员租、零租归还和会员归还。查询功能主要包括销售资料商品查询、租赁商品资料查询、会员资料查询、会员租赁查询、会员归还查询和低于库存警戒线数量查询等。对查询结果可按照任意条件进行排序,支持报表打印,导出到Excel等。盘点可对上述查询按照一定时间段进行统计。
1.peid查壳,普通压缩壳,脱之,查壳PowerBASIC/Win 8.00,网上搜索遇到很多人提出了这个问题,有人说是aming的软件加密的。
2.截取内存如下:
(此处内容见附件,添加后网页无法正常显示)
显然是加密了。
3.利用文件监视工具查得,注册码和机器码保存在 bj123\sysdata\system.dbf 里面
4.od单步调试,进入vfp9r.dll就出不来了。
?本人菜鸟,这是我几天来调试的一些信息,希望有高人指点。我也问了许多qq群里的朋友,暂时也没有结果。
[ 本帖最后由 sswater 于 2009-4-3 15:14 编辑 ] 不知道是不是发错地方了,无人问津啊。
这几天发现这个软件有个问题不知道算不算bug,删除或改名DiskSerial.dll,也就是获取序列号的动态链接库后,机器码变成1983754567891354468,这个是固定的,如果是用这个号算出的注册码不知道可不可以用在好几台机器上。 如果在别的的机子上机器码也是1983754567891354468 就可以一个注册码多台使用! 不是FOXLOCK,是NC的玩意儿!
declare integer GetSerialNumber in "DiskSerial.dll" integer, string @
lnserialnumber = SPACE(40)
= GETSERIALNUMBER(0,@LNSERIALNUMBER)
disk_s = LEFT(ALLTRIM(LNSERIALNUMBER),LEN(ALLTRIM(LNSERIALNUMBER))-1)
d_v = ""
disk_n = ""
for i = 1 to LEN(DISK_S)
d_v = RIGHT(LEFT(DISK_S,I),1)
if ASC(D_V) >= 65 .and. ASC(D_V) <= 90
disk_n = DISK_N+ALLTRIM(STR(ASC(D_V)))
else
disk_n = DISK_N+D_V
endif
endfor
disk_n = UPPER(ALLTRIM(DISK_N))
clear dlls
if EMPTY(DISK_N) = .t.
disk_n = "1983754567891354468"
endif
select 0
use "sysdata\system.dbf"
select "system"
replace reg with DISK_N
sys_rereg = SYSTEM.rereg
[ 本帖最后由 newsoft88 于 2009-4-5 21:47 编辑 ] 感谢 newsoft88 兄,能否提供更详细的还原代码的思路?
newsoft88 兄提供代码是根据硬盘序列号算机器码的代码。我已经在外围做过一些跟踪,并且通过修改获取序列号的DiskSerial.dll,达到修改机器码的目的。机器码的算法是字母转化成asiic码数字,数字不变。此软件原是朋友让帮看看,我已经让他购买了正版一套。
页:
[1]