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

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




  

相关话题

  至今最符合你的审美的是哪部手机? 
  如何看待爱否科技关于华为p20的评测短短几十分钟就下架? 
  鸿蒙系统到底是不是安卓系统? 
  江湖上流传着哪些关于R大RednaxelaFX的黑暗传说? 
  HTC 的崛起与衰落线大致是什么样子的? 
  MIUI和iOS差距主要体现在哪? 
  为什么别人家的手机可以更新安卓版本,而vivo和OPPO不能?是因为硬件不支持么?其他手机怎么能升级? 
  java为什么一直不肯在函数中加入传址调用? 
  木马和病毒有何区别? 
  Google Play 客户端的官方下载方法,就是如何在谷歌官网下 Play 商店? 

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





© 2024-12-18 - tinynew.org. All Rights Reserved.
© 2024-12-18 - tinynew.org. 保留所有权利