之前有对这个问题讨论:
http://blog.csdn.net/chengg0769/archive/2009/02/28/3944575.aspx
但是针对的是比较通用的想法。单就pb程序来说。主要是应对反编译软件的侵害。
depb(1.0版视乎很多bug,测试一个结构也无法反编译),pbkiller,shudepb。因为pb采用vm执行,所以汇编和调试根本对pb写的程序威胁不是很严重。
粗略地说有这末几种保护方式:
1. machine code方式的单一exe文件编译。
这个用反编译软件测试,都只能看到变量申明,无法看到源代码。 如果你的程序会出现无法编译成一个exe的情况(基本无法编译,如果是软件很复杂的情况下),那你不妨把要害部分作在一个独立的比较小的可执行文件中,比如注册码验证,然后这个小的可执行文件生成一个外部文件,比如100K大小的二进制文件。随即马上调用主程序运行整个程序,而主程序将这个外部100K文件第一时间读入blob变量,然后删除外部100K文件。然后在主程序里有意无意地在很多地方引用这个blob中的数值对软件进行限制。 一般而言,除非是作者自己反编译自己的软件,所以一般破解者是无法真正完整(或者说不会有相应的专业知识和耐心)反编译的。可以这么认为,他们只能很容易偷窥到一些代码,但是你的代码写明要把一个数据检索的行数限制为100行,他也没有办法。应该他不可能反编译后再进行编译打包嘛!对不对。可以我们在【可以看到代码而无法修改代码并重新打包】这层意义上来防止他是可以的。试想,如果你在100个地方都做了手脚,他难道有那个耐心来弄个工具,达到什么什么效果?
所以总结一句就是,把关键的敏感代码放入machine cdoe的 单一exe编译文件,而在主程序里搞鬼,尽量搞得破解者莫名其妙。他不懂程序,他的难度就非常高。
2. 用pbni的方式编译敏感代码,然后转成pbd,一般反编译软件只能编译传统的pbd和dll,不能反出vc++编译后转过来的pbd。
3. 如果在一个工程里,一个全局的对象出现过多次,它会按lib的次序查找,所以这一点也可以拿来迷惑破解者。比如我对若干函数,甚至窗体生成多个拷贝对象,把测试版的放在前面,用单一的机器码程序来验证注册码,如果注册码OK,那我可以生成一个加密的文件,这个文件指示出lib的顺序。在主程序里设置这个顺序。假如说这个顺序是: 10001.pbd 10002.pbd 10003.pbd 当然我这个顺序列表是从加密的文件内取出的。因为破解者他用shudepb能看到代码,他也没法调试,毕竟软件反编译后很多错误。没有几天几夜是无法修改掉错误处的,所以我们可以认为他不具备调试的条件。而具体你的lib的顺序是怎么样的,他应该不清楚。
你的真正的pbd你可以动态从某个文件里创建出来。更增加了破解的难度。
你可以把所有pbd或者dll从一个包里解析出来,用一个独立的exe文件来执行这个任务,就是在主程序下生成多个假的pbd文件,然后随即在window系统目录或者其他path所指向的目录生出pbd,然后把这个清单通过主程序的parmlist传入,在主程序的application的open事件中设置库路劲。你可以一次性释放出几百个文件来。用完之后删除,下次启动再次生成。这样文件名可以随机和随意起名。静态反编译时,pj者无法确认你的正确的对象在哪里。pj者修改pbd文件也没有用。
鉴于目前pbkiller和shudepb,最好在启动时创建上百个甚至上千个文件。。。等pj者去研究吧。
总之。很多编译型软件是很容易被破解掉的。其原因就是别人asm后跟踪了jxxp这样的汇编指令。而pb程序我认为只要足够地愚弄破解者。就能尽量拖延时间,保护好软件。让其破解的时间成本和难度增加,迷幻度增加是一个办法。 试想,如果一个房门,一把锁,想打开它,是可以很快速地想到办法,比较暴力的方法就是砸掉锁,或者砸掉门。而你如果采用足够迷惑的方法,让其根本不晓得门在哪里,或者设置若干假门,耽误他的时间,增加它的挫折度。我想也是一个好的方法。 4. 网络认证,把认证部分放在网络服务器上,认证完,下载一个加密文件下来。用其对程序的一些参数进行设置。当然有人会说破解者有相当的技术,他能怎么怎么样!但是他工程量绝不亚于重新开发10套软件的工作量嘛。他何苦呢?
分享到:
相关推荐
在这项研究中,通过使用Visual MINTEQ软件进行建模,研究了赞比亚铜带省两个不同土壤样品中的Cu,Co和Pb的种类(离子形式)的浓度和类型(离子形式)。 由于废矿石堆放场中的矿物质含量较高,因此来自矿石堆放场的...
本研究运用ReCiPe2016软件计算了煤矸石和煤在330 MW煤粉炉、50 kW循环流化床和实验室燃烧时As和Pb排放的环境影响值。结果表明当煤在330 MW煤粉炉燃烧的时候,底渣、飞灰、烟气中的As排放对环境的影响值分别是3.28×10...
主要是做了个图书管理系统论文。用pb软件开发工具连接数据库,用来查询,检索。删除等功能
3.Plackett-Burman(PB)、Central Composite Design (CCD)、Box-Behnken Design(BBD)是最常用的实验设计方法。 4.Design-Expert是全球顶尖级的实验设计软件。 5.在已经发表的有关响应曲面(RSM)优化试验的论文中,...
大气再分析产品涵盖了历史一段时期内的大气温度、...点面结合的混合数据管理,能实现对PB级再分析产品的高效管理,具有高扩展、低延迟等特点。场单元及点单元的点面结合管理方式可满足不同时空跨度的数据检索应用需求。
毕业设计论文-源码-pb图书管理系统(设计源.zip
毕业设计论文-源码-PB的图书管理系统(设计源码).zip
考察了3种磷酸盐CaHPO4、Ca(H2PO4)2、Na3PO4对水溶液中 Pb2+的稳定化效果,比较了反应时间和初始Pb2+浓度变化对稳定化效果的影响,并采用Visual Minteq软件对反应进行模拟。结果表明:这3种磷酸盐均可通过生成沉淀的...
DS18B20和压力传感器以及LCD1602的数据输出引脚与单片机的PB0~PB7引脚连接,其电源和地直接与单片机开发板的电源和地连接可实现给各模块供电的目的。 本资源包含STM32源码、各模块资料、本系统论文,说明文档 软件...
数据分析在SAS软件9.1.3版中进行。 根据结果,在秸秆和砂处理的非微集水区以及在PB处理的微集水区获得了最高的Cl含量。 通过秸秆处理在非微集水区获得的锌含量最高(1.106)。 覆盖对铁的影响结果表明,四种...
麦肯锡全球研究所给出的定义是:一 种规模大到在获取、存储、管理、分 析方面大大超出了传统数据库软件工 具能力范围的数据集合,具有海量的 数据规模、快速的数据流转、多样的 数据类型和价值密度低四大特征。...
整体设计思路:stm32的PA0~PA7与4.2英寸液晶屏的8个数据位通信,通过PB8、PB9,、PB10、PB11分别控制液晶屏的RST、CS、RS、WR、液晶屏的RD接3.3v来控制液晶屏的显示。通过PB0输入信号进行信号采集。PB1为暂停键,方便...
采用一次培养实验方法,研究了Pb(Ⅱ)对赤潮异弯藻(Heterosigma akashiwo Hada)、亚心形扁藻(Platymonas subcordiforus)、中肋骨条藻[Skeletonema costatuma (Grevile)Cleve]和旋链角毛藻(Chaetoceros ...
采集扬州市中心城区道路两侧绿化带中的土壤样品,...采用SPSS软件分析各重金属质量分数之间的关系,可知w(Pb)-w(Zn),w(Pb)-w(Cd),w(Pb)-w(Cr),w(Pb)-u,(Cu),w(Cu)-w(Cr), w,(Zn)-w-(Cd),w(Cd)-w(Cr),w(Cu)-讨
PB+SQL医院门诊信息系统 JSP+SQL基于J2EE的网上书店系统 VB+SQL仓库管理 VC+ACCESS 16PF测评系统分析与设计 VB026图书管理系统 VC++ sql班级事务管理系统 VB+ACCESS高校科研管理系统 VC++ sql商品销售管理系统 VB+...
无数事实证明再好的蓄电池在不恰当的充电方式下使用,也会是最差的电池。蓄电池很多被认为是用坏的,其实却是使用不适合充电器充坏的。同时,蓄电池不耐用,充满电用了两天三天又要充电,并且充电时间长使很多使用者...
此课题研究的学生信息管理系统适合于高等学校,基于C/S体系结构,采用PB开发工具和SQL Server数据库来设计。开发过程与成果应符合GB/T 11457-1995软件工程术语,GB/T 8567-1988计算机软件产品开发文件编制指南等。 ...
通过对东北二龙湾玛珥湖项部无扰动岩心显微研究,证明此岩心发育有良好的年纹层。据精确统计,0~5.5cm间为36个年纹层,纹层计年的误差为4%~7%,年纹层厚度为1.1~2mm不等,平均沉积速率为1.53mm/a,5.5cm处对应于...
Apache Hadoop 是一个用java语言实现的软件框架,在由大量计算机组成 中运行海量数据的分布式计算,它可以让应用程序支持上千个节点和PB级别的 Hadoop是从google的MapReduce和Google文件系统的论文获得的灵 感。
建设和运维成本⾼昂: (1)问题:传统数据库和分析软件进⾏海量数据分析将导致天价的软件授权许可费⽤;外部数据分析服务同样价格昂贵,并且 ⾯临安全性和灵活性局限; (2)难点:如何低成本⾼效率的建设和运维...