1231 we do not change it $date_base = 16245; $bw_base = 3812869942; $mac = $argv[1]; $date = intval($argv[2]); $bw = intval($argv[3]); $mac = explode(':', $mac); $mac_res = array(); for ($i = 0; $i < 16; $i++) { if ($i < 6) { $mac_res[$i] = intval($mac[$i], 16) + $i; } else { $mac_res[$i] = $mac_res[$i % 6] + $i; } } $serial = ''; for ($i = 0; $i < 8; $i++) { $serial .= sprintf('%02X', ($mac_res[$i] + $mac_res[$i + 8]) % 256); } echo 'SerialNo:' . $serial . ' '; $lic = ''; $rd = array(162, 15, 239, 202, 57, 14, 45, 164, 147, 232, 120, 90, 117, 15, 239, 232); for ($i = 0; $i < 16; $i++) { $lic .= sprintf('%02x', (ord($serial[$i]) + $rd[$i]) % 256); } echo 'Lic:' . $lic . ' '; $date_lic = unpack('H*', pack('v', $date_base + $date)); $date_lic = $date_lic[1]; $bw_lic = unpack('H*', pack('V', $bw_base + $bw)); $bw_lic = $bw_lic[1]; $lic = str_replace('[serial]', $lic, $lic_tpl); $lic = str_replace('[date]', $date_lic, $lic); $lic = str_replace('[bw]', $bw_lic, $lic); @file_put_contents("/appex/etc/apx.lic", pack('H*', $lic));