walili 发表于 2008-5-5 18:13:22

PB程序的算法。

string ls_lisence
string ls_temp
string ls_t
string ls_line


ls_temp = trim(parent.sle_1.text)

if wf_lisence(ls_temp) > 0 then
        easy.setpara(1,gs_ini,"@name=zhzh_zgq_zcid@value=" + ls_temp + "@")
        registryset("HKEY_LOCAL_MACHINE\Software\wellbid","zcm",regstring!,ls_temp)
        f_save_ini(0)
        filedelete(easy.get_sytem_dir() + "\win_well.dll")
        w_face.ib_zc = true
        ls_line = "~r~n───────────────────────────          ~r~n"
        ls_t = ls_line + "恭喜您 注册成功!" + ls_line
        ls_t = ls_t + parent.st_cg.text + ls_line
        ls_t = ls_t + "注册版本: " + w_face.wf_ver_type() + ls_line

        if w_face.ii_zj_max = 0 then
                ls_t = ls_t + "支持 最大报价金额: 无限制" + ls_line
        else
                ls_t = ls_t + "支持 最大报价金额: " + string(w_face.ii_zj_max / 10000,"##########") + "万" + ls_line
        end if

        messagebox("提示",ls_t)
        halt
        return
else
        messagebox("提示",parent.st_sb.text)
end if

return


各位哥哥,能从这个程序里看出算法的关键是什么吗?WIN_WELL.DLL用文本打开是@bjzx_ver=8.246@setup_date=2008_05_05@@now_xm=7 @@old_xm=5 @,谁能提示一下?谢谢。

yingfeng 发表于 2008-5-5 18:48:59

看不出算法,唯一的:if wf_lisence(ls_temp) > 0

registryset("HKEY_LOCAL_MACHINE\Software\wellbid","zcm",regstring!,ls_temp)
注册码保存的位置(假码)

如果注册成功filedelete(easy.get_sytem_dir() + "\win_well.dll")则win_well.ddll应该会删除,所以应该不存在这个文件,

所以这不是关键

walili 发表于 2008-5-5 19:12:49

谢谢老大回复,那这段呢?这个软件很怪啊,在电脑里装好之后要注册码,在虚拟机里居然显示注册成功,根本都没有注册。

if w_face.ib_zc = false then
        m_zc_t.m_sm.triggerevent(clicked!)
end if

return
destroy(st_13)
destroy(st_12)
destroy(st_11)
destroy(st_10)
destroy(st_6)
destroy(st_5)
destroy(st_9)
destroy(st_8)
destroy(st_7)
destroy(p_3)
destroy(st_4)
destroy(cb_4)
destroy(st_3)
destroy(st_zy)
destroy(st_bz)
destroy(cb_3)
destroy(p_1)
destroy(cb_2)
destroy(cb_1)
destroy(sle_1)
destroy(st_2)
destroy(st_cg)
destroy(st_sb)
destroy(st_zc)
destroy(ln_1)
destroy(st_mess)
destroy(st_1)
destroy(gb_2)
destroy(p_2)
destroy(r_1)
destroy(st_cpuid)

string ls_lisence
string ls_temp
string ls_mess


easy.open_center(this)
st_cpuid.text = f_get_see_cpuid()
sle_1.text = easy.getpara(1,gs_ini,"zhzh_zgq_zcid")
ls_temp = trim(sle_1.text)

if wf_lisence(ls_temp) > 0 and w_face.wf_use_pj(1) = true then
        cb_1.enabled = false
        sle_1.displayonly = true
        cb_2.text = "关闭"
        st_zc.text = "您已经注册 " + w_face.wf_ver_type() + " ," + st_zc.text
        st_zc.visible = true
else
        st_zc.visible = true
        st_zc.text = "每台电脑注册码不一样,多台电脑使用要购买多个注册码 "

        if isvalid(w_see) = true then
                cb_2.text = "继续试用"
        else
                cb_2.text = "退出"
        end if

end if

m_zc_t = create m_zc
m_zc_t.m_1.visible = false
m_zc_t.m_3.visible = false
m_zc_t.m_zc3.text = easy.myreplace(m_zc_t.m_zc3.text,"XXX"," " + string(w_face.ii_zj_max_gr / 10000,"########") + "万")
m_zc_t.m_zc2.text = easy.myreplace(m_zc_t.m_zc2.text,"XXX",string(w_face.ii_zj_max_jj / 10000,"########") + "万")
ls_mess = w_face.is_lxfs_sm
st_mess.text = " " + ls_mess

if f_is_longsea() = true then
        st_mess.visible = false
        st_bz.visible = false
        st_zy.visible = false
end if

st_9.visible = true
ls_lisence = ""
return

