软件检测只是一个参考,在OD中实际运行时,你会看到程序主要通过pb*.dll来执行,而这几个DLL都是PB的运行库。由于PB的解释特性,实际上用户代码都在*.pdb文件中,这时候就可以考虑反编译了。实际上,本程序的正版注册只是作者设计的陷阱,伪注册而已。伪注册代码如下:
if ((((((((upper(parent.sle_2.text) = "DVCHEN") or (upper(parent.sle_2.text) = "DVCHEN[OCN]")) or (upper(parent.sle_2.text) = "DVCHEN[D4S]")) or (upper(parent.sle_2.text) = "CHINADFORCE")) or (upper(parent.sle_2.text) = "CHINAOCN")) or (parent.sle_2.text = "5CCLUB")) or (parent.sle_2.text = "樱园阁酒店")) or (upper(parent.sle_2.text) = "5CCLUB")) then
messagebox("提示","注册成功!!!")
return
end if
ls_hotel_name = parent.sle_2.text
if parent.sle_1.text = convert10to16(f_get_py(ls_hotel_name)) then
messagebox("信息","注册成功,感谢您购买顶尖软件")
else
messagebox("信息","你输入的注册号码不正确")
end if
因此,你的注册名只要是:DVCHEN、DVCHEN[OCN]等等内置的名称,哪怕没有注册码也能显示注册成功。如果不是内置名称,那么其伪注册码为注册中文名的汉语拼音的第一个字母(大写)的ASCII码,例如中国大酒店,那么注册码就是ZGDJD的ASCII码。但是,这只是伪注册,注册成功只是假象,哄你开心而已。由于PB的解释执行特性,作者在反破解方面做了大量的工作,可以说能想的都想了:门卡注册、身份证注册、代理商OEM注册均采用了不同的掩码转换,不过程序的脆弱性也非常致命,由于影响原作者的利益,我就不写下去了,各位可以自行发挥,另外程序验证正版的方式是硬盘序列号的转换,不过作者做了巧妙的设置,以便用户即使换电脑也不受影响,呵呵,挺有趣的!
楼上的朋友说这样段是伪代码:
IF (((((((upper(PARENT.sle_2.text) = "DVCHEN" OR upper(PARENT.sle_2.text) = "DVCHEN[OCN]") OR upper(PARENT.sle_2.text) = "DVCHEN[D4S]") OR upper(PARENT.sle_2.text) = "CHINADFORCE") OR upper(PARENT.sle_2.text) = "CHINAOCN") OR PARENT.sle_2.text = "5CCLUB") OR PARENT.sle_2.text = "樱园阁酒店") OR upper(PARENT.sle_2.text) = "5CCLUB") THEN
messagebox("提示","注册成功!!!")
RETURN
END IF
ls_hotel_name = PARENT.sle_2.text
IF PARENT.sle_1.text = convert10to16(f_get_py(ls_hotel_name)) THEN messagebox("信息","注册成功,感谢您购买顶尖软件")
ELSE
messagebox("信息","你输入的注册号码不正确")
END IF
RETURN