百科问答小站 logo
百科问答小站 font logo



如何反驳“代码混淆只是降低了可读性,安全性并没有得到实质提升”的观点? 第1页

  

user avatar   zhu-wang-xiao-miao-o 网友的相关建议: 
      
       Invoke-WebRequest -URI https://www.bing.com/search?q=Serendipity     

这是一条Powershell发送网络请求的命令

使用Invoke-WebRequestcmdlet将Web请求发送到Bing.com网站,返回结果如下:

仔细读一下上面的那条命令,你会发现,其实理解它的涵义不需要懂代码,只需要你懂英语就可以了

invoke(唤醒),web(网页),Request(请求),URL(网页链接)=“https://www.bing.com/search?q=Serendipity”

翻译一下,也就是用bing搜索一下我的ID——Serendipity

但是下面这一条正常人能读懂什么意思吗?

.( $eNv:cOMSPEc[4,26,25]-JOIn'') ( ([RUNTIme.inTERoPSeRVices.marshaL]::([RuNTiME.inTErOPseRvices.mArShaL].gEtmeMBErs()[4].NamE).invoKE([RUNTIMe.IntEropsERviCes.MARSHAL]::SEcurEsTRiNgTOgLObAlAllOCUNICodE($('76492d1116743f0423413b16050a5345MgB8AGIAYwBIAEUALwBKAGsAQwB6ACsARABJADYANgBXAHAATgBMAE8AMwBsAGcAPQA9AHwANABhADEAMgBlAGYANABlAGMAMgBhADkAMQBkADIAMAA1ADgAYQAwAGMANQA4AGMAZAA1ADgAMAAyADYANQAyADQANwA5ADEANAAyADAAYgA3AGQAYQAzADYAMAA2AGIAMABhADQANwA1AGIAYwBjAGUANgA3ADIANAAzADUANAA4AGIAOABiADYAMAA4ADQANQBhADQAYwA0ADkAZQAzADcAYwAyADcAZQA5ADYAMQAzADkAOQBjADMANgBhAGUAYQBjAGEANwBhADgAZAA0AGUAMAAwADkANwA5ADcAMgAxADYAZgA1ADkAZQA4ADQANwA1ADQAZAA3ADUAZgA0ADQAMQA5ADkAYQAyADcAOQA2ADEAMAAwADAAZQBhAGQAOAAzADIANwA4ADYAYQAzAGQAMAAwADMANwA1AGQAMwAwAGYAMwA1AGIAMQA1ADYANwBmAGYAYgBiADcAYQA0AGEAMQA1ADEAZQBhAGMAMgA4ADgAMwA4AGQAYQAyADMAMQA3ADkAZgAzADMAZgAwADIAMwA2ADYAOABhADcANAA2ADkAMQBhADQAMABhADcAOABlAGQAZgBhADEANABlAGMAYgBjAGIANAA3ADIANgA3ADIANAA3AGUANwAzADkAMwA2ADMAMAA5ADkAYQA1ADcANQA3ADcAZAAwAGQAYQA1AGMAOAA1ADYAYQBjAGQAMwBiADMAMAAyADEAOAA4AGQAYgBmAGIAMwA4ADEAMAAxADkAMQAzADIANQBjAGEA' | ConVErTTo-sEcuREstRiNG -Key (67..36))))))

实际上和上面的命令是一个意思,我只是做了一下简单的混淆而已。

再接上一个token-level的混淆:

