能力值:
( LV2,RANK:10 )
|
-
-
3 楼
很感谢你的回答其实对着你的这篇
<<对于PB开发的程序破解!附pb函数大全>>及看雪精华中的<<PB小助手 v3.1 - PB简单算法逆运算>>
我细看了很久
新手一个不懂任何语言但还却有点任性
因此也遇到很多问题
先不管任何的运算问题以我的水平看到的东西
ls_gsmc 公司名称
ls_ypxlh 机器码
ls_ypjbh 序列号
li_work ,li_zclx 注册码变形而来
li_work = integer(mid(ls_now,4,1) + mid(ls_now,len(ls_now) - 2,1)
if mod(integer(mid(ls_now,5,1)),2) = 1 then
li_zclx = 9877
else
li_zclx = 1233
但是这样的句子
ls_gsmc = nvll(parent.dw_1.getitemstring(1,"gsmc"),"")
ls_ypxlh = nvll(parent.dw_1.getitemstring(1,"zc_mach"),"")
ls_ypjbh = nvll(parent.dw_1.getitemstring(1,"zc_xlh"),"")
ls_now = nvll(parent.dw_1.getitemstring(1,"zc_code"),"")
在你上传的pb函数大全中我没找到nvll函数(网上也有搜索)在该pbd文件中我也没找到 这个如何解决?是我搜索欠缺还是pbd文件漏找了(如果是漏找有什么方便的方法或者规律找?)
left(parent.lu_system.uf_check_zc(ls_gsmc,ls_ypxlh,ls_ypjbh,li_work,li_zclx),4) + mid(parent.lu_system.uf_check_zc(ls_gsmc,ls_ypxlh,ls_ypjbh,li_work,li_zclx),6,100) = left(ls_now,4) + mid(ls_now,6,100)
则注册成功
找到uf_check_zc函数
uf_check_zc (string as_gsmc,string as_ypxlh,string as_ypjbh,integer ai_work,integer ai_zclx) returns string
这时就又遇到一个问题数学中的f(x)即将变量x代入表达式中,
即将uf_check_zc中的as_gsmc,as_ypxlh,as_ypjbh,ai_work,ai_zclx代替(不知道这样理解是否错误)
uf_check_zc (string as_gsmc,string as_ypxlh,string as_ypjbh,integer ai_work,integer ai_zclx) returns string
long ll_len
long ll_i
string ls_gsmc
string ls_ypxlh
string ls_ypjbh
string ls_work_lx
string ls_str_bz_1
string ls_str_bz_2
string ls_str_bz_3
string ls_str_bz_4
string ls_str_bz_5
string ls_single
long ll_zclx
string ls_lx
string ls_work_sw
string ls_work_gw
string ls_zcm
ls_gsmc = uf_zc_get_gsmc(as_gsmc)
ls_ypxlh = uf_zc_get_ypxlh(as_ypxlh)
ls_ypjbh = uf_zc_get_ypjbh(as_ypjbh)
ls_work_lx = uf_zc_get_work_lx(ai_work,ai_zclx)
ll_len = len(ls_gsmc)
按我开先的理解则这个uf_check_zc()里面又出现了ls_gsmc,ls_ypxlh,ls_ypjbh,li_work,li_zclx而这些不是已知的吗
也许这个问题跟破解这软件关系不大。但这因该是语言的基础问题对自己学习东西肯定有很大的帮助,希望有人能赐教一下
for ll_i = 1 to ll_len
ls_single = right(string(integer(mid(ls_gsmc,ll_i,1)) + integer(mid(ls_ypxlh,ll_i,1))),1)
ls_str_bz_1 = ls_str_bz_1 + ls_single
next
ll_len = len(ls_str_bz_1)
for ll_i = 1 to ll_len
ls_single = right(string(integer(mid(ls_str_bz_1,ll_i,1)) + integer(mid(ls_ypjbh,ll_i,1))),1)
ls_str_bz_2 = ls_str_bz_2 + ls_single
next
ll_len = len(ls_str_bz_2)
for ll_i = ll_len to 1 step -1
ls_single = right(string(integer(mid(ls_str_bz_2,ll_i,1)) + integer(mid(ls_work_lx,ll_i,1))),1)
ls_str_bz_3 = ls_str_bz_3 + ls_single
next
ll_len = len(ls_str_bz_3)
for ll_i = 1 to ll_len step 3
ls_str_bz_4 = ls_str_bz_4 + mid(ls_str_bz_3,ll_i,1)
next
ll_zclx = rand(10)
if ai_zclx = 9877 then
if mod(ll_zclx,2) = 0 then
ll_zclx = ll_zclx + 1
end if
ls_lx = right(string(ll_zclx),1)
else
if ai_zclx = 1233 then
if mod(ll_zclx,2) = 1 then
ll_zclx = ll_zclx + 1
end if
ls_lx = right(string(ll_zclx),1)
end if
end if
ls_work_sw = left(string(ai_work,"00"),1)
ls_work_gw = right(string(ai_work,"00"),1)
ls_zcm = left(ls_str_bz_4,3) + ls_work_sw + ls_lx + mid(ls_str_bz_4,4,len(ls_str_bz_4) - 5) + ls_work_gw + right(ls_str_bz_4,2)
return ls_zcm
不管那多先把里面未知的函数再找出来
uf_zc_get_gsmc
uf_zc_get_gsmc (string as_gsmc) returns string
long ll_len
long ll_i
string ls_str
string ls_qt
string ls_str_l
string ls_single
string ls_str_bz_1
string ls_str_bz_2
string ls_str_bz_3
ls_str_bz_1 = f_get_str_asc(mid(as_gsmc,6,8))
ls_str = left(ls_str_bz_1,3)
ls_str_bz_2 = right(ls_str_bz_1,len(ls_str_bz_1) - 3) + ls_str
ls_qt = f_get_str_asc("3.1415926")
ll_len = len(ls_qt)
for ll_i = 1 to ll_len
ls_single = string(integer(mid(ls_qt,ll_i,1)) + integer(mid(ls_str_bz_2,ll_i,1)))
ls_str_l = ls_str_l + ls_single
next
ls_str_bz_3 = ls_str_l + left(ls_str_bz_2,len(ls_str_bz_2) - ll_len)
return ls_str_bz_3
在这里又看到了新的函数f_get_str_asc感觉好复杂,大约象这么复杂的东西不该是我新手该研究的
f_get_str_asc (string as_str) returns string
long ll_len
long ll_i
long ll_gs
string ls_asc
string ls_str_single
string ls_asc_b
ll_len = len(as_str)
for ll_i = 1 to ll_len
ls_str_single = mid(as_str,ll_i,1)
ls_asc = ls_asc + string(asc(ls_str_single))
next
ll_len = len(ls_asc)
for ll_i = 1 to ll_len
ls_str_single = right(string(long(mid(ls_asc,ll_i,1)) + ll_i),1)
ls_asc_b = ls_asc_b + ls_str_single
next
return ls_asc_b
看了后我这么理解:这个公司名称到底是怎么得到的啊,到这里就不再出现未知的东西了。难道是电脑自己算出来的?都不用自己输入?先不管了,我能做的就是把所有跟注册相关的东西先找出来。
再来到这个 uf_zc_get_ypxlh
uf_zc_get_ypjbh (string as_ypjph) returns string
long ll_len
long ll_i
string ls_str
string ls_qt
string ls_str_l
string ls_single
string ls_str_bz_1
string ls_str_bz_2
string ls_str_bz_3
ls_str_bz_1 = as_ypjph
ls_str = left(ls_str_bz_1,1)
ls_str_bz_2 = right(ls_str_bz_1,len(ls_str_bz_1) - 1) + ls_str
ls_qt = f_get_str_asc("2.777653")
ll_len = len(ls_qt)
for ll_i = 1 to ll_len
ls_single = string(integer(mid(ls_qt,ll_i,1)) + integer(mid(ls_str_bz_2,ll_i,1)))
ls_str_l = ls_str_l + ls_single
next
ls_str_bz_3 = ls_str_l + left(ls_str_bz_2,len(ls_str_bz_2) - ll_len)
return ls_str_bz_3
这个里面也出现了f_get_str_asc()
再来uf_zc_get_ypxlh (string as_ypxlh) returns string
long ll_len
long ll_i
string ls_str
string ls_qt
string ls_str_l
string ls_single
string ls_str_bz_1
string ls_str_bz_2
string ls_str_bz_3
ls_str_bz_1 = as_ypxlh
ls_str = left(ls_str_bz_1,5)
ls_str_bz_2 = right(ls_str_bz_1,len(ls_str_bz_1) - 5) + ls_str
ls_qt = f_get_str_asc("1.349873")
ll_len = len(ls_qt)
for ll_i = 1 to ll_len
ls_single = string(integer(mid(ls_qt,ll_i,1)) + integer(mid(ls_str_bz_2,ll_i,1)))
ls_str_l = ls_str_l + ls_single
next
ls_str_bz_3 = ls_str_l + left(ls_str_bz_2,len(ls_str_bz_2) - ll_len)
return ls_str_bz_3
跟上面一个很相似,只有这个f_get_str_asc()内的参数不同
再来uf_zc_get_work_lx
uf_zc_get_work_lx (integer ai_work,integer ai_zclx) returns string
long ll_len
long ll_i
long ll_work
long ll_zclx
string ls_str
string ls_qt
string ls_str_l
string ls_single
string ls_str_bz_1
string ls_str_bz_2
string ls_str_bz_3
ll_work = ai_work * 79
ll_zclx = (ai_zclx * 39) * ll_work
if ai_zclx = 9876 then
ls_str_bz_1 = string(ll_work) + string(ll_zclx)
else
ls_str_bz_1 = string(ll_zclx) + string(ll_work)
end if
ls_str_bz_2 = string(truncate(long(ls_str_bz_1) * 7749333,0))
ls_str_bz_3 = f_get_str_asc(ls_str_bz_2)
return ls_str_bz_3
同样出现了f_get_str_asc 看来这个函数真的很重要
看来基本上我能找出来的跟算法相关的东西都出来了,不过心里仍然是在犯嘀咕。凭这些可以逆运算出注册码来吗?再请赐教,如果能。我就开始学习下一步了,如果不能请指教一下还需要些什么?
顺便加一个该pbd文件的下载连接再次说声谢谢http://58.60.9.138/cgi-bin/dl?05624FC4715704061B19EA9176313B408637827FA6BBF20D1396208AD7EA31951EB9B6C6A860C2B088F153C9FBBE1057EAA94D4B4E76F7C6A1F532A0B6647E4333529353BC9C61703309EBBA77A35093C76D6948EC7920A035F41/system.pbd
|