之前开了一个帖子求教如何decode代码:
http://bbs.csdn.net/topics/390294314cn00439804兄提供了结果,B_Lee兄提供了方法。但菜鸟如我依然毫无思路。现在就想请教高手,如果这样的代码自己动手解压,怎么做?如果自己的代码也想这样压缩,怎么做?算是两个问题吧,但分开开两个帖子似乎有点罗嗦。希望100分别嫌少呀,呵呵
http://bbs.csdn.net/topics/390294314cn00439804兄提供了结果,B_Lee兄提供了方法。但菜鸟如我依然毫无思路。现在就想请教高手,如果这样的代码自己动手解压,怎么做?如果自己的代码也想这样压缩,怎么做?算是两个问题吧,但分开开两个帖子似乎有点罗嗦。希望100分别嫌少呀,呵呵
JS混淆加密压缩
就可以得到压缩代码
解压嘛 就是这个函数
function (p, a, c, k, e, d) {
e = function (c) {
return (c < a ? '' : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36))
};
if (!''.replace(/^/, String)) {
while (c--) {
d[e(c)] = k[c] || e(c)
}
k = [function (e) {
return d[e]
}];
e = function () {
return '\\w+'
};
c = 1
};
while (c--) {
if (k[c]) {
p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]) //主要是在这一句
}
}
return p
}
输出p的值就行了
e = function (c) {
return(c35 ? String.fromCharCode(c + 29) : c.toString(36))
};
if(!''.replace(/^/, String)) {
while(c--) {
d[e(c)] = k[c] || e(c)
}
k = [function (e) {
return d[e]
}];
e = function () {
return '\\w+'
};
c = 1
};
while(c--) {
if(k[c]) {
p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c])
}
}
return p
}
网上有些文章教怎么解就是把return p的这个值直接输出就能看到。但这个代码如果使用此方法就会出现c35 is undefined错误。
恩,输出当然可以用alert啦 但问题是一开始不知道原理 知道了返回的是p就不是问题了 但,问题就是,你们引用的那个加密程序和我说的不是一个,你自己动手试试我的那个就知道了,出错,出了错就不会alert了,明白?
得到var map;
var undefined = new undefined();
var undefined;
var undefined;
var undefined;
var routeMarkers = new undefined(0);
var undefined = undefined;
function undefined() {}
function undefined() {
var undefined = new google.maps.undefined(undefined.undefined, -4.undefined);
var undefined = {
undefined: 5,
undefined: undefined,
undefined: google.maps.undefined.undefined,
undefined: 'undefined',
undefined: {
undefined: google.maps.undefined.undefined
}
};
map = new google.maps.undefined(document.getElementById("undefined"), undefined);
document.getElementById("undefined").value = "";
document.getElementById("undefined").value = undefined;
undefined(undefined);
google.maps.undefined.undefined(map, 'undefined', undefined)
}
function undefined(undefined) {
undefined(undefined.undefined)
}
function undefined() {
if (undefined) {
undefined.setMap(null)
}
if (routeMarkers) {
undefined(i undefined routeMarkers) {
routeMarkers[i].setMap(null)
}
}
if (undefined) {
undefined.setMap(null)
}
routeMarkers = new undefined(0);
document.getElementById("undefined").value = "";
var undefined = new google.maps.undefined(undefined.undefined, -4.undefined);
map.undefined(undefined);
map.undefined(5)
}
function undefined(point) {
document.getElementById("undefined").undefined = "undefined undefined";
if (undefined) {
undefined.setMap(null)
}
if (routeMarkers) {
undefined(i undefined routeMarkers) {
routeMarkers[i].setMap(null)
}
}
if (undefined) {
undefined.setMap(null)
}
routeMarkers = new undefined(0);
if (document.getElementById("undefined").undefined) {
undefined = undefined(point, "undefined Point");
undefined.setMap(map)
}
var undefined = document.getElementById("undefined").value;
undefined = undefined(point, undefined);
undefined.setMap(map);
document.getElementById("undefined").undefined = "<undefined undefined='undefined/undefined.undefined' />undefined...";
document.getElementById("undefined").value = "";
undefined(undefined, point.undefined(), point.undefined())
}
function undefined(point, undefined) {
undefined *= undefined;
undefined = new google.maps.undefined({
undefined: point,
undefined: undefined,
undefined: "#undefined",
undefined: 0.8,
undefined: 1,
undefined: "#undefined",
undefined: 0.undefined,
map: null
});
undefined undefined
}
function undefined(undefined, undefined, undefined) {
undefined = new google.maps.undefined();
var xmlHttp;
undefined {
xmlHttp = new undefined()
}
undefined(e) {
undefined {
xmlHttp = new undefined("undefined.undefined")
}
undefined(e) {
undefined {
xmlHttp = new undefined("undefined.undefined")
}
undefined(e) {
undefined("undefined undefined undefined undefined undefined undefined!");
undefined undefined
}
}
}
xmlHttp.undefined = function() {
if (xmlHttp.undefined == 4) {
var undefined = xmlHttp.undefined;
var undefined = "";
var undefined = 0;
var ers = undefined.undefined.undefined("er");
undefined(var i = 0; undefined) {
document.getElementById("undefined").value = undefined;
undefined = undefined
}
document.getElementById("undefined").value = (undefined * (1 / 1.undefined)).undefined(2)
}
function undefined(undefined) {
if (undefined > undefined) {
document.getElementById("undefined").value = undefined;
undefined = undefined
}
document.getElementById("undefined").value = (undefined * 1.undefined).undefined(2)
}
function undefined(undefined, undefined) {
undefined.undefined(null,
function() {
if (undefined.undefined[0]) {
var undefined = undefined.undefined[0].undefined;
var undefined = undefined.undefined[0].undefined;
var point = new google.maps.undefined(undefined, undefined);
undefined(point)
}
undefined {
undefined("undefined undefined undefined!")
}
});
undefined.undefined(undefined + ", undefined")
}
function undefined(undefined) {
var undefined = undefined.undefined();
var undefined = undefined.undefined();
var point = new google.maps.undefined(undefined(undefined), undefined(undefined));
undefined(point)
}
function undefined(point, undefined) {
var undefined = new google.maps.undefined('undefined/ers/undefined.undefined', new google.maps.undefined(undefined, undefined), new google.maps.Point(0, 0), new google.maps.Point(undefined, undefined));
var undefined = new google.maps.undefined('undefined/undefined/undefined.undefined', new google.maps.undefined(undefined, undefined), new google.maps.Point(0, 0), new google.maps.Point(1, undefined));
var er = new google.maps.undefined({
undefined: point,
map: map,
undefined: undefined,
undefined: undefined,
undefined: undefined,
undefined: undefined
});
undefined er
}
var map;
var localSearch = new GlocalSearch();
var bounds;
var circle;
var centreer;
var routeMarkers = new Array(0);
var togglecsv = true;
function GUnload() {}
function Gload() {
var latlng = new google.maps.LatLng(53.82659674299412, -4.21875);
var myOptions = {
zoom: 5,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
draggableCursor: 'crosshair',
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
}
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
document.getElementById("tb_output").value = "";
document.getElementById("tb_radius").value = 50;
tb_radius_changed(50);
google.maps.event.addListener(map, 'click', ftn_mapclick)
}
function ftn_mapclick(event) {
startdraw(event.latLng)
}
function resetmap() {
if (circle) {
circle.setMap(null)
}
if (routeMarkers) {
for (i in routeMarkers) {
routeMarkers[i].setMap(null)
}
}
if (centreer) {
centreer.setMap(null)
}
routeMarkers = new Array(0);
document.getElementById("tb_output").value = "";
var latlng = new google.maps.LatLng(53.82659674299412, -4.21875);
map.setCenter(latlng);
map.setZoom(5)
}
function startdraw(point) {
document.getElementById("output").innerHTML = "Drawing Radius";
if (circle) {
circle.setMap(null)
}
if (routeMarkers) {
for (i in routeMarkers) {
routeMarkers[i].setMap(null)
}
}
if (centreer) {
centreer.setMap(null)
}
routeMarkers = new Array(0);
if (document.getElementById("cb_showcentre").checked) {
centreer = placeCentreMarker(point, "Centre Point");
centreer.setMap(map)
}
var givenRad = document.getElementById("tb_radius").value;
circle = DrawCircle(point, givenRad);
circle.setMap(map);
document.getElementById("output").innerHTML = "<img src='images/loading.gif' />Searching...";
document.getElementById("tb_output").value = "";
showallwithfilter(givenRad, point.lat(), point.lng())
}
function DrawCircle(point, rad) {
rad *= 1000;
draw_circle = new google.maps.Circle({
center: point,
radius: rad,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 1,
fillColor: "#0000FF",
fillOpacity: 0.25,
map: null
});
return draw_circle
}
function showallwithfilter(givenRad, lat, lng) {
bounds = new google.maps.LatLngBounds();
var xmlHttp;
try {
xmlHttp = new XMLHttpRequest()
} catch(e) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP")
} catch(e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
} catch(e) {
alert("Your browser does not support AJAX!");
return false
}
}
}
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4) {
var xml = xmlHttp.responseXML;
var output = "";
var count = 0;
var ers = xml.documentElement.getElementsByTagName("er");
for (var i = 0; undefined) {
document.getElementById("tb_radius").value = 320;
inp = 320
}
document.getElementById("tb_radius_miles").value = (inp * (1 / 1.609344)).toFixed(2)
}
function tb_radius_miles_changed(inp) {
if (inp > 200) {
document.getElementById("tb_radius_miles").value = 200;
inp = 200
}
document.getElementById("tb_radius").value = (inp * 1.609344).toFixed(2)
}
function usePointFromPostcode(place, callbackFunction) {
localSearch.setSearchCompleteCallback(null,
function() {
if (localSearch.results[0]) {
var resultLat = localSearch.results[0].lat;
var resultLng = localSearch.results[0].lng;
var point = new google.maps.LatLng(resultLat, resultLng);
callbackFunction(point)
} else {
alert("Location not found!")
}
});
localSearch.execute(place + ", UK")
}
function placeMarkerAtPoint(pointin) {
var str_lat = pointin.lat();
var str_lng = pointin.lng();
var point = new google.maps.LatLng(parseFloat(str_lat), parseFloat(str_lng));
startdraw(point)
}
function placeCentreMarker(point, text) {
var image = new google.maps.MarkerImage('images/ers/red.png', new google.maps.Size(20, 34), new google.maps.Point(0, 0), new google.maps.Point(10, 33));
var shadow = new google.maps.MarkerImage('images/gmersv3/shadow.png', new google.maps.Size(28, 22), new google.maps.Point(0, 0), new google.maps.Point(1, 22));
var er = new google.maps.Marker({
position: point,
map: map,
shadow: shadow,
icon: image,
title: text,
draggable: true
});
return er
}
hujife兄,请你手把手啊 上面的指导 相当于告诉为A可以得出B 我是想知道A如何得出B呀,你有点太跳跃了 当然,也许是我太没悟性 你就多费心讲一下过程吧 我按照之前你说的把 return p修改为alert(p),但出错了,不能直接输出呀 应该怎么做一下就能输出解码后的代码呢?
看来CSDN网友很强大,估计站长看到这么多人关注他的代码,知道肯定hold不住了,索性放开了吧主要不是偷窥人家的代码,是想学习一下这个方法
Afunction(p, a, c, k, e, d) {
e = function(c) {
return (c35 ? String.fromCharCode(c + 29) : c.toString(36))
};
if (!''.replace(/^/, String)) {
while (c--) {
d[e(c)] = k[c] || e(c)
}
k = [function(e) {
return d[e]
}];
e = function() {
return '\\w+'
};
c = 1
};
while (c--) {
if (k[c]) {
p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c])
}
}
return p
}
Bfunction(p, a, c, k, e, d) {
e = function(c) {
return (c < a ? "": e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36))
};
if (!''.replace(/^/, String)) {
while (c--) d[e(c)] = k[c] || e(c);
k = [function(e) {
return d[e]
}];
e = function() {
return '\\w+'
};
c = 1;
};
while (c--) if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]);
return p;
}看出差别了吧
c35=c < a ? "": e(parseInt(c / a))) + ((c = c % a) > 35;
<script>
eval(function (p, a, c, k, e, d) {
e = function (c) {
//return(c35 ? String.fromCharCode(c + 29) : c.toString(36))
return (c < a ? "": e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36))
};
if(!''.replace(/^/, String)) {
while(c--) {
d[e(c)] = k[c] || e(c)
}
k = [function (e) {
return d[e]
}];
e = function () {
return '\\w+'
};
c = 1
};
while(c--) {
if(k[c]) {
p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c])
}
}
alert(p)
}('3 f;3 C=6 2k();3 E;3 z;3 w;3 l=6 11(0);3 N=D;d 2l(){}d 2t(){3 R=6 7.9.G(1z.1i,-4.1f);3 1I={1l:5,1p:R,2A:7.9.2p.2a,29:\'27\',2c:{1Y:7.9.1Z.2E}};f=6 7.9.2x(b.a("2D"),1I);b.a("v").h="";b.a("K").h=1K;1S(1K);7.9.13.2n(f,\'2r\',1N)}d 1N(13){17(13.2q)}d 2v(){g(z){z.k(j)}g(l){15(i 1o l){l[i].k(j)}}g(w){w.k(j)}l=6 11(0);b.a("v").h="";3 R=6 7.9.G(1z.1i,-4.1f);f.1x(R);f.2s(5)}d 17(c){b.a("t").M="2o 2j";g(z){z.k(j)}g(l){15(i 1o l){l[i].k(j)}}g(w){w.k(j)}l=6 11(0);g(b.a("2m").1q){w=1D(c,"2u r");w.k(f)}3 F=b.a("K").h;z=1r(c,F);z.k(f);b.a("t").M="
<2B 2C=\'J/2z.2i\' />2w...";b.a("v").h="";1d(F,c.y(),c.x())}d 1r(c,1b){1b*=2y;1e=6 7.9.2e({1p:c,1s:1b,1X:"#21",2h:0.8,2d:1,23:"#2f",2g:0.25,f:j});H 1e}d 1d(F,y,x){E=6 7.9.2b();3 q;18{q=6 26()}19(e){18{q=6 1R("24.1j")}19(e){18{q=6 1R("2R.1j")}19(e){1U("3f 3g 3h 1V 3e 3d!");H 1g}}}q.39=d(){g(q.3a==4){3 1m=q.3c;3 t="";3 O=0;3 o=1m.3i.3j("m");15(3 i=0;iY){b.a("K").h=Y;s=Y}b.a("1M").h=(s*(1/1.1F)).1G(2)}d 36(s){g(s>X){b.a("1M").h=X;s=X}b.a("K").h=(s*1.1F).1G(2)}d 30(1O,1E){C.2Z(j,d(){g(C.14[0]){3 1B=C.14[0].y;3 1C=C.14[0].x;3 c=6 7.9.G(1B,1C);1E(c)}1c{1U("2V 1V 1T!")}});C.2U(1O+", 2W")}d 2X(16){3 1H=16.y();3 1J=16.x();3 c=6 7.9.G(S(1H),S(1J));17(c)}d 1D(c,1t){3 U=6 7.9.T(\'J/o/2Y.V\',6 7.9.Q(20,34),6 7.9.r(0,0),6 7.9.r(10,33));3 u=6 7.9.T(\'J/1A/u.V\',6 7.9.Q(28,22),6 7.9.r(0,0),6 7.9.r(1,22));3 m=6 7.9.1L({1k:c,f:f,u:u,1n:U,1y:1t,1h:D});H m}', 62, 214, '|||var|||new|google||maps|getElementById|document|point|function||map|if|value||null|setMap|routeMarkers|er||ers||xmlHttp|Point|inp|output|shadow|tb_output|centreer|lng|lat|circle|outcode|strText|localSearch|true|bounds|givenRad|LatLng|return|getAttribute|images|tb_radius|id|innerHTML|togglecsv|count|strTarget|Size|latlng|parseFloat|MarkerImage|image|png|replaceAll|200|320|rn||Array|intIndexOfMatch|event|results|for|pointin|startdraw|try|catch|dist|rad|else|showallwithfilter|draw_circle|21875|false|draggable|82659674299412|XMLHTTP|position|zoom|xml|icon|in|center|checked|DrawCircle|radius|text|urltext|length|Math|setCenter|title|53|gmersv3|resultLat|resultLng|placeCentreMarker|callbackFunction|609344|toFixed|str_lat|myOptions|str_lng|50|Marker|tb_radius_miles|ftn_mapclick|place|placeMarker|indexOf|ActiveXObject|tb_radius_changed|found|alert|not|strSubString|strokeColor|style|MapTypeControlStyle||FF0000||fillColor|Msxml2||XMLHttpRequest|crosshair||draggableCursor|ROADMAP|LatLngBounds|mapTypeControlOptions|strokeWeight|Circle|0000FF|fillOpacity|strokeOpacity|gif|Radius|GlocalSearch|GUnload|cb_showcentre|addListener|Drawing|MapTypeId|latLng|click|setZoom|Gload|Centre|resetmap|Searching|Map|1000|loading|mapTypeId|img|src|map_canvas|DROPDOWN_MENU|get|GET|open|send|ftn_togglecsv|String|php|inside|9999|random|ajax|all|Microsoft|prototype|this|execute|Location|UK|placeMarkerAtPoint|red|setSearchCompleteCallback|usePointFromPostcode|while|replace|||freemaptools|tb_radius_miles_changed|floor|postcodes|onreadystatechange|readyState|Done|responseXML|AJAX|support|Your|browser|does|documentElement|getElementsByTagName|substring|Re|getCenter|fitBounds|push|cb_showpcers|extend|km'.split('|'), 0, {}))
</script>
e = function (c) {
//return(c35 ? String.fromCharCode(c + 29) : c.toString(36))
return (c < a ? "": e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36))
};
if(!''.replace(/^/, String)) {
while(c--) {
d[e(c)] = k[c] || e(c)
}
k = [function (e) {
return d[e]
}];
e = function () {
return '\\w+'
};
c = 1
};
while(c--) {
if(k[c]) {
p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c])
}
}
alert(p)
}('3 f;3 C=6 2k();3 E;3 z;3 w;3 l=6 11(0);3 N=D;d 2l(){}d 2t(){3 R=6 7.9.G(1z.1i,-4.1f);3 1I={1l:5,1p:R,2A:7.9.2p.2a,29:\'27\',2c:{1Y:7.9.1Z.2E}};f=6 7.9.2x(b.a("2D"),1I);b.a("v").h="";b.a("K").h=1K;1S(1K);7.9.13.2n(f,\'2r\',1N)}d 1N(13){17(13.2q)}d 2v(){g(z){z.k(j)}g(l){15(i 1o l){l[i].k(j)}}g(w){w.k(j)}l=6 11(0);b.a("v").h="";3 R=6 7.9.G(1z.1i,-4.1f);f.1x(R);f.2s(5)}d 17(c){b.a("t").M="2o 2j";g(z){z.k(j)}g(l){15(i 1o l){l[i].k(j)}}g(w){w.k(j)}l=6 11(0);g(b.a("2m").1q){w=1D(c,"2u r");w.k(f)}3 F=b.a("K").h;z=1r(c,F);z.k(f);b.a("t").M="<2B 2C=\'J/2z.2i\' />2w...";b.a("v").h="";1d(F,c.y(),c.x())}d 1r(c,1b){1b*=2y;1e=6 7.9.2e({1p:c,1s:1b,1X:"#21",2h:0.8,2d:1,23:"#2f",2g:0.25,f:j});H 1e}d 1d(F,y,x){E=6 7.9.2b();3 q;18{q=6 26()}19(e){18{q=6 1R("24.1j")}19(e){18{q=6 1R("2R.1j")}19(e){1U("3f 3g 3h 1V 3e 3d!");H 1g}}}q.39=d(){g(q.3a==4){3 1m=q.3c;3 t="";3 O=0;3 o=1m.3i.3j("m");15(3 i=0;iY){b.a("K").h=Y;s=Y}b.a("1M").h=(s*(1/1.1F)).1G(2)}d 36(s){g(s>X){b.a("1M").h=X;s=X}b.a("K").h=(s*1.1F).1G(2)}d 30(1O,1E){C.2Z(j,d(){g(C.14[0]){3 1B=C.14[0].y;3 1C=C.14[0].x;3 c=6 7.9.G(1B,1C);1E(c)}1c{1U("2V 1V 1T!")}});C.2U(1O+", 2W")}d 2X(16){3 1H=16.y();3 1J=16.x();3 c=6 7.9.G(S(1H),S(1J));17(c)}d 1D(c,1t){3 U=6 7.9.T(\'J/o/2Y.V\',6 7.9.Q(20,34),6 7.9.r(0,0),6 7.9.r(10,33));3 u=6 7.9.T(\'J/1A/u.V\',6 7.9.Q(28,22),6 7.9.r(0,0),6 7.9.r(1,22));3 m=6 7.9.1L({1k:c,f:f,u:u,1n:U,1y:1t,1h:D});H m}', 62, 214, '|||var|||new|google||maps|getElementById|document|point|function||map|if|value||null|setMap|routeMarkers|er||ers||xmlHttp|Point|inp|output|shadow|tb_output|centreer|lng|lat|circle|outcode|strText|localSearch|true|bounds|givenRad|LatLng|return|getAttribute|images|tb_radius|id|innerHTML|togglecsv|count|strTarget|Size|latlng|parseFloat|MarkerImage|image|png|replaceAll|200|320|rn||Array|intIndexOfMatch|event|results|for|pointin|startdraw|try|catch|dist|rad|else|showallwithfilter|draw_circle|21875|false|draggable|82659674299412|XMLHTTP|position|zoom|xml|icon|in|center|checked|DrawCircle|radius|text|urltext|length|Math|setCenter|title|53|gmersv3|resultLat|resultLng|placeCentreMarker|callbackFunction|609344|toFixed|str_lat|myOptions|str_lng|50|Marker|tb_radius_miles|ftn_mapclick|place|placeMarker|indexOf|ActiveXObject|tb_radius_changed|found|alert|not|strSubString|strokeColor|style|MapTypeControlStyle||FF0000||fillColor|Msxml2||XMLHttpRequest|crosshair||draggableCursor|ROADMAP|LatLngBounds|mapTypeControlOptions|strokeWeight|Circle|0000FF|fillOpacity|strokeOpacity|gif|Radius|GlocalSearch|GUnload|cb_showcentre|addListener|Drawing|MapTypeId|latLng|click|setZoom|Gload|Centre|resetmap|Searching|Map|1000|loading|mapTypeId|img|src|map_canvas|DROPDOWN_MENU|get|GET|open|send|ftn_togglecsv|String|php|inside|9999|random|ajax|all|Microsoft|prototype|this|execute|Location|UK|placeMarkerAtPoint|red|setSearchCompleteCallback|usePointFromPostcode|while|replace|||freemaptools|tb_radius_miles_changed|floor|postcodes|onreadystatechange|readyState|Done|responseXML|AJAX|support|Your|browser|does|documentElement|getElementsByTagName|substring|Re|getCenter|fitBounds|push|cb_showpcers|extend|km'.split('|'), 0, {}))