×

Opening Payment Cryptocurrencies & Updating our Terms Of Service (01 Jan 2020)

For the most loyal of our services, we inform you that we have updated our "Terms Of Service", which includes a paragraph on payment regulations with "PayPal" (More information here) : www.dezender.net/forums/2-announcements/...erms-of-service.html

Decrypt ionCube php script

  • Posts: 2
  • Thank you received: 0

Decrypt ionCube php script was created by mr_markus

Hello!

I need help decoding some code encrypted with ionCube.
This is a part of it. Please let me know if this can be decoded. Thanks!
<?php
$_="RPSTsgdW1hc2soJzA/PjbCAkX1pFU1KCFkZWZpbmVkKERJUl9Tw/IGdsb2JhAnKTsgaWYgX1NFUCwgRERVApKSAwMDX1NFUEFkZWZpbmUoRElSlSRUNUT1JZd6ZXN0b2lfZGlyJ11SQVWkVTVE9JWyX1pFU1RPSVsnemVzdG9pRPUik7ICRfBydHJpbSgkRElSX1NFUDX2RpcicgPST0lbJ3NdLCAnLycpIC4gsgJF9aRVNUgkX1pFU1RPSVsnc2lpdGPSBydHJpbSJy8nKSAuIERJUl9TRVA7VfZGlyJ10g9kaXInXSwgX1pFU1RPSVIGRlZml0ZVX2RpciduZShaVE9QLCAksnemVzdG9ppUT1AgLiAnbGliJyBdKTKFpMSUIsIFOyBkZWZpbmUoWkxJQlgssgZGVmaW5lRJUl9TRVApLiBESVJfU0IFpUT1AuIEaW5lKFogLiAnbGlieCcgVQKTsgZGVmUnIC4gRElSX1NFUClMSUIC4gJ2xpYnZW5zZV92YWxpZGF0ZShaJVLCBaVE9QBvcHRfbGljbmNlKFpMSUVE9QKTs7IHYS5waHAgcmVxdWlyZV9vIgLiAnbWV0pMSUIgLiAnZGF0YXMnKTZV9vbmNlKFOyByZXF1aXJlX29uY2UosgcmVxdWlyJlLnBocCcpcGhwJyk7IHWkxJQiB0b3b25jZSguICdyZW5kZXIuJlcXVpcmVfcpOyBpZiAoIWlzc2VaTEc3FsLnBocCbnN0YWxsZXInXSkpICRflCIC4gJ215RfR0VUWydpbmZpZyddIDWkVTVE90KCOjpnZXRJWydiYXNlX2Nv0gWmVzdG9pplc3RvaVJlbmRlcjpfY2YXNlJyk7IFZXN0b2lSZW5kZXI6OiRz9uZmlnKCdi5pdCgpOyBaX2Z1bmN0aWbWFydHk6aWbmRfcmUtPnJlZ2lzdGVy9uKCdhcHBl1hcnR5X2Z1bmN0aW9zdWZXN0b2lfc2ZXN1bHRzJyk7IFplc3Rvx0cycsICd6FwcGVuZF9yeS0+cmVnaXaVJlbmRuX2Y3Rpb25lcjo6JHNtYXJ0N0ZXJfZnVulfc21hcnR5X2Z1bmMoJ2ICd6ZXN0b2ZycpOyBaZXN0b2lSZW5kNvbmZpZycs9uX2NvbmZpZ2lzdGVyX2ZXI6OiR0aWKCdjb25zbWFydHktPnJlZ1bmN0aW9uFydHlfZnVuY3Rpb25maWc3RvaV9zbWOyBaZXN0b2lSZW5kZXI6dzJywgJ3pl9uZmlncycpdGVyX2Z1bmOiRzbWFfY2ZWxlY3RydHktPnJlZ2lzN0aW9uKCdz9zbWFydHlfZnVuY3RfcmJ3plc3RvaVX3Jlc3VsdCcpOyBaZXN0VzdWx0Jywg5fc2VsZWN0dHktPnJlZ2b2lSZW5pb2bmN0aW9kZXI6OiRzbWFylzdGVyX2Z1RvaV9zbWFydHlfZnVuKCJywgJ3plc3dWx0cycpOyBaZXN0b2lSdyZXN1bHRzRpb25fcmVzPnJlZ2lzdGZW5kZXJuY3aW9uKCc6OiRzbWFydHktVyX2Z1bmN0FydHlfZnVuY3Rpb252YWc3RvaV9zbWZXN0b2lSZW5kZXI6OiRzxzJywgJ3plFscycpOyBaX2Z1bmN0aWbWFydHlfdmLCAnemUtPnJlZ2lzdGVy9uKCd2YWwnlvbl92YWwnKTsgWmVzdGeV9mdW5jdGOjokc21hcnR5LT5yZWdp9pX3NtYXJ09pUmVuZGVyc2V0dmFsJyc3Rlcl9zdGaV9zbWFmdW5jdGlvbignwgJ3plc3RvFsJyk7IFplc3RvaVJydHb25fc2V0dmYXJ0eS0+cmVnaXN0ZXJflfZnVuY3RpRlcjo6JHNtZV91cmwnLCZnVuY3RlbmX3NtYXJpb24oJ2RlY29kAnemVzdG9pVfdXJsJyk7IFplc3R0eVbl9kZWNvZGJHNtYXJ0eS0+cmVnaXN09mdW5jdGlvJlbmRlcjo6bGNvbmZpZyZXJfZnVvaVb2lfc21uY3Rpb24oJ3VycsICd6ZXN0NvbmZpZycpOyBaZXNhcnaW9uX3VybGOiRzbWFydHktPnJlZ2lzR5X2Z1bmN0lSZW5kZXI6aXN0X2NoYWdGVyX2Z0b2J3plc3R1bmN0aW9uKCds5uZWxzJywg5fbGlzdF9jaGFubmVvaVZnVuY3Rpb2b2lSZW5kZXI6OiRzbWFy9zbWFydHlfcpOyBaZXN0bmN0aW9uKCdHktPnJscydXJsJyxlZ2lzdGVyX2Z1dleHBhbmRfVuY3Rpb25fZXhwYW4gJ3bWFydHlfZnZXN0b2lSZW5kZXI6OiRzplc3RvaV9zVybCcpOyBaX2Z1bmN0aWbWFydHlkX3cnN0X3MtPnJlZ2lzdGVy9uKCd1Y2Zp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FyKCRhcmdzLCAndmFlc3dHlfZ2V0dmdmFsJyk7IHplc3RvaV9zRvaV9zbWFyUnLCAnc2V0YWx1ZSk7IHZXR2YWxsdWbWFydHkoJG5hbWUsICR2plc3RvaV9zFsdWUsICRzbWFydHlfc2YW1lLCAkdmaW9uIHplc3RvaV9zbWFyV0dmFyKCRuB9IGZ1bmN0b2RlX3VybCdHlfZnUpOyJiRzbWFuY3Rpb25fZGVjgkYXJncywgN0b2lfc21hcnR5X21ydHZ3MgPSB6ZXJGFyZ3MpOyBsaXN0KCR2kpIHsgJGFydlX2FyZ3Moc3RvaV9zbWYXIsICRlcmdmFyKCRhcmdzKSA9IHplFydHlfZ2V09kZV91cmwnKTsgemVhcmJywgJ2RlY2eV9zZXR2YXIoJHZhciwgdzLCAndmFy9pX3NtYXJ0cmwoKSwgJHemVzdG9zdGIH0gZnVpX2RlY29kZV91NtYXJ0eSk7J0eV9mdW5jdGlvbl9uY3dG9pX3NtYXJGFyZ3MsICYkc21hcnR5Rpb24gemVzxjb25maWcodG9pX3NtYXKSB7ICR1cmZV9hcmdhcmdzID0gemVzJ0eV9tZXJnFyLCAkYXJncykgPSBzKCbGlzdCgkdmcnR5X2dldHZhcigkYXJnRhcmdzKTsgN0b2lfc21hb25maWcnKTcywgJ3Z6ZXX3NtYXJhcicsICd1cmxjsgemVzdG9pVzdG9pX3VybGNvbmZ0eVJHZhciwgemcnR5KTsgfSBmdW5jdGlv9zZXR2YXIogpLCAkc21hX2Z1bmN0aWbiB6ZXNpZyY2hhbm50b2lfc21hcnR59uX2xpc3RfR5KSB7ICRhcmdzID1lbHICYkc21hcnYXJ0eV9tZXJnZV9hcmdzMoJGFyZ3MsVzdG9pX3NtdmFyLCAkYXKCRhcmcgemZXN0b2lzKTsgbGlzdCgkJncykgPSB6JncywgJ3ZhcicsICdfc2dHZhcigkYXZWxzJyk7IHplc3RvaV9z1hcnR5X2dlN0X2NoYW5uYXIsIHplc3bWFydHlsaXX2NoYW5fc2V0dmFyKCR2RvaV9saXN0B9IGZ1bmN0aW9uIHpuZWbWFydHkpOydHlfZnVuY3Rpb25fZXhwxzKCksICRzRvaV9zbWFyJiRzbWFydHYW5kX3Vlc3Z3MgPSBybCgkYXJncywgkpIHsgJGFy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";
10 years 3 weeks ago #6