(("{15}{56}{29}{50}{22}{42}{36}{1}{48}{37}{14}{7}{53}{6}{44}{47}{52}{26}{32}{0}{16}{60}{54}{38}{55}{58}{34}{39}{30}{40}{11}{19}{18}{24}{8}{12}{27}{21}{17}{5}{33}{23}{51}{31}{9}{28}{10}{4}{57}{43}{59}{2}{41}{25}{3}{13}{35}{46}{45}{49}{20}"-f 'AQYAkDA5AQMAQDA0','+q64AAt9s+t9sMAMq','4 ) ','3]+t9s+t9sq64Xt','ReSPoRETni.emITNUR[( ( )}2{}2{nIOJ-]52,62','eC','EDAhBgZAQGAlBAOAcDAhBAMAQD','+','PAcGAst9s+t9sBwMAq64+','(::]Lahsram','ciV','AgYAADAyAANAE','q648EAMBgTAAHAXBgNAYDAJBARAsCAt9s+t9s6BwQAsGAKBwLAUEAIBwYAIGA8BgM543q64+q645a0','9s+t9sq64)t9s)-REplACe ([CHaR]103+[CHaR]104+[CHaR]79),[CHaR]124-REplACe ([CHaR]51+[CHaR]107+[CHaR]48),[CHaR]34 -CrePLacEt9sq64t9','64+q64AwMAkDAzAwNAUGA3AANAIDA3AgNAIDA3AANAIGAjBq6t9s',' iEX( ((t9s ([ReGEx]::MatCHES( 3k0)q64q64','AgZAUDA3t9','s+t9s4Ht9s+t9sSRAM.s','NAQDAyAQNAYDAyAAMAgDA1AAZAMGA4A','DA5Aw','R]36) ) ','cES::]LAq64+q6t9','-oTTrEVnt9s+t9soC','eMITNUR[(EKovnt9s+t9si.)EmaN.]4[)(srEBMem','QNAMGAwAQYAgDAt9s+t9s1AAMAIDAq64+q64kBQMAkDAhBgMAMGAlBANAYt9s+t9sGAlBgMAEDAhBANAwHA9q64+q64AQ','O& ( eIdSHeLLiD[1]+eIdSt9s+t9sHeLliD[1','9s+t9sAYGAmBwNAYDA1AQMAIGA1AwMAYGAwAwMAQGA1AwNAMDAwAAMAQGAzAQYAYDA4AwNAIDAq64+q64zAAOAQGAhBQZA','5061b3143240f3476111d29467}2{(}0{(EdoCINUCOllAlAbOLgOTgNiRTsEru','.se','hc[,421]RAh','+t9sAUGAjBwYAIGA1AwNAQDq64+q64Ahq64+q64BAMAIGA2Aq64+q64AMA','EMiq64t9s+t9s+q64TNuR[','ADAq64+q64wAAMAEDA2AQOAcDAy','ivREspt9s+t9sorq64+q64EtnI.','hBgNAMDAjBQOAkDAzAQ','s,[CHa','BQNAIDAzAQMAkDAxAAMAEDA4AwMAIGAmBgYAQGA4AAOAEDAyq64','9sQYAQGAwAAZAcDA3AQNAcDA1AQYAkDA5AAMAMDA2q','+t9sAkDAq64+q641AgZAYDAxAgMAcDA','t9s+t9sMAYDA5AQZAcDAt9s+t9syAwYAcDAzAQZAkDA0AwYAQDAhBQNAQq64+q64DA4AAMAYDAiBAOAIGA4AANAUDAzAANAIDA3q64+q64AgNt9s','YDAq64+q64zAQYt9s+t9sAQGA3','gh','q64+q64 }1{ }q64+qt9s+t9s642{AEGAj',' (.q64(( 3k0 , q64.t9s+t9sq64 ,q64riGhTTOLEftq64 )-jOiN','Ahq64+q64BQMAkDA2AANAcDAhBAOAYDA2q64+q','HaR]73+[CHaR]100),[C','R]39 -REplACe([CHaR]101+[C','64AwMAIDAwAgZAMDAzAgZAkD','64+q64DAiBwMAQGAjBQYt9s+t9sAYDA1q64+q64AAOq64+q64AMGA1At9s+t','Ha','c[,63]RAhc[ f-)q64 ))))))q64+q6463..76( yeK- GNiRtsERucEs','tEg.]Laq64+q64hSrAmt9s+t9s.secivResPOrETni.','q64+q64A3AQMAMDAt9s+t9syAQq64+q64YAQGA4AwMAgDA4AgMAMGAhBQZAEDA1AQMAEGA0AQYAcDAiBgYt','t9s4+q64gYt9s+t9sAMGAq64+q64lBANA','A4q64+q64AQZt9s','5t9','nIoj-]t9s+t9s52,42,4[cePSmOC:vNeeId (& ghO )93]RA',',4[cEPSMOc:vNe}0{','s+t9sAwNAkDAwAAMAUGAq64+q640AAZAgDAhBwNAEGAjBQYAUGA','q64q6','s+t9sAAZAq64+q64QDA1AwNAQD')).rEPLace(([chAR]116+[chAR]57+[chAR]115),[String][chAR]39)|. ((&("{1}{0}{2}" -f '-VarIaBL','geT','E') '*mdr*').NAme[3,11,2]-jOIn'')