kk378 发表于 2008-5-6 13:12:09

hyhnet 发表于 2008-5-6 16:04:08

感谢楼主分享~~~~~~~~~~~~~~~~/:014 /:014 /:014

walili 发表于 2008-5-6 19:40:28

谢谢回复。。。。能否帮我看一下这段里面是否有注册算法?
214598756789


//Public function getcpuid (none) returns string
string ls
string ls_1
integer li_loop
string ls_char
string ls_id
string disksn


ls = space(15)
disksn = space(100)
easy.getdisksn(0,disksn)
ls = trim(upper(disksn))
FOR li_loop = 1 TO len(ls) //4
        ls_char = string(mod(asc(mid(ls,li_loop,1)),10))
        ls_id = ls_id + ls_char
NEXT //4
IF len(trim(ls_id)) < 1 THEN ls_id = "214598756789"
RETURN ls_id


//Public function wf_lisence (string ls_pjid) returns any
//string ls_pjid
string ls_cpuid
string ls_return
string ls_test
real li_cpuid
real li_mark1
real li_mark2
real li_mark3
string ls_mark4
string ls_pass
integer li_loop
decimal ld_test
decimal ld_t
decimal ld_16


ls_cpuid = easy.getpara(1,gs_ini,"cpuid")
ls_pass = "1239"
li_cpuid = real(ls_cpuid)
FOR li_loop = 1 TO 100 //3
        li_mark1 = li_cpuid / integer(mid(ls_pass,1,2))
        li_mark2 = li_cpuid / integer(mid(ls_pass,2,2))
        li_mark3 = li_cpuid / integer(mid(ls_pass,3,2))
        ld_test = li_mark1 + li_mark2 + li_mark3
        li_cpuid = real(ld_test)
        IF ld_test < 1.0 THEN EXIT
NEXT //3
ld_test = li_mark1 + li_mark2 + li_mark3
ld_t = dec("0." + ls_pjid)
IF abs(ld_test - ld_t) < 0.00000000000000009 THEN //54
        w_face.wf_use_pj(4)
        IF isvalid(w_face) = TRUE THEN //57
                w_face.ii_zc_type = 1
                w_face.ii_zj_max = 0
        END IF //57
        RETURN w_face.ii_zc_type
END IF //54
ls_pass = "5148"
li_cpuid = real(ls_cpuid)
FOR li_loop = 1 TO 100 //21
        li_mark1 = li_cpuid / integer(mid(ls_pass,1,2))
        li_mark2 = li_cpuid / integer(mid(ls_pass,2,2))
        li_mark3 = li_cpuid / integer(mid(ls_pass,3,2))
        ld_test = li_mark1 + li_mark2 + li_mark3
        li_cpuid = real(ld_test)
        IF ld_test < 1.0 THEN EXIT
NEXT //21
ld_test = li_mark1 + li_mark2 + li_mark3
ld_t = dec("0." + ls_pjid)
IF abs(ld_test - ld_t) < 0.00000000000000009 THEN //92
        w_face.wf_use_pj(4)
        IF isvalid(w_face) = TRUE THEN //95
                w_face.ii_zc_type = 1
                w_face.ii_zj_max = w_face.ii_zj_max_jj
        END IF //95
        RETURN w_face.ii_zc_type
END IF //92
ls_pass = "9168"
li_cpuid = real(ls_cpuid)
FOR li_loop = 1 TO 100 //39
        li_mark1 = li_cpuid / integer(mid(ls_pass,1,2))
        li_mark2 = li_cpuid / integer(mid(ls_pass,2,2))
//SHU_ERROR:DEMO_SCRIPT_LIMIT.



//Public function f_write_psr (integer li_type,datawindow ldw_1) returns (none)
//integer li_type
//datawindow ldw_1


IF li_type = 0 THEN //5
        ldw_1.saveas(gs_current + "\open.psr",psreport!,FALSE)
        easy.setpara(1,gs_ini,"@name=now_xm@value=" + string(ldw_1.rowcount()) + "@")
ELSE //5
        ldw_1.saveas(gs_current + "\his.psr",psreport!,FALSE)
        easy.setpara(1,gs_ini,"@name=old_xm@value=" + string(ldw_1.rowcount()) + "@")
END IF //5

dhlkp 发表于 2008-5-7 09:43:08

学习了
多谢几位的指点~

walili 发表于 2008-5-7 11:42:30

我倒,灌水的啊...大侠们,指导一下啊.

网络断魂 发表于 2008-5-8 04:31:39

wf_lisence(ls_temp)

根据这个去找函数,

haopure 发表于 2008-5-8 08:01:47

这个代码不错/:014
页: [1] 2
查看完整版本: PB程序的算法。