[/font]
CHOOSE CASE gi_money //0
CASE 0 //0
runtimes = 20 //14 /*此处通过全局变量控制试用次数为20次 */
CASE 1 //0
runtimes = 5000 //88 13
CASE 2 //0
runtimes = 200 //c8
CASE ELSE //0
runtimes = 20 //14
END CHOOSE //0
SELECT Top 1 gz , yh_no INTO :li_gz, :ls_no From sys_yh USING sqlca; /*从数据库表sys_yh中读取软件使用次数 */
IF sqlca.sqlcode <> 0 THEN //10
gs_errtext = sqlca.sqlerrtext
ROLLBACK USING sqlca;
messagebox("SQL ERROR",gs_errtext)
RETURN -1
END IF //10
SELECT cs1 INTO :ls_cs From pbcatvcs USING sqlca; /*从数据库表pbcatvcs中读取使用次数的密文 */
IF sqlca.sqlcode <> 0 THEN //16
gs_errtext = sqlca.sqlerrtext
ROLLBACK USING sqlca;
messagebox("SQL ERROR",gs_errtext)
RETURN -1
END IF //16
ls_zcs = string(li_gz)
ls_mm5 = encrypt(ls_zcs) /*对使用次数进行加密*/
IF (ls_cs <> ls_mm5 OR li_gz < 0) THEN //23
messagebox("提示","数据库文件已损坏,请联系开发公司修复.电话:*********")
HALT CLOSE
RETURN -1
ELSE //23
IF runtimes < li_gz THEN //28 /*如果使用次数大于最大试用次数,弹出对话框并且退出程序*/
messagebox("升级提示","您使用的软件需要升级后才能继续使用,请与开发公司联系! 电话:**********")
HALT CLOSE
RETURN 0
ELSEIF (runtimes - li_gz) < 5 THEN //28
END IF //28
li_gz ++
ls_zcs = string(li_gz)
ls_mm5 = encrypt(ls_zcs) /*使用次数自加后,重新加密并写入数据库*/
update sys_yh Set gz =:li_gz Where yh_no =:ls_no USING sqlca;
IF sqlca.sqlcode <> 0 THEN //37
gs_errtext = sqlca.sqlerrtext
ROLLBACK USING sqlca;
messagebox("SQL ERROR",gs_errtext)
RETURN -1
END IF //37
(在帖子里面添加代码没有PB的类别,就选了个类似的)
了解了代码之后,就确定了破解的方向了,在我的想象中,有一双滑板鞋,哦,不好意思,在我的想象中,只要把开始的 runtimes赋值为0,后面的关键比较改为 IF runtimes > li_gz THEN ,就可以无限制地使用这个软件了。