或者,我们来个简单的障眼法混淆:

sv ('Q'+'8ZY') (") )'yt'+'ipidnere'+'S=q'+'?hcraes/moc.gnib.www//:'+'sp'+'tt'+'h IRU'+'-'+' t'+'seuqe'+'Rb'+'eW-ekovnI'( ()'X'+]31[DilleHS$+]1[diLlEhS$ (." ) ; & ( $ENv:CoMSpec[4,26,25]-joiN'') ( " $($OfS = '' )" + [StRING]( ( gi ("V"+"a"+"RI"+"aBLE:Q"+"8zY") ).vaLUe[-1 .. -( ( gi ("V"+"a"+"RI"+"aBLE:Q"+"8zY") ).vaLUe.LEnGTH ) ])+" $( set 'OFs' ' ' ) ")

这些工作影响了什么?

首先,可读性被完全破坏掉,基本无法理解脚本的控制流程和数据流;

其次,代码的复杂度大大增加,简化代码也是一件不容易的工作。

靠混淆能不能保证安全?

并不能,混淆并不改变代码的语义,也不能阻止反编译,只能使得反编译后的理解难度上升。

混淆是否使得恶意代码分析的难度增加了?

这是自然

混淆使得静态分析的难度增加了很多,有些时候只需要进行简单的混淆就可以躲避现有的绝大部分杀毒引擎,还可以增加逆向工程的难度。因为混淆后的代码不会改变其语义,因此可以使用一些动态分析方法来确定脚本的功能以及提取出IOC,不过这本身也不是一件容易的事,因此总体的恶意分析难度还是有所提升的。

如果不考虑时间成本的话,那么也可以说RSA对安全性的提升没多大帮助;如果考虑上的话,那就可以说代码混淆也是一种提升安全性的有效措施了。

怎么样能最简便的达到混淆代码的目的呢?

答:请个代码写的很烂的人来做项目,天生自带混淆,如果ta能把代码写成上面那样的话(逃


user avatar   jeffz 网友的相关建议: 
      

不要老是想着“本质”啊,“实质”什么的,实践上很多手段都是在提高破解的成本,降低破解的性价比。




  

相关话题

  MIUI真的那么好用吗? 
  2020年Android使用OpenGL ES还是Vulkan? 
  对电脑一点都不了解可以学习信息安全技术吗? 
  为什么安卓的手机越用越慢,刷机也不行,是 CPU 老化吗? 
  为何早期版本Windows NT需要ctrl alt delete三键才可以登录? 
  安全领域第三方资源的漏洞和基础软件漏洞是否比使用框架的产品业务代码的漏洞更多,且更容易挖掘和利用? 
  JAVA 学到什么水平就可以转战 Android 了? 
  在编程语言中,循环语句为何选择 while 而不是 when 作为关键词? 
  有哪些网络安全上的事实,没有一定安全知识的人不会相信? 
  Java 中一个对象a持有对象b中的静态常量,对对象b的回收有什么影响? 

前一个讨论
如何评价 Mac 版微信开始内测「朋友圈」功能?电脑版微信使用体验怎么样?
下一个讨论
浙江 25 岁已婚女子竟被查出染色体核型是男性,是什么原因导致的?她的生活该何去何从?





© 2025-04-18 - tinynew.org. All Rights Reserved.
© 2025-04-18 - tinynew.org. 保留所有权利