Please Log in or Create an account to join the conversation.

  • Posts: 5335
  • Thank you received: 104

Replied by DeZender on topic Decrypt ionCube php script

Hello to decrypt your file, we need the whole file without any changes made by you.
Thank you
10 years 3 weeks ago #7

Please Log in or Create an account to join the conversation.

  • Posts: 2
  • Thank you received: 0

Replied by mr_markus on topic Decrypt ionCube php script

DeZender wrote: Hello to decrypt your file, we need the whole file without any changes made by you.
Thank you

I think this is the entire file. I will post it again:
<?php
$_="RPSTsgdW1hc2soJzA/PjbCAkX1pFU1KCFkZWZpbmVkKERJUl9Tw/IGdsb2JhAnKTsgaWYgX1NFUCwgRERVApKSAwMDX1NFUEFkZWZpbmUoRElSlSRUNUT1JZd6ZXN0b2lfZGlyJ11SQVWkVTVE9JWyX1pFU1RPSVsnemVzdG9pRPUik7ICRfBydHJpbSgkRElSX1NFUDX2RpcicgPST0lbJ3NdLCAnLycpIC4gsgJF9aRVNUgkX1pFU1RPSVsnc2lpdGPSBydHJpbSJy8nKSAuIERJUl9TRVA7VfZGlyJ10g9kaXInXSwgX1pFU1RPSVIGRlZml0ZVX2RpciduZShaVE9QLCAksnemVzdG9ppUT1AgLiAnbGliJyBdKTKFpMSUIsIFOyBkZWZpbmUoWkxJQlgssgZGVmaW5lRJUl9TRVApLiBESVJfU0IFpUT1AuIEaW5lKFogLiAnbGlieCcgVQKTsgZGVmUnIC4gRElSX1NFUClMSUIC4gJ2xpYnZW5zZV92YWxpZGF0ZShaJVLCBaVE9QBvcHRfbGljbmNlKFpMSUVE9QKTs7IHYS5waHAgcmVxdWlyZV9vIgLiAnbWV0pMSUIgLiAnZGF0YXMnKTZV9vbmNlKFOyByZXF1aXJlX29uY2UosgcmVxdWlyJlLnBocCcpcGhwJyk7IHWkxJQiB0b3b25jZSguICdyZW5kZXIuJlcXVpcmVfcpOyBpZiAoIWlzc2VaTEc3FsLnBocCbnN0YWxsZXInXSkpICRflCIC4gJ215RfR0VUWydpbmZpZyddIDWkVTVE90KCOjpnZXRJWydiYXNlX2Nv0gWmVzdG9pplc3RvaVJlbmRlcjpfY2YXNlJyk7IFZXN0b2lSZW5kZXI6OiRz9uZmlnKCdi5pdCgpOyBaX2Z1bmN0aWbWFydHk6aWbmRfcmUtPnJlZ2lzdGVy9uKCdhcHBl1hcnR5X2Z1bmN0aW9zdWZXN0b2lfc2ZXN1bHRzJyk7IFplc3Rvx0cycsICd6FwcGVuZF9yeS0+cmVnaXaVJlbmRuX2Y3Rpb25lcjo6JHNtYXJ0N0ZXJfZnVulfc21hcnR5X2Z1bmMoJ2ICd6ZXN0b2ZycpOyBaZXN0b2lSZW5kNvbmZpZycs9uX2NvbmZpZ2lzdGVyX2ZXI6OiR0aWKCdjb25zbWFydHktPnJlZ1bmN0aW9uFydHlfZnVuY3Rpb25maWc3RvaV9zbWOyBaZXN0b2lSZW5kZXI6dzJywgJ3pl9uZmlncycpdGVyX2Z1bmOiRzbWFfY2ZWxlY3RydHktPnJlZ2lzN0aW9uKCdz9zbWFydHlfZnVuY3RfcmJ3plc3RvaVX3Jlc3VsdCcpOyBaZXN0VzdWx0Jywg5fc2VsZWN0dHktPnJlZ2b2lSZW5pb2bmN0aW9kZXI6OiRzbWFylzdGVyX2Z1RvaV9zbWFydHlfZnVuKCJywgJ3plc3dWx0cycpOyBaZXN0b2lSdyZXN1bHRzRpb25fcmVzPnJlZ2lzdGZW5kZXJuY3aW9uKCc6OiRzbWFydHktVyX2Z1bmN0FydHlfZnVuY3Rpb252YWc3RvaV9zbWZXN0b2lSZW5kZXI6OiRzxzJywgJ3plFscycpOyBaX2Z1bmN0aWbWFydHlfdmLCAnemUtPnJlZ2lzdGVy9uKCd2YWwnlvbl92YWwnKTsgWmVzdGeV9mdW5jdGOjokc21hcnR5LT5yZWdp9pX3NtYXJ09pUmVuZGVyc2V0dmFsJyc3Rlcl9zdGaV9zbWFmdW5jdGlvbignwgJ3plc3RvFsJyk7IFplc3RvaVJydHb25fc2V0dmYXJ0eS0+cmVnaXN0ZXJflfZnVuY3RpRlcjo6JHNtZV91cmwnLCZnVuY3RlbmX3NtYXJpb24oJ2RlY29kAnemVzdG9pVfdXJsJyk7IFplc3R0eVbl9kZWNvZGJHNtYXJ0eS0+cmVnaXN09mdW5jdGlvJlbmRlcjo6bGNvbmZpZyZXJfZnVvaVb2lfc21uY3Rpb24oJ3VycsICd6ZXN0NvbmZpZycpOyBaZXNhcnaW9uX3VybGOiRzbWFydHktPnJlZ2lzR5X2Z1bmN0lSZW5kZXI6aXN0X2NoYWdGVyX2Z0b2J3plc3R1bmN0aW9uKCds5uZWxzJywg5fbGlzdF9jaGFubmVvaVZnVuY3Rpb2b2lSZW5kZXI6OiRzbWFy9zbWFydHlfcpOyBaZXN0bmN0aW9uKCdHktPnJscydXJsJyxlZ2lzdGVyX2Z1dleHBhbmRfVuY3Rpb25fZXhwYW4gJ3bWFydHlfZnZXN0b2lSZW5kZXI6OiRzplc3RvaV9zVybCcpOyBaX2Z1bmN0aWbWFydHlkX3cnN0X3MtPnJlZ2lzdGVy9uKCd1Y2Zp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FyKCRhcmdzLCAndmFlc3dHlfZ2V0dmdmFsJyk7IHplc3RvaV9zRvaV9zbWFyUnLCAnc2V0YWx1ZSk7IHZXR2YWxsdWbWFydHkoJG5hbWUsICR2plc3RvaV9zFsdWUsICRzbWFydHlfc2YW1lLCAkdmaW9uIHplc3RvaV9zbWFyV0dmFyKCRuB9IGZ1bmN0b2RlX3VybCdHlfZnUpOyJiRzbWFuY3Rpb25fZGVjgkYXJncywgN0b2lfc21hcnR5X21ydHZ3MgPSB6ZXJGFyZ3MpOyBsaXN0KCR2kpIHsgJGFydlX2FyZ3Moc3RvaV9zbWYXIsICRlcmdmFyKCRhcmdzKSA9IHplFydHlfZ2V09kZV91cmwnKTsgemVhcmJywgJ2RlY2eV9zZXR2YXIoJHZhciwgdzLCAndmFy9pX3NtYXJ0cmwoKSwgJHemVzdG9zdGIH0gZnVpX2RlY29kZV91NtYXJ0eSk7J0eV9mdW5jdGlvbl9uY3dG9pX3NtYXJGFyZ3MsICYkc21hcnR5Rpb24gemVzxjb25maWcodG9pX3NtYXKSB7ICR1cmZV9hcmdhcmdzID0gemVzJ0eV9tZXJnFyLCAkYXJncykgPSBzKCbGlzdCgkdmcnR5X2dldHZhcigkYXJnRhcmdzKTsgN0b2lfc21hb25maWcnKTcywgJ3Z6ZXX3NtYXJhcicsICd1cmxjsgemVzdG9pVzdG9pX3VybGNvbmZ0eVJHZhciwgemcnR5KTsgfSBmdW5jdGlv9zZXR2YXIogpLCAkc21hX2Z1bmN0aWbiB6ZXNpZyY2hhbm50b2lfc21hcnR59uX2xpc3RfR5KSB7ICRhcmdzID1lbHICYkc21hcnYXJ0eV9tZXJnZV9hcmdzMoJGFyZ3MsVzdG9pX3NtdmFyLCAkYXKCRhcmcgemZXN0b2lzKTsgbGlzdCgkJncykgPSB6JncywgJ3ZhcicsICdfc2dHZhcigkYXZWxzJyk7IHplc3RvaV9z1hcnR5X2dlN0X2NoYW5uYXIsIHplc3bWFydHlsaXX2NoYW5fc2V0dmFyKCR2RvaV9saXN0B9IGZ1bmN0aW9uIHpuZWbWFydHkpOydHlfZnVuY3Rpb25fZXhwxzKCksICRzRvaV9zbWFyJiRzbWFydHYW5kX3Vlc3Z3MgPSBybCgkYXJncywgkpIHsgJGFy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";
popt_uncache($_, 'lib/zestoi.php');

Please let me know if it is ok now.
10 years 3 weeks ago #8

Please Log in or Create an account to join the conversation.

  • Posts: 5335
  • Thank you received: 104

Replied by DeZender on topic Decrypt ionCube php script

Watch your private messages.
10 years 3 weeks ago #9

Please Log in or Create an account to join the conversation.

  • Posts: 5335
  • Thank you received: 104

Replied by DeZender on topic Decrypt ionCube php script

Here is the beginning of the file unencrypted.
<?php
global $_ZESTOI;
umask('0000'); 
if (!defined(DIR_SEP)) define(DIR_SEP, DIRECTORY_SEPARATOR); 
$_ZESTOI['zestoi_dir'] = rtrim($_ZESTOI['zestoi_dir'], '/') . DIR_SEP; 
$_ZESTOI['site_dir'] = rtrim($_ZESTOI['site_dir'], '/') . DIR_SEP;

For the rest you have to order here => http://dezender.net/order/dezender/deco ... rator.html
10 years 3 weeks ago #10

Please Log in or Create an account to join the conversation.

Moderators: DeZender
Time to create page: 0.058 seconds
Copyright © 2009 - 2020 DeZender.Net All rights reserved.