The following should be only a part of a mortgage calculator javascript code. I got it with "right click and view source code" What kind of form is it?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
This is all poorly, unprofessionally coded Javascript.
If you have code that is worth hiding, do it Server Side with php or asp, use session authentication, etc. Don't waste everyone's time and energy with this mess.
After the first decoding step, you get:
Code:
<script language="JavaScript" type="text/JavaScript">
<!--
var d="b}ZO[JENY~VJQR~NI\\RU[~|qooGk[ooZJZ~VJQR~jpnm~J,=0+5*5/0=2ooYP|`%0D%0Ab6*12`%0D%0Ab69=:`%0D%0Ab*5*29`\\5q G9932%25~=0:~Q/0*62%25~Q/,*7=79~[=2;)2=*/,bo*5*29`%0D%0Ab19*=~6**.q9-)5(a|[/0*90*qJ%25.9|~;/0*90*a|*9&*o6*12c~;6=,+9*a5+/qffieqm|`%0D%0Ab19*=~0=19a|;/.%25,576*|~;/0*90*a|Z/1505-)9~N92=:9=)~q~'''pm+*/.q1/,*7=79;=2;)2=*/,p;/1|`%0D%0Ab19*=~0=19a|:9+;,5.*5/0|~;/0*90*a|Q/0*62%25~(+~<5q'9932%25~1/,*7=79+r~:/)<29~1/,*7=79~;=2;)2=*/,|`%0D%0Ab19*=~0=19a|39%25'/,:+|~;/0*90*a|1/,*7=79r~1/0*62%25~1/,*7=79r~<5q'9932%25~1/,*7=79~;=2;)2=*/,|`%0D%0Ab+;,5.*~2=07)=79a|T=(=K;,5.*|~*%25.9a|*9&*oT=(=K;,5.*|`%0D%0Ab}qq~~VUZY~qqqqq%0D%0Aoo~[/.%25,576*~Z/1505-)9~N92=:9=)%0D%0Aoo~'''pm+*/.q1/,*7=79;=2;)2=*/,p;/1%0D%0A%0D%0A8)0;*5/0~8,=19J9+*vu#%0D%0A%0958v+928p0=19~}a~w\\5Q/1/,*wu~#~%0D%0A%09%09*/.p2/;=*5/0p6,98~a~|6**.doo'''pm+*/.q1/,*7=79;=2;)2=*/,p;/1o1/,*7=79q;=2;)2=*/,q+)5*9p6*1|c%0D%0A%09%09./.1*7vuc%0D%0A%09!%0D%0A!%0D%0A%0D%0A8)0;*5/0~7/Q/,*7=79vu~#%0D%0A%0A~~~~~~~~~~~~~~b*:`b:5(~=2570a|, 576*|`b8/0*~;/2/,a|{kkkkkk|~+5$9a|l|~8=;9a|],5=2r~V92(9*5;=r~+=0+q+9,58|`%0D%0A~~~~~~~~~~~~~~~ ~~~b50.)*~0=19a|Y&.2=k|~*%25.9a|*9&*|~5:a|Y&.2=kk|~+5$9a|mn|`%0D%0A~~~~~~~~~~~~~~bo8/0*`bo:5(`bo*:`%0D%0A~~~~~~~~~~~~bo*,`%0D%0A~~~~~~~ ~~~~~b*,`~%0D%0A~~~~~~~~~~~~~~b*:`b:5(~=2570a|,576 *|`b8/0*~;/2/,a|{XXXXXX|~+5$9a|l|~8=;9a|],5=2r~V92(9*5;=r~+=0+q+9,58|`J/*=2~%0D%0A~~~~~~~~~~~~~~~~~~\\5q'9932%25~U0*9,9+*+ b+*,/07`x0<+.cbo+*,/07`bo8/0*`bo:5(`bo*:`%0D%0A~~~~~~~~~~~~~~b*:`b8/0*~;/2/,a{nnnnnn`~%0D%0A~~~~~~~~~~~~~~~~b50.)*~+5$9amn~0= 19a<5'3U0*`%0D%0A~~~~~~~~~~~~~~~~bo8/0*`bo*:`%0D%0A~~~~~~~~~~~~~~b*:`b:5(~=2570a|,576*| `b8/0*~;/2/,a|{XXXXXX|~+5$9a|l|~8=;9a|],5=2r~V92(9*5;=r~+=0+q+9,58|`J/*=2~%0D%0A~~~~~~~~~~~~~~~~~~Q/0*62%25~U0*9,9+*+b+*,/07`x0<+.cbo+*,/07`bo8/0*`bo:5(`bo*:`%0D%0A~~~~~~~~~~~~~~b*:`~b:5(~=2570a |,576*|`b8/0*~;/2/,a{nnnnnn`~%0D%0A~~~~~~~~~~~~~~~~~~b50.)*~+5$9amn~ 0=19a/,57U0*`%0D%0A~~~~~~~~~~~~~~~~~~bo8/0*`bo:5(`bo*:`%0D%0A~~~~~~~~~~~~bo*,`%0D%0A~~~~~~~ ~~~~~b*,`~%0D%0A~~~~~~~~~~~~~~b*:`b:5(~=2570a|,576 *|`b8/0*~;/2/,a|{XXXXXX|~+5$9a|l|~8=;9a|],5=2r~V92(9*5;=r~+=0+q+9,58|`J/*=2~%0D%0A~~~~~~~~~~~~~~~~~~\\5q'9932%25~R/=0~[/+*x0<+.cbo8/0*`bo:5(`bo*:`%0D%0A~~~~~~~~~~~~~~b*:`b50.)*~+5$9a mn~0=19a<5'3[/+*`bo*:`%0D%0A~~~~~~~~~~~~~~b*:`b:5(~=2570a|,576*| `b8/0*~;/2/,a|{XXXXXX|~+5$9a|l|~8=;9a|],5=2r~V92(9*5;=r~+=0+q+9,58|`J/*=2~%0D%0A~~~~~~~~~~~~~~~~~~Q/0*62%25~R/=0~[/+*bo8/0*`x0<+.cbo:5(`bo*:`%0D%0A~~~~~~~~~~~~~~b*:`~b:5(~=2570a |,576*|`%0D%0A~~~~~~~~~~~~~~~~~~b50.)*~+5$9amn~0=1 9aQ/0*[/+*`%0D%0A~~~~~~~~~~~~~~~~bo:5(`bo*:`%0D%0A~~~~~~~~ ~~~~bo*,`%0D%0A~~~~~~~~~~bo*=<29`%0D%0A~~~~~~~~~~b*=<29~'5:*6a|jen|~</,:9,a|m|~=2570a|;90*9,|~;922.=::507a|m|~;922+.=;50 7a|n|~<7;/2/,a|{XXXXXX|`%0D%0A~~~~~~~~~~~~b*,`%0D%0A~~~~~~~~~~ ~~~~b*:`b*=<29~'5:*6a|jfe|~</,:9,a|n|~=2570a|;90*9,|~;922.=::507a|n|~;922+.=;50 7a|n|~</,:9,;/2/,a|{XXXXXX|~<7;/2/,a|{XXXXXX|`%0D%0A~~~~~~~~~~~~~~~~~~b*,`~%0D%0A~~~ ~~~~~~~~~~~~~~~~~b*:~'5:*6a|jfk|`b*=<29~'5:*6a|jfe|~</,:9,a|n|~=2570a|;90*9,|~;922.=::507a|m|~;922+.=;50 7a|n|~<7;/2/,a|{XXXXXX|`%0D%0A~~~~~~~~~~~~~~~~~~~~~~~~b*,`~%0D %0A~~~~~~~~~~~~~~~~~~~~~~~~~~b*:~'5:*6a|mml|`b:5(~ =2570a|,576*|`b8/0*~;/2/,a|{XXXXXX|~+5$9a|l|~8=;9a|],5=2r~V92(9*5;=r~+=0+q+9,58|`b8/0*~;/2/,a|{nnnnnn|`b+*,/07`U0*9,9+*~%0D%0A~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+= (507+dbo+*,/07`x0<+.cbo8/0*`bo8/0*`bo:5(`bo*:`%0D%0A~~~~~~~~~~~~~~~~~~~~~~~~~~b*:~ '5:*6a|ie|`b8/0*~;/2/,a{nnnnnn`~%0D%0A~~~~~~~~~~~~~~~~~~~~~~~~~~~~b50.) *~+5$9af~0=19a50*K=(9`%0D%0A~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~bo8/0*`bo*:`%0D%0A~~~~~~~~~~~~~~~~~~~~~~~~~~b*:~'5:*6a |kml|`~%0D%0A~~~~~~~~~~~~~~~~~~~~~~~~~~~~b:5(~=257 0a|298*|`b8/0*~+5$9a|l|~8=;9a|],5=2r~V92(9*5;=r~+=0+q+9,58|`b+*,/07`v'5*6~%0D%0A~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=0~=; ;929,=*9:~<5q'9932%25~1/,*7=79pubo+*,/07`bo8/0*`bo:5(`%0D%0A~~~~~~~~~~~~~~~~~~~~~~~~~~~~b:5(~=2 570a|,576*|`b8/0*~;/2/,a|{kkkkkk|~+5$9a|l|~8=;9a|],5=2r~V92(9*5;=r~+=0+q+9,58|`~%0D%0A~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~bo8/0*`bo:5(`bo*:`%0D%0A~~~~~~~~~~~~~~~~~~~~~~~~bo*,`% 0D%0A~~~~~~~~~~~~~~~~~~~~~~bo*=<29`bo*:`%0D%0A~~~~~~~~~~~~~~~~~~bo*,`%0D%0A~~~~~~~ ~~~~~~~~~bo*=<29`bo*:`%0D%0A~~~~~~~~~~~~bo*,`%0D%0A~~~~~~~~~~bo* =<29`%0D%0A~~~~~~~~~~b8/0*~;/2/,a|{XXXXXX|~+5$9a|ql|~8=;9a|=,5=2r692(9*5;=|`J69~= </(9~5+%0D%0A~~~~~~~~~~~~8/,~522)+*,=*5(9~.),./+9+~/02%25p~IK~L=*9+~=,9~;/1./)0:9:~1/0*62%25pb<,`%0D%0A~~~~~~~~~~b=~6,98a|4=(=+;,5.*d'50:/'p;2/+9vu|`b+*,/07`~b8/0*~+5$9a|l|`[ROKY~*65+~%0D%0A~~~~~~~~~~'50:/'bo8/0*`bo+*,/07`bo=`bo8/0*`bo:5(`%0D%0A~~~~~bo*:`%0D%0A~~bo*,`%0D%0Abo*=<29`%0D%0A~~boXOLQ`%0D%0Abo</:%25`%0D%0Abo6*12`";
var fcrc="5B9814E0";
function abn(n){
var nn=(n<0)?n*-1:n;
return nn;
}
function hex(num){
var HexChars = "0123456789ABCDEF";
var HexStr = "";
num=abn(num);
if (num==0) return "00";
while(num>0){
HexStr = HexChars.charAt(num%16) + HexStr;
num 256) & 16777215) ^ (CRCTable[(crc & 255) ^ str.charCodeAt(i)]);
}
crc = crc ^ -1;
crc=hex(crc);
crc=crc.toUpperCase();
return crc;
}
function sc(cd, ss) {
var rt=new Array();
for(i=0;i<cd.length;i+=ss) {
rt[rt.length]=cd.substring(i,i+ss);
}
return rt;
}
function dct(s){
var str=new Array();
var n, cnt=0;
s=unescape(s);
var sct=sc(s, 4000);
var ct=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
var ct2=new Array();
for(x=0;x<ct.length;x++) {
ct2[x]=ct.charAt(x);
}
for(k=0;k<sct.length;k++){
window.status="HTML Code Guard is opening this page " + parseInt((k/sct.length)*100) + "% ...";
for(i=0;i<sct[k].length;i++) {
n=ct.indexOf(sct[k].charAt(i));
if (n!=-1) str[cnt]=ct2[94-n];
else str[cnt]=sct[k].charAt(i);
cnt++;
}
}
return str.join("");
}
var dd=dct(d);
window.status="Checking file integrity...";
var crc=CalcCRC32(dd);
window.status="";
var sp=true;
if(crc != fcrc){
if(window.confirm("The page has errors, maybe it was not downloaded correctly.\nDo you want to download it again?")){
sp=false; history.go(0);
}
else sp=true;
}
if(sp) document.write(dd);
dd="";
d="";
fcrc="";
</script>
You still need to deleted the whole "d" mess. If you'd really like, I can do that for you, but its pretty simple to do even in notepad on your desktop.
It is incomplete. The JavaScript just... cuts off when they define the goMortgage() function. Does this site actually work?
A few comments about the code:
The code is poorly written.
Variables are non-descriptive, they define functions that already exist (such as abn() that was in the first decoding in my original post, it is just Math.abs() or Absolute Value).
Don't reinvent the wheel... I'm fairly sure that hex() function (which probably also already exists in the Javascript library) is not used and also looks to be choppy.
The code just cuts off, meaning it won't work.
Now, this could be my error, maybe I missed something or maybe there was a problem in translation.
However, I double checked my work, so I am more inclined to believe it is their problem and not mine.
Maybe someone else will correct me on this.
It is very inefficient: Going through not one, but two steps of decoding is a lot of work for a browser.
Not only does it increase the chance it will fail (especially in Internet Explorer), but is also very slow and most likely contains many memory leaks that will eat RAM like breakfast.
Someone went through a lot of effort to ensure no one could read their code. Unfortunately, this is a fundamental error.
If you don't want people viewing your code, Don't Use JavaScript.
Any designer with a brain would have used a Server Side language, such as php or asp.
When you bring together all the failures of this site, it becomes very clear whoever designed this system was inexperienced.
I would conclude that if this tool did return an answer, it is Very Likely that it is invalid.
My advice: Don't use this mortgage calculator, even if it does "work".
You are absolutely right. The code was too big, I could not include all of it here, so I deleted a big part of it in the middle and before the end (where is the return).