Skip to main content
additional info
Source Link
Marius
  • 198.5k
  • 55
  • 424
  • 833

[EDIT]
Because I get mad when I see these types of extensions I decided to waste some time for investigating.
Here is what I found. The result of the request should be a link to a js file or some js code on their server. After decoding the js file from the extension I found this function:

start: function () {
    this.s_code = $('opc_s_data').value;
    $('opc_s_data').remove();
    if (this.s_code == '') {
        this.opcdis();
        return false
    }
    addjsphp(this.s_code);
    this.getActionResults(0)
},

so if the code 'license' is valid some js is added to the DOM through addjsphp that looks like this:

function addjsphp(u) {
    var me = document.createElement('div');
    me.setAttribute('id', 'opcstataj');
    var p = 'html';
    var th1 = document.getElementsByTagName(p)[0];
    th1.appendChild(me);
    var th = document.getElementById('opcstataj');
    var s = document.createElement('script');
    s.setAttribute('language', 'javascript');
    s.setAttribute('type', 'text/javascript');
    s.setAttribute('src', u);
    th.appendChild(s)
}

I don't know (yet) how the js from their server should look like, but here is what you can try. Not sure if it works. Edit the js file skin\frontend\base\default\js\onepagecheckout.pack.js and at the end of the file add this:

function deljsphp(){
    return 1;
}

This should override the original deljsphp function, that by the way looks like this:

function deljsphp() {
    var th = $('opcstataj');
    if (th && th != null && th != undefined) th.remove()
}

Basically it removes the <script> tag added from their server.

Other info The code that is being eval'd in the the line you mentioned in the question is this:

eval(gzinflate(base64_decode('jZAxb8MgEIXn+FfQCBl7qL1UHRLRDFGkLlWjOM0SVRHBV4NqwIKLqqrKfy84S9MuXeDgcd97BzWiI5xQVDrcPnSAT6IDi24HPmhni3KeUePaqyfP6+VPWV2Jy5Nv0Hl48X1UJ5OMhqhPow3/onE95xGXSteec2WFgXhQ51xIjEAuFcj3aaS2AkVsPIoA93cHsNK1UNAwGiZicQNmwM+CHprVZrfa7Nnjdrtu2GtJ8pz8ueWcM2dZuWAKcQhsNu4s0k6+TwOoULFZXWuL4LXzH3BsIejOVtKZ2lw+pXaD7LUEGyCVl8jVoIZFSHE5q8bY80y/FWlAIJwThhCQlb+NeidFr1zA/0K/AQ==')));

Going further...this is the code that actually gets evaluated:

$mag = $this->getMagentoVersion(); 
$mod = $this->getOPCVersion(); 
$h = $this->getCurStoreUrl(); 
$s = "mag={$mag}&mod={$mod}&hname={$h}&action=check"; 
$data = base64_encode($s); 
$hs = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS']==='on')?'https':'http'; 
$url = $hs.'://interiorwebdesign.com/magento/opclicense/opcaction.php?sdata='.$data; 
if($mode == 'test') 
    $url = $hs.'://localhost/opclicense/opcaction.php?sdata='.$data;

This confirms my initial suspicions on what is sent to their servers.

[EDIT]
Because I get mad when I see these types of extensions I decided to waste some time for investigating.
Here is what I found. The result of the request should be a link to a js file or some js code on their server. After decoding the js file from the extension I found this function:

start: function () {
    this.s_code = $('opc_s_data').value;
    $('opc_s_data').remove();
    if (this.s_code == '') {
        this.opcdis();
        return false
    }
    addjsphp(this.s_code);
    this.getActionResults(0)
},

so if the code 'license' is valid some js is added to the DOM through addjsphp that looks like this:

function addjsphp(u) {
    var me = document.createElement('div');
    me.setAttribute('id', 'opcstataj');
    var p = 'html';
    var th1 = document.getElementsByTagName(p)[0];
    th1.appendChild(me);
    var th = document.getElementById('opcstataj');
    var s = document.createElement('script');
    s.setAttribute('language', 'javascript');
    s.setAttribute('type', 'text/javascript');
    s.setAttribute('src', u);
    th.appendChild(s)
}

I don't know (yet) how the js from their server should look like, but here is what you can try. Not sure if it works. Edit the js file skin\frontend\base\default\js\onepagecheckout.pack.js and at the end of the file add this:

function deljsphp(){
    return 1;
}

This should override the original deljsphp function, that by the way looks like this:

function deljsphp() {
    var th = $('opcstataj');
    if (th && th != null && th != undefined) th.remove()
}

Basically it removes the <script> tag added from their server.

Other info The code that is being eval'd in the the line you mentioned in the question is this:

eval(gzinflate(base64_decode('jZAxb8MgEIXn+FfQCBl7qL1UHRLRDFGkLlWjOM0SVRHBV4NqwIKLqqrKfy84S9MuXeDgcd97BzWiI5xQVDrcPnSAT6IDi24HPmhni3KeUePaqyfP6+VPWV2Jy5Nv0Hl48X1UJ5OMhqhPow3/onE95xGXSteec2WFgXhQ51xIjEAuFcj3aaS2AkVsPIoA93cHsNK1UNAwGiZicQNmwM+CHprVZrfa7Nnjdrtu2GtJ8pz8ueWcM2dZuWAKcQhsNu4s0k6+TwOoULFZXWuL4LXzH3BsIejOVtKZ2lw+pXaD7LUEGyCVl8jVoIZFSHE5q8bY80y/FWlAIJwThhCQlb+NeidFr1zA/0K/AQ==')));

Going further...this is the code that actually gets evaluated:

$mag = $this->getMagentoVersion(); 
$mod = $this->getOPCVersion(); 
$h = $this->getCurStoreUrl(); 
$s = "mag={$mag}&mod={$mod}&hname={$h}&action=check"; 
$data = base64_encode($s); 
$hs = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS']==='on')?'https':'http'; 
$url = $hs.'://interiorwebdesign.com/magento/opclicense/opcaction.php?sdata='.$data; 
if($mode == 'test') 
    $url = $hs.'://localhost/opclicense/opcaction.php?sdata='.$data;

This confirms my initial suspicions on what is sent to their servers.

Source Link
Marius
  • 198.5k
  • 55
  • 424
  • 833

First of all I want to say that this is an ugly way of doing things. Most probably the ugliest. If you didn't want to add the company name in here I will. It's interiorwebdesign.com. Most probably the things sent to their server are the magento version, the extension version and the url of your website. You can check for sure by doing base64_decode on the value of the sdata parameter sent to them. I don't know what the answer should be if your licence is correct, but in case there is an error this is the response:

checkout.o_p_c_l_s = '2';
deljsphp();

Look in the code for a function called deljsphp. I think that disables your checkout.