百科问答小站 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 网友的相关建议: 
      

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




  

相关话题

  iOS有哪些功能是优于安卓的? 
  欧洲国家是否有墙? 
  你的初次渗透成功是怎么搞定的? 
  如何看待云舒离开阿里巴巴? 
  安全问题,一个标准的绑定修改邮件怎么写? 
  我们真的那么需要隐私吗? 
  为什么 .NET 平台在技术上远强过 Java,而多数大公司却仍采用后者? 
  Android 和 iOS 你更喜欢哪个系统?为什么? 
  为何高版本安卓系统不兼容旧 App ? 
  初学者对渗透测试的总结? 

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





© 2024-11-15 - tinynew.org. All Rights Reserved.
© 2024-11-15 - tinynew.org. 保留所有权利