mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-14 02:27:26 -07:00
lua: more fix mix of spaces & tabs
This commit is contained in:
parent
05ff45e550
commit
2d1a077ae4
14 changed files with 1423 additions and 1423 deletions
|
@ -2,360 +2,360 @@ local skel_1 = [[
|
|||
<html>
|
||||
<head>
|
||||
|
||||
<script>
|
||||
var dictionary = {}
|
||||
function add(commaSeparated)
|
||||
{
|
||||
var fields = commaSeparated.split(",");
|
||||
var manufacturerCode = fields[0];
|
||||
var modelCode = fields[1];
|
||||
var modelSubCode= fields[2];
|
||||
var modelName = fields[3];
|
||||
var ATQA = fields[4];
|
||||
var SAK = fields[5];
|
||||
<script>
|
||||
var dictionary = {}
|
||||
function add(commaSeparated)
|
||||
{
|
||||
var fields = commaSeparated.split(",");
|
||||
var manufacturerCode = fields[0];
|
||||
var modelCode = fields[1];
|
||||
var modelSubCode= fields[2];
|
||||
var modelName = fields[3];
|
||||
var ATQA = fields[4];
|
||||
var SAK = fields[5];
|
||||
|
||||
//In the data below, wrong endian is used. Mifare is
|
||||
// written as "0004" instead of "0400", so we need to
|
||||
// flip it
|
||||
ATQA = ATQA.substr(2,4)+ATQA.substr(0,2)
|
||||
//In the data below, wrong endian is used. Mifare is
|
||||
// written as "0004" instead of "0400", so we need to
|
||||
// flip it
|
||||
ATQA = ATQA.substr(2,4)+ATQA.substr(0,2)
|
||||
|
||||
var info = {
|
||||
modelCode : modelCode,
|
||||
modelSubCode : modelSubCode,
|
||||
modelName : modelName,
|
||||
ATQA : ATQA,
|
||||
SAK : SAK
|
||||
}
|
||||
console.log("Adding "+modelName+" , "+SAK)
|
||||
var info = {
|
||||
modelCode : modelCode,
|
||||
modelSubCode : modelSubCode,
|
||||
modelName : modelName,
|
||||
ATQA : ATQA,
|
||||
SAK : SAK
|
||||
}
|
||||
console.log("Adding "+modelName+" , "+SAK)
|
||||
|
||||
dictionary[ATQA] = dictionary[ATQA] || [];
|
||||
dictionary[ATQA].push(info)
|
||||
}
|
||||
function lookup(atqa, sak)
|
||||
{
|
||||
if (!dictionary[atqa]) return "UNKNOWN";
|
||||
dictionary[ATQA] = dictionary[ATQA] || [];
|
||||
dictionary[ATQA].push(info)
|
||||
}
|
||||
function lookup(atqa, sak)
|
||||
{
|
||||
if (!dictionary[atqa]) return "UNKNOWN";
|
||||
|
||||
var possibleMatches = [];
|
||||
for(var i = 0 ; i < dictionary[atqa].length ; i++)
|
||||
{
|
||||
var possibleMatches = [];
|
||||
for(var i = 0 ; i < dictionary[atqa].length ; i++)
|
||||
{
|
||||
|
||||
var info = dictionary[atqa][i];
|
||||
console.log("Comparing "+sak+ " with "+ info.SAK);
|
||||
if(sak && info.SAK == sak)//exact match
|
||||
{
|
||||
return info.modelName;
|
||||
// possibleMatches.push(info.modelName);
|
||||
}else //SAK unknown
|
||||
{
|
||||
possibleMatches.push(info.modelName);
|
||||
}
|
||||
}
|
||||
if(possibleMatches.length > 0)
|
||||
return possibleMatches.join(" or ");
|
||||
return "UNKNOWN"
|
||||
}
|
||||
var info = dictionary[atqa][i];
|
||||
console.log("Comparing "+sak+ " with "+ info.SAK);
|
||||
if(sak && info.SAK == sak)//exact match
|
||||
{
|
||||
return info.modelName;
|
||||
// possibleMatches.push(info.modelName);
|
||||
}else //SAK unknown
|
||||
{
|
||||
possibleMatches.push(info.modelName);
|
||||
}
|
||||
}
|
||||
if(possibleMatches.length > 0)
|
||||
return possibleMatches.join(" or ");
|
||||
return "UNKNOWN"
|
||||
}
|
||||
|
||||
add("04,,,Mifare TNP3xxx Activision 1K,0f01,01");
|
||||
add("04,,,Mifare Mini,0004,09");
|
||||
add("04,,,Mifare Classic 1k/Mifare Plus(4 byte UID) 2K SL1,0004,08");
|
||||
add("04,,,Mifare Plus (4 byte UID) 2K SL2,0004,10");
|
||||
add("04,,,Mifare Plus (4 byte UID) 4K SL2,0004,11");
|
||||
add("04,,,Mifare Plus (4 byte UID) 4K SL1,0004,18");
|
||||
add("04,,,Mifare Plus (4 byte UID) 2K/4K SL3,0004,20");
|
||||
add("04,,,Mifare Classic 4K,0002,18");
|
||||
add("xx,,,NDEF Tags,0044,00 ");
|
||||
add("04,,,Mifare Ultralight/UltralightC,0044,04");
|
||||
add("04,,,Mifare Plus (7 byte UID) 2K SL1,0042,08");
|
||||
add("04,,,Mifare Plus (7 byte UID) 2K SL1,0044,08");
|
||||
add("04,,,Mifare Plus (7 byte UID) 4K SL1,0042,18");
|
||||
add("04,,,Mifare Plus (7 byte UID) 4K SL1,0044,18");
|
||||
add("04,,,Mifare Plus (7 byte UID),0042,10");
|
||||
add("04,,,Mifare Plus (7 byte UID),0044,10");
|
||||
add("04,,,Mifare Plus (7 byte UID),0042,11");
|
||||
add("04,,,Mifare Plus (7 byte UID),0044,11");
|
||||
add("04,,,Mifare Plus (7 byte UID),0042,20");
|
||||
add("04,,,Mifare Plus (7 byte UID),0044,20");
|
||||
add("04,,,Mifare DesFire / DesFire EV1,0344,20067577810280");
|
||||
add("04,,,JCOP31,0304,283877B14A434F503331");
|
||||
add("04,,,JCOP31 v2.4.1,0048,207877B1024A434F5076323431");
|
||||
add("04,,,JCOP41 v2.2,0048,203833B14A434F503431563232");
|
||||
add("04,,,JCOP41 v2.3.1,0004,283833B14A434F50343156323331");
|
||||
add("05,,,Mifare Classic 1K,0004,88");
|
||||
add("40,,,MPCOS,0002,98");
|
||||
add("25,,,Topaz/Topaz512/Jewel,0C00,");
|
||||
add("1D,,,FM1208SH01,0004,53");
|
||||
add("1D,,,FM1208,0008,20");
|
||||
add("Nokia,,,Mifare Classic 4K emulated by Nokia 6212,0002,38");
|
||||
add("Nokia,,,Mifare Classic 4K emulated by Nokia 6131,0008,38");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0002");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0102");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0202");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0302");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0402");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0502");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0602");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0702");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0802");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0902");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0A02");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0B02");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0C02");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0D02");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0E02");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0F02");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0004");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0104");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0204");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0304");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0404");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0504");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0604");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0704");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0804");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0904");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0A04");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0B04");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0C04");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0D04");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0E04");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0F04");
|
||||
add("04,,,Smart MX with 7 byte UID,0048");
|
||||
add("04,,,Smart MX with 7 byte UID,0148");
|
||||
add("04,,,Smart MX with 7 byte UID,0248");
|
||||
add("04,,,Smart MX with 7 byte UID,0348");
|
||||
add("04,,,Smart MX with 7 byte UID,0448");
|
||||
add("04,,,Smart MX with 7 byte UID,0548");
|
||||
add("04,,,Smart MX with 7 byte UID,0648");
|
||||
add("04,,,Smart MX with 7 byte UID,0748");
|
||||
add("04,,,Smart MX with 7 byte UID,0848");
|
||||
add("04,,,Smart MX with 7 byte UID,0948");
|
||||
add("04,,,Smart MX with 7 byte UID,0A48");
|
||||
add("04,,,Smart MX with 7 byte UID,0B48");
|
||||
add("04,,,Smart MX with 7 byte UID,0C48");
|
||||
add("04,,,Smart MX with 7 byte UID,0D48");
|
||||
add("04,,,Smart MX with 7 byte UID,0E48");
|
||||
add("04,,,Smart MX with 7 byte UID,0F48");
|
||||
</script>
|
||||
add("04,,,Mifare TNP3xxx Activision 1K,0f01,01");
|
||||
add("04,,,Mifare Mini,0004,09");
|
||||
add("04,,,Mifare Classic 1k/Mifare Plus(4 byte UID) 2K SL1,0004,08");
|
||||
add("04,,,Mifare Plus (4 byte UID) 2K SL2,0004,10");
|
||||
add("04,,,Mifare Plus (4 byte UID) 4K SL2,0004,11");
|
||||
add("04,,,Mifare Plus (4 byte UID) 4K SL1,0004,18");
|
||||
add("04,,,Mifare Plus (4 byte UID) 2K/4K SL3,0004,20");
|
||||
add("04,,,Mifare Classic 4K,0002,18");
|
||||
add("xx,,,NDEF Tags,0044,00 ");
|
||||
add("04,,,Mifare Ultralight/UltralightC,0044,04");
|
||||
add("04,,,Mifare Plus (7 byte UID) 2K SL1,0042,08");
|
||||
add("04,,,Mifare Plus (7 byte UID) 2K SL1,0044,08");
|
||||
add("04,,,Mifare Plus (7 byte UID) 4K SL1,0042,18");
|
||||
add("04,,,Mifare Plus (7 byte UID) 4K SL1,0044,18");
|
||||
add("04,,,Mifare Plus (7 byte UID),0042,10");
|
||||
add("04,,,Mifare Plus (7 byte UID),0044,10");
|
||||
add("04,,,Mifare Plus (7 byte UID),0042,11");
|
||||
add("04,,,Mifare Plus (7 byte UID),0044,11");
|
||||
add("04,,,Mifare Plus (7 byte UID),0042,20");
|
||||
add("04,,,Mifare Plus (7 byte UID),0044,20");
|
||||
add("04,,,Mifare DesFire / DesFire EV1,0344,20067577810280");
|
||||
add("04,,,JCOP31,0304,283877B14A434F503331");
|
||||
add("04,,,JCOP31 v2.4.1,0048,207877B1024A434F5076323431");
|
||||
add("04,,,JCOP41 v2.2,0048,203833B14A434F503431563232");
|
||||
add("04,,,JCOP41 v2.3.1,0004,283833B14A434F50343156323331");
|
||||
add("05,,,Mifare Classic 1K,0004,88");
|
||||
add("40,,,MPCOS,0002,98");
|
||||
add("25,,,Topaz/Topaz512/Jewel,0C00,");
|
||||
add("1D,,,FM1208SH01,0004,53");
|
||||
add("1D,,,FM1208,0008,20");
|
||||
add("Nokia,,,Mifare Classic 4K emulated by Nokia 6212,0002,38");
|
||||
add("Nokia,,,Mifare Classic 4K emulated by Nokia 6131,0008,38");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0002");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0102");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0202");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0302");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0402");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0502");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0602");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0702");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0802");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0902");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0A02");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0B02");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0C02");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0D02");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0E02");
|
||||
add("04,,,Smart MX with Mifare 4K emulation,0F02");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0004");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0104");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0204");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0304");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0404");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0504");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0604");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0704");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0804");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0904");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0A04");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0B04");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0C04");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0D04");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0E04");
|
||||
add("04,,,Smart MX with Mifare 1K emulation,0F04");
|
||||
add("04,,,Smart MX with 7 byte UID,0048");
|
||||
add("04,,,Smart MX with 7 byte UID,0148");
|
||||
add("04,,,Smart MX with 7 byte UID,0248");
|
||||
add("04,,,Smart MX with 7 byte UID,0348");
|
||||
add("04,,,Smart MX with 7 byte UID,0448");
|
||||
add("04,,,Smart MX with 7 byte UID,0548");
|
||||
add("04,,,Smart MX with 7 byte UID,0648");
|
||||
add("04,,,Smart MX with 7 byte UID,0748");
|
||||
add("04,,,Smart MX with 7 byte UID,0848");
|
||||
add("04,,,Smart MX with 7 byte UID,0948");
|
||||
add("04,,,Smart MX with 7 byte UID,0A48");
|
||||
add("04,,,Smart MX with 7 byte UID,0B48");
|
||||
add("04,,,Smart MX with 7 byte UID,0C48");
|
||||
add("04,,,Smart MX with 7 byte UID,0D48");
|
||||
add("04,,,Smart MX with 7 byte UID,0E48");
|
||||
add("04,,,Smart MX with 7 byte UID,0F48");
|
||||
</script>
|
||||
|
||||
<style>
|
||||
* {
|
||||
background-color: #2F3440;
|
||||
background-color:#232323;
|
||||
color : #F5E5C0;
|
||||
xtext-transform: uppercase;
|
||||
font-size: 1.05em;
|
||||
font-family: monospace,Arial;
|
||||
}
|
||||
table{
|
||||
float:left;
|
||||
border: 1px solid white;
|
||||
}
|
||||
td {
|
||||
empty-cells: show;
|
||||
}
|
||||
td.blockzero, .turqoise{
|
||||
color: rgb(140, 245, 193);
|
||||
}
|
||||
td.key_a, .yellow{
|
||||
color : #F8CA4D;
|
||||
}
|
||||
td.key_b, .blue{
|
||||
color : #3F5666;
|
||||
}
|
||||
td.accessconditions, .red{
|
||||
color : #EA6045;
|
||||
}
|
||||
|
||||
td.sectorhdr{
|
||||
border-top: 1px solid white;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
/** Jquery for the poor **/
|
||||
function dc(x){return document.createElement(x)}
|
||||
<style>
|
||||
* {
|
||||
background-color: #2F3440;
|
||||
background-color:#232323;
|
||||
color : #F5E5C0;
|
||||
xtext-transform: uppercase;
|
||||
font-size: 1.05em;
|
||||
font-family: monospace,Arial;
|
||||
}
|
||||
table{
|
||||
float:left;
|
||||
border: 1px solid white;
|
||||
}
|
||||
td {
|
||||
empty-cells: show;
|
||||
}
|
||||
td.blockzero, .turqoise{
|
||||
color: rgb(140, 245, 193);
|
||||
}
|
||||
td.key_a, .yellow{
|
||||
color : #F8CA4D;
|
||||
}
|
||||
td.key_b, .blue{
|
||||
color : #3F5666;
|
||||
}
|
||||
td.accessconditions, .red{
|
||||
color : #EA6045;
|
||||
}
|
||||
|
||||
function tr(table){
|
||||
var row = dc('tr');
|
||||
table.appendChild(row);
|
||||
return row;
|
||||
}
|
||||
function td(row, text){
|
||||
var tdata = dc('td');
|
||||
row.appendChild(tdata);
|
||||
tdata.appendChild(document.createTextNode(text))
|
||||
return tdata;
|
||||
}
|
||||
td.sectorhdr{
|
||||
border-top: 1px solid white;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
/** Jquery for the poor **/
|
||||
function dc(x){return document.createElement(x)}
|
||||
|
||||
/**
|
||||
* The identifiers that determine how to highlight data and present information
|
||||
**/
|
||||
var identifiers = [
|
||||
function(data)
|
||||
{
|
||||
// Should be 32 characters long ( 16 bytes per block)
|
||||
if(data[0].length != 32) { return false; }
|
||||
// ... add more checks if necessary ...
|
||||
function tr(table){
|
||||
var row = dc('tr');
|
||||
table.appendChild(row);
|
||||
return row;
|
||||
}
|
||||
function td(row, text){
|
||||
var tdata = dc('td');
|
||||
row.appendChild(tdata);
|
||||
tdata.appendChild(document.createTextNode(text))
|
||||
return tdata;
|
||||
}
|
||||
|
||||
var info = {Type : "Mifare"}
|
||||
info['Size'] = (data[0].length / 2 * data.length) + " Bytes";
|
||||
info['UID'] = data[0].substring(0,8);
|
||||
info['SAK'] = data[0].substring(10,12);
|
||||
info['ATQA'] = data[0].substring(12,16);
|
||||
/**
|
||||
* The identifiers that determine how to highlight data and present information
|
||||
**/
|
||||
var identifiers = [
|
||||
function(data)
|
||||
{
|
||||
// Should be 32 characters long ( 16 bytes per block)
|
||||
if(data[0].length != 32) { return false; }
|
||||
// ... add more checks if necessary ...
|
||||
|
||||
info['Name'] = lookup(info.ATQA, info.SAK);
|
||||
return {info: info, highlighter : mifareHighlighter }
|
||||
},
|
||||
function(data)
|
||||
{
|
||||
// Should be 8 characters long ( 4 bytes per block)
|
||||
if(data[0].length != 8) { return false; }
|
||||
// ... add more checks if necessary ...
|
||||
var info = {Type : "NDEF"}
|
||||
info['Size'] = (data[0].length / 2 * data.length) + " Bytes";
|
||||
var info = {Type : "Mifare"}
|
||||
info['Size'] = (data[0].length / 2 * data.length) + " Bytes";
|
||||
info['UID'] = data[0].substring(0,8);
|
||||
info['SAK'] = data[0].substring(10,12);
|
||||
info['ATQA'] = data[0].substring(12,16);
|
||||
|
||||
return {info: info, highlighter : ndefHighligheter }
|
||||
},
|
||||
info['Name'] = lookup(info.ATQA, info.SAK);
|
||||
return {info: info, highlighter : mifareHighlighter }
|
||||
},
|
||||
function(data)
|
||||
{
|
||||
// Should be 8 characters long ( 4 bytes per block)
|
||||
if(data[0].length != 8) { return false; }
|
||||
// ... add more checks if necessary ...
|
||||
var info = {Type : "NDEF"}
|
||||
info['Size'] = (data[0].length / 2 * data.length) + " Bytes";
|
||||
|
||||
function(data)
|
||||
{//This is the catch-all
|
||||
return {info: {type : "Unknown"}, highlighter : noHighlighter}
|
||||
}
|
||||
]
|
||||
|
||||
return {info: info, highlighter : ndefHighligheter }
|
||||
},
|
||||
|
||||
/**
|
||||
* Helper function to convert bin-data into printable chars
|
||||
**/
|
||||
|
||||
function to_ascii(hexval)
|
||||
{
|
||||
var intval = parseInt(hexval,16);
|
||||
if(intval > 31 && intval < 127)
|
||||
{
|
||||
return String.fromCharCode(intval);
|
||||
}
|
||||
return ".";
|
||||
}
|
||||
function(data)
|
||||
{//This is the catch-all
|
||||
return {info: {type : "Unknown"}, highlighter : noHighlighter}
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
function loadIntoTable(data, info, ascii)
|
||||
{
|
||||
var t = dc("table")
|
||||
for(var i = 0 ; i < data.length ; i++)
|
||||
{
|
||||
line = data[i];
|
||||
var row = tr(t);
|
||||
var bytes = line.match(/(.{1,2})/g);
|
||||
for(var b = 0 ; b < bytes.length ; b++)
|
||||
{
|
||||
var elem = td(row, ascii ? to_ascii(bytes[b]) : bytes[b]);
|
||||
info.highlighter.addClass(elem,i,b, bytes[b]);
|
||||
}
|
||||
}
|
||||
document.body.appendChild(t);
|
||||
}
|
||||
function loadGeneralInfo(data, info)
|
||||
{
|
||||
var t = dc("table");
|
||||
for (var key in info)
|
||||
{
|
||||
var row = tr(t);
|
||||
td(row,key);
|
||||
td(row,info[key]);
|
||||
}
|
||||
document.body.appendChild(t);
|
||||
}
|
||||
/**
|
||||
* Helper function to convert bin-data into printable chars
|
||||
**/
|
||||
|
||||
function handle(dump)
|
||||
{
|
||||
var data = dump.data;
|
||||
var info = null;
|
||||
for(var i = 0; i < identifiers.length && !info; i++)
|
||||
info = identifiers[i](data);
|
||||
function to_ascii(hexval)
|
||||
{
|
||||
var intval = parseInt(hexval,16);
|
||||
if(intval > 31 && intval < 127)
|
||||
{
|
||||
return String.fromCharCode(intval);
|
||||
}
|
||||
return ".";
|
||||
}
|
||||
|
||||
console.log(info);
|
||||
|
||||
loadIntoTable(data, info, false);
|
||||
loadIntoTable(data, info, true);
|
||||
loadGeneralInfo(data, info.info);
|
||||
function loadIntoTable(data, info, ascii)
|
||||
{
|
||||
var t = dc("table")
|
||||
for(var i = 0 ; i < data.length ; i++)
|
||||
{
|
||||
line = data[i];
|
||||
var row = tr(t);
|
||||
var bytes = line.match(/(.{1,2})/g);
|
||||
for(var b = 0 ; b < bytes.length ; b++)
|
||||
{
|
||||
var elem = td(row, ascii ? to_ascii(bytes[b]) : bytes[b]);
|
||||
info.highlighter.addClass(elem,i,b, bytes[b]);
|
||||
}
|
||||
}
|
||||
document.body.appendChild(t);
|
||||
}
|
||||
function loadGeneralInfo(data, info)
|
||||
{
|
||||
var t = dc("table");
|
||||
for (var key in info)
|
||||
{
|
||||
var row = tr(t);
|
||||
td(row,key);
|
||||
td(row,info[key]);
|
||||
}
|
||||
document.body.appendChild(t);
|
||||
}
|
||||
|
||||
}
|
||||
var noHighlighter = {
|
||||
addClass : function(el ,line, byte)
|
||||
{
|
||||
return;
|
||||
}
|
||||
};
|
||||
var ndefHighligheter = {
|
||||
addClass : function(el ,line, byte, value)
|
||||
{
|
||||
if(line < 3)
|
||||
{
|
||||
el.className += " red";
|
||||
}
|
||||
if ( line == 3)
|
||||
{
|
||||
console.log(value);
|
||||
if( byte == 0 && "e1" == value.toLowerCase()) el.className += " turqoise";
|
||||
if( byte == 1 ) el.className += " yellow";
|
||||
if( byte == 2 ) el.className += " blue";
|
||||
return;
|
||||
}
|
||||
}
|
||||
};
|
||||
var mifareHighlighter = {
|
||||
addClass : function(el ,line, byte)
|
||||
{
|
||||
if (line == 0)
|
||||
{
|
||||
el.className += " blockzero";
|
||||
}
|
||||
|
||||
if(line < 128){
|
||||
linesPerSector = 4;
|
||||
} else {
|
||||
//Quadruple size sectors
|
||||
linesPerSector = 16;
|
||||
line = line - 128;
|
||||
}
|
||||
function handle(dump)
|
||||
{
|
||||
var data = dump.data;
|
||||
var info = null;
|
||||
for(var i = 0; i < identifiers.length && !info; i++)
|
||||
info = identifiers[i](data);
|
||||
|
||||
if(line % linesPerSector == 0)
|
||||
{
|
||||
el.className += " sectorhdr";
|
||||
}
|
||||
if(line % linesPerSector == (linesPerSector -1))
|
||||
{
|
||||
el.className += " sectortrailer";
|
||||
if(byte == undefined)
|
||||
{
|
||||
return;
|
||||
}
|
||||
console.log(info);
|
||||
|
||||
if(byte < 6) el.className += " key_a";
|
||||
else if(byte < 10) el.className += " accessconditions";
|
||||
else el.className += " key_b";
|
||||
}
|
||||
loadIntoTable(data, info, false);
|
||||
loadIntoTable(data, info, true);
|
||||
loadGeneralInfo(data, info.info);
|
||||
|
||||
}
|
||||
};
|
||||
}
|
||||
var noHighlighter = {
|
||||
addClass : function(el ,line, byte)
|
||||
{
|
||||
return;
|
||||
}
|
||||
};
|
||||
var ndefHighligheter = {
|
||||
addClass : function(el ,line, byte, value)
|
||||
{
|
||||
if(line < 3)
|
||||
{
|
||||
el.className += " red";
|
||||
}
|
||||
if ( line == 3)
|
||||
{
|
||||
console.log(value);
|
||||
if( byte == 0 && "e1" == value.toLowerCase()) el.className += " turqoise";
|
||||
if( byte == 1 ) el.className += " yellow";
|
||||
if( byte == 2 ) el.className += " blue";
|
||||
return;
|
||||
}
|
||||
}
|
||||
};
|
||||
var mifareHighlighter = {
|
||||
addClass : function(el ,line, byte)
|
||||
{
|
||||
if (line == 0)
|
||||
{
|
||||
el.className += " blockzero";
|
||||
}
|
||||
|
||||
if(line < 128){
|
||||
linesPerSector = 4;
|
||||
} else {
|
||||
//Quadruple size sectors
|
||||
linesPerSector = 16;
|
||||
line = line - 128;
|
||||
}
|
||||
|
||||
if(line % linesPerSector == 0)
|
||||
{
|
||||
el.className += " sectorhdr";
|
||||
}
|
||||
if(line % linesPerSector == (linesPerSector -1))
|
||||
{
|
||||
el.className += " sectortrailer";
|
||||
if(byte == undefined)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(byte < 6) el.className += " key_a";
|
||||
else if(byte < 10) el.className += " accessconditions";
|
||||
else el.className += " key_b";
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body></body>
|
||||
<script>
|
||||
var x = { data :
|
||||
var x = { data :
|
||||
]]
|
||||
local skel_2 = [[
|
||||
|
||||
};
|
||||
handle(x);
|
||||
</script>
|
||||
|
||||
};
|
||||
handle(x);
|
||||
</script>
|
||||
</html>
|
||||
|
||||
]]
|
||||
local function getHTML(data)
|
||||
return skel_1 .. data .. skel_2
|
||||
return skel_1 .. data .. skel_2
|
||||
end
|
||||
|
||||
return {getHTML = getHTML}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue