1,感谢各论坛大虾对本菜鸟的支持。
2,感谢看雪学院论坛精华。
3,感谢PbKiller的作者(顺带一句PbKiller V2.5.03哪有好用的)
此软件的PB编的(幸亏有个好心的大虾告知)
后看了雪学院论坛精华7,对PB软件有了皮毛了解
一开始不知什么软件编的下了不少断点都断不下来.惨。。
后来有了PbKiller 对*.pbd(因软件要钱所以不便说明)
发现如下代码:
if len(parent.em_1.text) <> 4 or len(parent.em_2.text) <> 4 or len(parent.em_3.text) <> 4 or len(parent.em_4.text) <> 4 or len(parent.em_5.text) <> 4 then
messagebox("注册码错误","请输入完整的注册码!")
return
end if
ls_rn = parent.em_1.text + parent.em_2.text + parent.em_3.text + parent.em_4.text + parent.em_5.text
lds_rn = create datastore
lds_rn.dataobject = "d_rn"
lds_rn.settransobject(sqlca)
lds_rn.retrieve()
ll_rows = lds_rn.rowcount()
for ll_row = 1 to ll_rows
lds_rn.deleterow(1)
next
ll_row = lds_rn.insertrow(0)
lds_rn.setitem(ll_row,"id",1)
lds_rn.setitem(ll_row,"rn",ls_rn)
rtn = lds_rn.update()
if rtn = 1 then
commit using sqlca;
else
rollback using sqlca;
end if
acad.indoor()
if acad.ib_redrawed = true then
messagebox("软件注册","软件注册注册成功!~n您已经拥有 ****** 的全部功能!")
if isvalid(w_gbox_input) = false and isvalid(w_gbox_cust) = false and isvalid(w_frame) = false then
open(w_start)
end if
close(parent)
return
else
messagebox("软件注册","您输入的注册码无效!请与供应商联系获得正确的注册码!")
end if
return
看来 acad.ib_redrawed = true 就是注册成功了
找acad.ib_redrawed在什么地方。。。。
终于找到了在*.pdb里代码如下:
string ls_out
string ls_number_code = "0123456789"
string ls_string_code = "WZBNCHSDXR"
string ls_matrix = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
long ll_no
long ll_len
long ll_code_no
long ll_code_len
long ll_sum
string ls_digit
string ls_digit_revert
string ls_code_char
string ls_encrypt_char
integer li_code_pos
integer li_matrix_pos
ll_len = len(as_in)
for ll_no = 1 to ll_len
ls_digit = mid(as_in,ll_no,1)
ls_digit_revert = mid(as_in,ll_len - ll_no + 1,1)
if not isnumber(ls_digit) then
messagebox("提示",gs_solid_info[1])
return ""
end if
li_code_pos = pos(ls_number_code,ls_digit)
ls_code_char = mid(ls_string_code,li_code_pos,1)
ll_sum = 167 * ll_sum + long(ls_digit_revert) + li_code_pos
li_matrix_pos = mod(pos(ls_matrix,ls_code_char) + ll_sum,26)
if li_matrix_pos = 0 then
li_matrix_pos = 1
end if
ls_encrypt_char = mid(ls_matrix,li_matrix_pos,1)
ls_out = ls_out + ls_encrypt_char
next
return ls_out
这下好了知算法了。
可是本人对PB编程不懂。。看不懂算法(希望各位大虾补个VB源码算法)
本人对VB有一点懂。。。
但是有一个笨方法(大虾不要见笑)就把ABCD..26个字母改在26个A
不就搞定了吗?
后来也验正了这一点。(在注册码处输入20个A成功了)
再次希望各位大虾补个VB源码算法,多谢
我的网络硬盘:
http://xiaoma76.ys168.com
[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!