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

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




  

相关话题

  java学成什么样子可以出去实习? 
  鸿蒙手机来了,如果可能,你会选择鸿蒙操作系统放弃安卓吗? 
  Android 系统无法被分支 (fork) 吗,AOSP 和 GMS 是何关系? 
  为什么现在部分985高校还是给大一上C语言课? 
  既然鸿蒙是基于安卓系统开发,那么近期关于俄罗斯拟使用鸿蒙规避安卓制裁的价值有多大? 
  怎样规劝团队里的C#工作人员学习和使用JAVA? 
  为什么很多人坚持抓着鸿蒙的安卓痕迹不放? 
  无线充电是不是「鸡肋」?有哪些无线充电的使用场景? 
  如何评价 2020 年 8 月 12 日正式开启预订的 Surface Duo?有什么亮点和不足? 
  一个文件分发服务器,要支持多个(几千个)请求下载,文件比较大,用java socket,ftp还是http支持? 

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





© 2024-05-20 - tinynew.org. All Rights Reserved.
© 2024-05-20 - tinynew.org. 保留所有权利