下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PowerBuilder Obfuscator PB混淆器技术路线与设计实现混淆器技术路线与设计实现 2009.07-2011-05-08http:/PBD(P-Code 伪码编译模式伪码编译模式)编译后文件编译后文件: Main.exe,Base.pbd,Ency.pbd,Inv.pbd,Pur.pbd.我们的模组信息被我们的模组信息被PBD,DLL文件名曝光文件名曝光.我们采用混淆我们采用混淆pbd文件名的方式文件名的方式:001,002,003 不带文件后缀方式不带文件后缀方式;001.pbd,002.pbd,003.pbd 保持后缀方式保持后缀方式001.sys,002.jpg,003
2、.dbf 改变后缀方式改变后缀方式后缀的意义不大后缀的意义不大,重要的是文件改名重要的是文件改名,彻底移除了模组信息彻底移除了模组信息混淆对象名混淆对象名(类名类名),如,如w_main.win改为改为0000001.win混淆对象的属性,实例变量,控件名等,隐藏对象的功能和接口混淆对象的属性,实例变量,控件名等,隐藏对象的功能和接口混淆对象内的事件,函数,函数参数等敏感信息混淆对象内的事件,函数,函数参数等敏感信息,隐藏其用途隐藏其用途混淆本地变量名,进入代码无法获知代码实际意义混淆本地变量名,进入代码无法获知代码实际意义DLL(Machine-Code 机器码编译方式机器码编译方式)PBD
3、中的对象名中的对象名通过对象名我们清晰地知道该对象的作用通过对象名我们清晰地知道该对象的作用w_main.win,gf_encryption.fun,w_register.win对象内部的事件,窗体函数,外部函数等对象内部的事件,窗体函数,外部函数等通过名字我们就晓得该函数或者事件实现的功能通过名字我们就晓得该函数或者事件实现的功能 ue_encode(), ue_register(), wf_register(), wfe_read_dog_info()对象中的属性和控件对象中的属性和控件通过属性和控件我们知道该对象公开的接口通过属性和控件我们知道该对象公开的接口 String is_Dog
4、_ID, Title,Company_NameCommandButton cb_Regist代码段内的本地变量代码段内的本地变量本地变量明确的指明了我们的算法具体指代意义本地变量明确的指明了我们的算法具体指代意义String: ls_machine_ID,ls_Dog_IDInt: li_limit,li_demo_limitP-Code是高阶的,容易被反编译是高阶的,容易被反编译.反编译后,其他人得到源码或者破解软件反编译后,其他人得到源码或者破解软件Code: 01 00 02 00 03 00 01 00 00 00.If a=100 then open(w_main)Else halt
5、 closeEnd ifP-Code 在在DLL是属于编译的临时产是属于编译的临时产物物,对运行无作用对运行无作用,会被反编译会被反编译移除伪码从移除伪码从 DLL文件中文件中混淆代码,混淆流程混淆代码,混淆流程逻辑陷阱,自定义逻辑陷阱逻辑陷阱,自定义逻辑陷阱伪造的,假的对象,扰乱反编译程序的分析伪造的,假的对象,扰乱反编译程序的分析修改文件格式修改文件格式 加密字符串,阻止搜索关键文字加密字符串,阻止搜索关键文字保护您的 PowerBuilder-Code(PB) 从PB5到PB12全部版本P-Code混淆功能将正常的将正常的P-Code码分解切分成块码分解切分成块通过连接符进行重新组装,保
6、持逻辑顺序不变通过连接符进行重新组装,保持逻辑顺序不变程序块位置随机决定,无固定规律程序块位置随机决定,无固定规律加入数十种常规运算类逻辑陷阱,阻止静态分析。例如:加入数十种常规运算类逻辑陷阱,阻止静态分析。例如: if (1+2)*3=3+5-6*(23) then if 1+2 -3 * 4/5 = 100/3 then /正常出口或一堆乱码正常出口或一堆乱码 /正常出口或一堆乱码正常出口或一堆乱码 else else /正常出口或一堆乱码正常出口或一堆乱码 /正常出口或一堆乱码正常出口或一堆乱码 end if end if 以上算式,做到随机选择运算种类和运算次数以上算式,做到随机选择运
7、算种类和运算次数,混淆器能预先计算正常的出口,而反编译无法分析到正确的出口混淆器能预先计算正常的出口,而反编译无法分析到正确的出口 因为反编译尚不具备编译器的扫描分析能力因为反编译尚不具备编译器的扫描分析能力,并且编译器的能力也仅限语法扫描并且编译器的能力也仅限语法扫描,编译器也无法预知出口编译器也无法预知出口,因为表达因为表达式可能有变量存在而非全部是字面量式可能有变量存在而非全部是字面量程序员自定义逻辑陷阱程序员自定义逻辑陷阱 if fileexists(“c:123.txt”) and gf_xx(123) gf_yy(“abc”) then /正常出口或一堆乱码正常出口或一堆乱码 el
8、se /正常出口或一堆乱码正常出口或一堆乱码 end if 由程序员配合设置程序流程的正常出口和逻辑陷阱位置由程序员配合设置程序流程的正常出口和逻辑陷阱位置,强力阻止机械反向分析强力阻止机械反向分析 因为以上函数或者算式需要运行时方可知道结果因为以上函数或者算式需要运行时方可知道结果,连编译器也无法预先得之结果连编译器也无法预先得之结果,反编译器更无可能得之反编译器更无可能得之将某个对象将某个对象(从来不用,专门用来对付反编译的从来不用,专门用来对付反编译的)从十六进制去随机破坏扰乱从十六进制去随机破坏扰乱 反编译反编正常对象没问题反编译反编正常对象没问题,但是要判断一个对象的二进制是否为正常
9、的但是要判断一个对象的二进制是否为正常的,不容易不容易,因为没有参照因为没有参照将某个对象将某个对象(正常对象如正常对象如w_main)内部的某个函数内部的某个函数(从来不用,专门用来对付反编译的从来不用,专门用来对付反编译的,如如wf_get_dogid),将其从十六进将其从十六进制上去破坏扰乱制上去破坏扰乱 反编译反编正常函数或事件没问题反编译反编正常函数或事件没问题,但是要判断一个函数或事件的二进制是否为正常的但是要判断一个函数或事件的二进制是否为正常的,不容易不容易,因为没有参照因为没有参照对对PBD和和DLL文件在文件结构上的某些字节进行移除或者破坏文件在文件结构上的某些字节进行移除
10、或者破坏对对Local变量名移除,对函数参数名进行移除,隐藏代码和函数的用途变量名移除,对函数参数名进行移除,隐藏代码和函数的用途 移除或者替换是绝对不可能还原的移除或者替换是绝对不可能还原的,即使重新命名即使重新命名,在非常复杂和晦涩的代码中即使重命名为在非常复杂和晦涩的代码中即使重命名为ll_1,ll_2,ls_1,ls_2也也不可能得到有用的代码不可能得到有用的代码,这对阻止还原出代码十分有用这对阻止还原出代码十分有用,也使得代码无可读性也使得代码无可读性,失去被反的价值失去被反的价值混淆器对文件修改时并不留下版本信息,不同版本之间差异非常大混淆器对文件修改时并不留下版本信息,不同版本之
11、间差异非常大 反编译无法根据混淆器的版本特点进行开发反混淆器反编译无法根据混淆器的版本特点进行开发反混淆器多种方法,相同的作用:阻止反编译的正向机械式静态分析多种方法,相同的作用:阻止反编译的正向机械式静态分析,保护软件版权保护软件版权 PB中的源码如此书写中的源码如此书写混淆器操作界面:留下加密字符,移除明码字符混淆器操作界面:留下加密字符,移除明码字符移除明码前后的十六进制对比移除明码前后的十六进制对比提示框显示出前后的结果提示框显示出前后的结果字符串加字符串加密密软件中直接书写的文字字面量容易被十六进制编辑器搜索到敏感字符而修改掉,混淆器采用让程员在编程时同时输入加密字符和明码的约定,混淆器在PBD中将明码字符串移除掉即可达到效果修
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 菜品采购验收制度
- 蔬菜配送采购制度
- 行政单位新型采购人制度
- 行政采购流程制度
- 装修工程采购制度
- 西街街道采购招标制度
- 计量采购验收管理制度
- 设备采购全流程管理制度
- 设施设备采购方案制度
- 谈判药品采购销售制度
- 员工停车申请管理办法
- 《数智时代下的供应链管理:理论与实践》课件 第1-7章 理解供应链- 供应链经典的生产计划
- 知情同意告知培训
- 牵引挂车租赁协议书
- 江苏单招试题题库及答案
- 江苏省宿迁市沭阳县2024-2025学年高一下学期期中英语试题(原卷版+解析版)
- 废旧空桶处置合同协议
- 机加工车间管理制度
- 2025年安徽职业技术学院单招职业适应性考试题库含答案
- DBJT45-032-2016 CPS防水密封膏施工技术规程
- 苏州小升初择校英语试卷单选题100道及答案
评论
0/150
提交评论